16bit linefeeds as specified in RFC
authorpaul <paul@plutz.net>
Thu, 24 Nov 2016 14:35:59 +0000 (14:35 +0000)
committerpaul <paul@plutz.net>
Thu, 24 Nov 2016 14:35:59 +0000 (14:35 +0000)
svn path=/trunk/; revision=42

cgi.sh

diff --git a/cgi.sh b/cgi.sh
index c366843..30e6d76 100755 (executable)
--- a/cgi.sh
+++ b/cgi.sh
@@ -111,7 +111,8 @@ attribsafe(){
   # except alphanumerig ascii
 
   printf %s "$*" \
-  | hexdump -v -e '/1 "&#x%02X;"' \
+  | iconv -f utf-8 -t utf32le \
+  | hexdump -v -e '/4 "&#x%02X;"' \
   | sed 's;&#x30\;;0;g; s;&#x31\;;1;g; s;&#x32\;;2;g; s;&#x33\;;3;g; s;&#x34\;;4;g; s;&#x35\;;5;g;
          s;&#x36\;;6;g; s;&#x37\;;7;g; s;&#x38\;;8;g; s;&#x39\;;9;g;
          s;&#x41\;;A;g; s;&#x42\;;B;g; s;&#x43\;;C;g; s;&#x44\;;D;g; s;&#x45\;;E;g; s;&#x46\;;F;g;
@@ -127,7 +128,7 @@ attribsafe(){
 }
 
 redirect(){
-  printf '%s\n\n' "Location: $*"
+  printf '%s\r\n\r\n' "Location: $*"
   exit 0
 }
 
@@ -142,5 +143,5 @@ set_cookie(){
   printf 'Set-Cookie: %s' "$cookie"
   [ -n "$expire" ] && printf '; Expires=%s' "$expire" 
   [ $# -ge 3 ] && shift 2 && printf '; %s' "$@"
-  printf '\n'
+  printf '\r\n'
 }