=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/plugin/oxcgi.c,v retrieving revision 1.2 retrieving revision 1.6 diff -u -p -r1.2 -r1.6 --- OpenXM/src/kan96xx/plugin/oxcgi.c 2004/09/24 08:35:47 1.2 +++ OpenXM/src/kan96xx/plugin/oxcgi.c 2004/09/28 12:27:17 1.6 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/plugin/oxcgi.c,v 1.1 2004/09/21 12:52:01 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/plugin/oxcgi.c,v 1.5 2004/09/28 12:20:40 takayama Exp $ */ #include #include "datatype.h" #include "stackm.h" @@ -35,6 +35,12 @@ struct object cgiUrlEncodingToKeyValuePair(char *s) { for (i=0; i ' ') { start = i; break; } + } + } for (k=0; k<2; k++) { /* k==0 path one. Count nOfPairs. */ /* k==1 path two. generate array. */ @@ -521,3 +527,30 @@ struct object cgiKeyValuePairToHttpString(struct objec return KpoString(s); } +struct object KooStringToUrlEncoding(struct object sob) { + unsigned char *s; + char *rs; + int n; + if (sob.tag == Sdollar) { + s = (unsigned char *) KopString(sob); + n = strlen((char *)s); + }else if (sob.tag == SbyteArray) { + s = KopByteArray(sob); + n = getByteArraySize(sob); + }else errorKan1("%s\n","KooStringToUrlEncoding: argument must be a string or a bytearray."); + rs = byteArrayToUrlEncoding(s,n); + return KpoString(rs); +} + +struct object KooUrlEncodedStringToObj(struct object sob) { + char *s; + int n; + if (sob.tag == Sdollar) { + s = KopString(sob); + n = strlen((char *)s); + }else if (sob.tag == SbyteArray) { + s = KopByteArray(sob); + n = getByteArraySize(sob); + }else errorKan1("%s\n","KooUrlEncodedStringToObj: argument must be a string."); + return urlEncodedStringToObj(s,0,n-1,0); +}