From 99c1ba18963ddebf5b2d8b6d7424b762de7f5f75 Mon Sep 17 00:00:00 2001 From: denis <> Date: Wed, 24 Jan 2007 21:12:05 +0000 Subject: support for questionmark in URL behind the initial one --- scan_urlencoded_query.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'scan_urlencoded_query.c') diff --git a/scan_urlencoded_query.c b/scan_urlencoded_query.c index b255811..fdcc3e6 100644 --- a/scan_urlencoded_query.c +++ b/scan_urlencoded_query.c @@ -21,6 +21,7 @@ size_t scan_urlencoded_query(char **string, char *deststring, int flags) { unsigned char *d = (unsigned char*)deststring; register unsigned char b, c; +retry_parsing: while( is_unreserved( c = *s++) ) { if( c=='%') { if( ( c = scan_fromhex(*s++) ) == 0xff ) return -1; @@ -36,7 +37,9 @@ size_t scan_urlencoded_query(char **string, char *deststring, int flags) { --s; break; case '?': - if( flags != SCAN_PATH ) return -1; + if( flags == SCAN_PATH ) goto found_terminator; + *d++ = c; + goto retry_parsing; break; case '=': if( flags != SCAN_SEARCHPATH_PARAM ) return -1; @@ -49,6 +52,7 @@ size_t scan_urlencoded_query(char **string, char *deststring, int flags) { return -1; } +found_terminator: *string = (char *)s; return d - (unsigned char*)deststring; } -- cgit v1.2.3