From: paul <paul@plutz.net>
Date: Thu, 24 Nov 2016 14:35:59 +0000 (+0000)
Subject: 16bit linefeeds as specified in RFC
X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=e6a5a9a5f79a00ff6645057b16f61666cabd9efc;p=shcgi

16bit linefeeds as specified in RFC

svn path=/trunk/; revision=42
---

diff --git a/cgi.sh b/cgi.sh
index c366843..30e6d76 100755
--- 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'
 }