iliaa Wed Jun 6 00:00:28 2007 UTC Added files: (Branch: PHP_5_2) /php-src/ext/session/tests bug41600.phpt
Modified files: /php-src/ext/standard url_scanner_ex.c url_scanner_ex.re /php-src NEWS Log: Fixed bug #41600 (url rewriter tags doesn't work with namespaced tags).
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/url_scanner_ex.c?r1=1.95.2.4.2.1&r2=1.95.2.4.2.2&diff_format=u Index: php-src/ext/standard/url_scanner_ex.c diff -u php-src/ext/standard/url_scanner_ex.c:1.95.2.4.2.1 php-src/ext/standard/url_scanner_ex.c:1.95.2.4.2.2 --- php-src/ext/standard/url_scanner_ex.c:1.95.2.4.2.1 Mon Jan 1 09:36:09 2007 +++ php-src/ext/standard/url_scanner_ex.c Wed Jun 6 00:00:27 2007 @@ -1,10 +1,10 @@ -/* Generated by re2c 0.9.11 on Tue Feb 28 09:38:22 2006 */ -#line 1 "ext/standard/url_scanner_ex.re" +/* Generated by re2c 0.11.0 on Tue Jun 5 19:51:02 2007 */ +#line 1 "url_scanner_ex.re" /* +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2007 The PHP Group | + | Copyright (c) 1997-2006 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: url_scanner_ex.c,v 1.95.2.4.2.1 2007/01/01 09:36:09 sebastian Exp $ */ +/* $Id: url_scanner_ex.c,v 1.95.2.4.2.2 2007/06/06 00:00:27 iliaa Exp $ */ #include "php.h" @@ -91,7 +91,7 @@ STD_PHP_INI_ENTRY("url_rewriter.tags", "a=href,area=href,frame=src,form=,fieldset=", PHP_INI_ALL, OnUpdateTags, url_adapt_state_ex, php_basic_globals, basic_globals) PHP_INI_END() -#line 97 "ext/standard/url_scanner_ex.re" +#line 98 "url_scanner_ex.re" #define YYFILL(n) goto done @@ -109,53 +109,80 @@ q = (p = url->c) + url->len; scan: - -#line 114 "ext/standard/url_scanner_ex.c" { - YYCTYPE yych; - goto yy0; - ++YYCURSOR; -yy0: - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '#': goto yy6; - case ':': goto yy2; - case '?': goto yy4; - default: goto yy8; - } -yy2: ++YYCURSOR; - goto yy3; -yy3: -#line 115 "ext/standard/url_scanner_ex.re" -{ smart_str_append(dest, url); return; } -#line 133 "ext/standard/url_scanner_ex.c" -yy4: ++YYCURSOR; - goto yy5; -yy5: -#line 116 "ext/standard/url_scanner_ex.re" -{ sep = separator; goto scan; } -#line 139 "ext/standard/url_scanner_ex.c" -yy6: ++YYCURSOR; - goto yy7; -yy7: -#line 117 "ext/standard/url_scanner_ex.re" -{ bash = p - 1; goto done; } -#line 145 "ext/standard/url_scanner_ex.c" -yy8: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy9; -yy9: switch(yych){ - case '#': case ':': case '?': goto yy10; - default: goto yy8; + static unsigned char yybm[] = { + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 128, 128, 128, 128, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + +#line 149 "url_scanner_ex.c" + { + YYCTYPE yych; + + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy8; + } + if(yych <= '9') goto yy6; + if(yych >= ';') goto yy4; + ++YYCURSOR; +#line 116 "url_scanner_ex.re" + { smart_str_append(dest, url); return; } +#line 163 "url_scanner_ex.c" +yy4: + ++YYCURSOR; +#line 117 "url_scanner_ex.re" + { sep = separator; goto scan; } +#line 168 "url_scanner_ex.c" +yy6: + ++YYCURSOR; +#line 118 "url_scanner_ex.re" + { bash = p - 1; goto done; } +#line 173 "url_scanner_ex.c" +yy8: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy8; + } +#line 119 "url_scanner_ex.re" + { goto scan; } +#line 183 "url_scanner_ex.c" } -yy10: -#line 118 "ext/standard/url_scanner_ex.re" -{ goto scan; } -#line 157 "ext/standard/url_scanner_ex.c" } -#line 119 "ext/standard/url_scanner_ex.re" +#line 120 "url_scanner_ex.re" done: @@ -323,179 +350,144 @@ state_plain: start = YYCURSOR; - -#line 328 "ext/standard/url_scanner_ex.c" { - YYCTYPE yych; - goto yy11; - ++YYCURSOR; -yy11: - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch(yych){ - case '<': goto yy13; - default: goto yy15; - } -yy13: ++YYCURSOR; - goto yy14; -yy14: -#line 287 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; } -#line 345 "ext/standard/url_scanner_ex.c" -yy15: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy16; -yy16: switch(yych){ - case '<': goto yy17; - default: goto yy15; + static unsigned char yybm[] = { + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + +#line 390 "url_scanner_ex.c" + { + YYCTYPE yych; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy15; + } + ++YYCURSOR; +#line 288 "url_scanner_ex.re" + { passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; } +#line 401 "url_scanner_ex.c" +yy15: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy15; + } +#line 289 "url_scanner_ex.re" + { passthru(STD_ARGS); goto state_plain; } +#line 411 "url_scanner_ex.c" } -yy17: -#line 288 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); goto state_plain; } -#line 357 "ext/standard/url_scanner_ex.c" } -#line 289 "ext/standard/url_scanner_ex.re" +#line 290 "url_scanner_ex.re" state_tag: start = YYCURSOR; - -#line 365 "ext/standard/url_scanner_ex.c" { - YYCTYPE yych; - goto yy18; - ++YYCURSOR; -yy18: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy20; - default: goto yy22; - } -yy20: ++YYCURSOR; - yych = *YYCURSOR; - goto yy25; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + +#line 455 "url_scanner_ex.c" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '@') { + if(yych != ':') goto yy22; + } else { + if(yych <= 'Z') goto yy20; + if(yych <= '`') goto yy22; + if(yych >= '{') goto yy22; + } +yy20: + ++YYCURSOR; + yych = *YYCURSOR; + goto yy25; yy21: -#line 294 "ext/standard/url_scanner_ex.re" -{ handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; } -#line 433 "ext/standard/url_scanner_ex.c" -yy22: ++YYCURSOR; - goto yy23; -yy23: -#line 295 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); goto state_plain_begin; } -#line 439 "ext/standard/url_scanner_ex.c" -yy24: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy25; -yy25: switch(yych){ - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy24; - default: goto yy21; +#line 295 "url_scanner_ex.re" + { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; } +#line 474 "url_scanner_ex.c" +yy22: + ++YYCURSOR; +#line 296 "url_scanner_ex.re" + { passthru(STD_ARGS); goto state_plain_begin; } +#line 479 "url_scanner_ex.c" +yy24: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy25: + if(yybm[0+yych] & 128) { + goto yy24; + } + goto yy21; } } -#line 296 "ext/standard/url_scanner_ex.re" +#line 297 "url_scanner_ex.re" state_next_arg_begin: @@ -503,434 +495,417 @@ state_next_arg: start = YYCURSOR; - -#line 508 "ext/standard/url_scanner_ex.c" { - YYCTYPE yych; - goto yy26; - ++YYCURSOR; -yy26: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case 0x09: - case 0x0A: - case 0x0B: case 0x0D: case ' ': goto yy30; - case '>': goto yy28; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy32; - default: goto yy34; - } -yy28: ++YYCURSOR; - goto yy29; -yy29: -#line 304 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; } -#line 579 "ext/standard/url_scanner_ex.c" -yy30: ++YYCURSOR; - yych = *YYCURSOR; - goto yy37; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 0, 128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + +#line 535 "url_scanner_ex.c" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= ' ') { + if(yych <= 0x0C) { + if(yych <= 0x08) goto yy34; + if(yych <= 0x0B) goto yy30; + goto yy34; + } else { + if(yych <= 0x0D) goto yy30; + if(yych <= 0x1F) goto yy34; + goto yy30; + } + } else { + if(yych <= '@') { + if(yych != '>') goto yy34; + } else { + if(yych <= 'Z') goto yy32; + if(yych <= '`') goto yy34; + if(yych <= 'z') goto yy32; + goto yy34; + } + } + ++YYCURSOR; +#line 305 "url_scanner_ex.re" + { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; } +#line 563 "url_scanner_ex.c" +yy30: + ++YYCURSOR; + yych = *YYCURSOR; + goto yy37; yy31: -#line 305 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); goto state_next_arg; } -#line 586 "ext/standard/url_scanner_ex.c" -yy32: ++YYCURSOR; - goto yy33; -yy33: -#line 306 "ext/standard/url_scanner_ex.re" -{ --YYCURSOR; STATE = STATE_ARG; goto state_arg; } -#line 592 "ext/standard/url_scanner_ex.c" -yy34: ++YYCURSOR; - goto yy35; -yy35: -#line 307 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); goto state_plain_begin; } -#line 598 "ext/standard/url_scanner_ex.c" -yy36: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy37; -yy37: switch(yych){ - case 0x09: - case 0x0A: - case 0x0B: case 0x0D: case ' ': goto yy36; - default: goto yy31; +#line 306 "url_scanner_ex.re" + { passthru(STD_ARGS); goto state_next_arg; } +#line 571 "url_scanner_ex.c" +yy32: + ++YYCURSOR; +#line 307 "url_scanner_ex.re" + { --YYCURSOR; STATE = STATE_ARG; goto state_arg; } +#line 576 "url_scanner_ex.c" +yy34: + ++YYCURSOR; +#line 308 "url_scanner_ex.re" + { passthru(STD_ARGS); goto state_plain_begin; } +#line 581 "url_scanner_ex.c" +yy36: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy37: + if(yybm[0+yych] & 128) { + goto yy36; + } + goto yy31; } } -#line 308 "ext/standard/url_scanner_ex.re" +#line 309 "url_scanner_ex.re" state_arg: start = YYCURSOR; - -#line 616 "ext/standard/url_scanner_ex.c" { - YYCTYPE yych; - goto yy38; - ++YYCURSOR; -yy38: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy40; - default: goto yy42; - } -yy40: ++YYCURSOR; - yych = *YYCURSOR; - goto yy45; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + +#line 634 "url_scanner_ex.c" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '@') goto yy42; + if(yych <= 'Z') goto yy40; + if(yych <= '`') goto yy42; + if(yych >= '{') goto yy42; +yy40: + ++YYCURSOR; + yych = *YYCURSOR; + goto yy45; yy41: -#line 313 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; } -#line 684 "ext/standard/url_scanner_ex.c" -yy42: ++YYCURSOR; - goto yy43; -yy43: -#line 314 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); STATE = STATE_NEXT_ARG; goto state_next_arg; } -#line 690 "ext/standard/url_scanner_ex.c" -yy44: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy45; -yy45: switch(yych){ - case '-': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy44; - default: goto yy41; +#line 314 "url_scanner_ex.re" + { passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; } +#line 650 "url_scanner_ex.c" +yy42: + ++YYCURSOR; +#line 315 "url_scanner_ex.re" + { passthru(STD_ARGS); STATE = STATE_NEXT_ARG; goto state_next_arg; } +#line 655 "url_scanner_ex.c" +yy44: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy45: + if(yybm[0+yych] & 128) { + goto yy44; + } + goto yy41; } } -#line 315 "ext/standard/url_scanner_ex.re" +#line 316 "url_scanner_ex.re" state_before_val: start = YYCURSOR; - -#line 756 "ext/standard/url_scanner_ex.c" { - YYCTYPE yych; - unsigned int yyaccept = 0; - goto yy46; - ++YYCURSOR; -yy46: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - switch(yych){ - case ' ': goto yy48; - case '=': goto yy50; - default: goto yy52; - } -yy48: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case ' ': goto yy55; - case '=': goto yy53; - default: goto yy49; - } + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + +#line 708 "url_scanner_ex.c" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych == ' ') goto yy48; + if(yych == '=') goto yy50; + goto yy52; +yy48: + yych = *(YYMARKER = ++YYCURSOR); + if(yych == ' ') goto yy55; + if(yych == '=') goto yy53; yy49: -#line 321 "ext/standard/url_scanner_ex.re" -{ --YYCURSOR; goto state_next_arg_begin; } -#line 780 "ext/standard/url_scanner_ex.c" -yy50: ++YYCURSOR; - yych = *YYCURSOR; - goto yy54; +#line 322 "url_scanner_ex.re" + { --YYCURSOR; goto state_next_arg_begin; } +#line 723 "url_scanner_ex.c" +yy50: + ++YYCURSOR; + yych = *YYCURSOR; + goto yy54; yy51: -#line 320 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; } -#line 787 "ext/standard/url_scanner_ex.c" -yy52: yych = *++YYCURSOR; - goto yy49; -yy53: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy54; -yy54: switch(yych){ - case ' ': goto yy53; - default: goto yy51; - } -yy55: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy56; -yy56: switch(yych){ - case ' ': goto yy55; - case '=': goto yy53; - default: goto yy57; - } -yy57: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy49; +#line 321 "url_scanner_ex.re" + { passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; } +#line 731 "url_scanner_ex.c" +yy52: + yych = *++YYCURSOR; + goto yy49; +yy53: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy54: + if(yybm[0+yych] & 128) { + goto yy53; + } + goto yy51; +yy55: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == ' ') goto yy55; + if(yych == '=') goto yy53; + YYCURSOR = YYMARKER; + goto yy49; } } -#line 322 "ext/standard/url_scanner_ex.re" +#line 323 "url_scanner_ex.re" state_val: start = YYCURSOR; - -#line 819 "ext/standard/url_scanner_ex.c" { - YYCTYPE yych; - unsigned int yyaccept = 0; - goto yy58; - ++YYCURSOR; -yy58: - if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; - switch(yych){ - case 0x09: - case 0x0A: case 0x0D: case ' ': case '>': goto yy64; - case '"': goto yy60; - case '\'': goto yy62; - default: goto yy63; - } -yy60: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy77; + static unsigned char yybm[] = { + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 160, 160, 248, 248, 160, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 160, 248, 56, 248, 248, 248, 248, 200, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 0, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + }; + +#line 796 "url_scanner_ex.c" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; + if(yych <= ' ') { + if(yych <= 0x0C) { + if(yych <= 0x08) goto yy63; + if(yych <= 0x0A) goto yy64; + goto yy63; + } else { + if(yych <= 0x0D) goto yy64; + if(yych <= 0x1F) goto yy63; + goto yy64; + } + } else { + if(yych <= '&') { + if(yych != '"') goto yy63; + } else { + if(yych <= '\'') goto yy62; + if(yych == '>') goto yy64; + goto yy63; + } + } + yych = *(YYMARKER = ++YYCURSOR); + goto yy77; yy61: -#line 330 "ext/standard/url_scanner_ex.re" -{ handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; } -#line 841 "ext/standard/url_scanner_ex.c" -yy62: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy69; -yy63: yych = *++YYCURSOR; - goto yy67; -yy64: ++YYCURSOR; - goto yy65; -yy65: -#line 331 "ext/standard/url_scanner_ex.re" -{ passthru(STD_ARGS); goto state_next_arg_begin; } -#line 852 "ext/standard/url_scanner_ex.c" -yy66: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy67; -yy67: switch(yych){ - case 0x09: - case 0x0A: case 0x0D: case ' ': case '>': goto yy61; - default: goto yy66; - } -yy68: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - goto yy69; -yy69: switch(yych){ - case 0x09: - case 0x0A: case 0x0D: case ' ': goto yy72; - case '\'': goto yy70; - case '>': goto yy61; - default: goto yy68; - } -yy70: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case 0x09: - case 0x0A: case 0x0D: case ' ': case '>': goto yy71; - default: goto yy66; - } +#line 331 "url_scanner_ex.re" + { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; } +#line 825 "url_scanner_ex.c" +yy62: + yych = *(YYMARKER = ++YYCURSOR); + goto yy69; +yy63: + yych = *++YYCURSOR; + goto yy67; +yy64: + ++YYCURSOR; +#line 332 "url_scanner_ex.re" + { passthru(STD_ARGS); goto state_next_arg_begin; } +#line 836 "url_scanner_ex.c" +yy66: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy67: + if(yybm[0+yych] & 8) { + goto yy66; + } + goto yy61; +yy68: + YYMARKER = ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; +yy69: + if(yybm[0+yych] & 16) { + goto yy68; + } + if(yych <= '&') goto yy72; + if(yych >= '(') goto yy61; + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 8) { + goto yy66; + } yy71: -#line 329 "ext/standard/url_scanner_ex.re" -{ handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; } -#line 883 "ext/standard/url_scanner_ex.c" -yy72: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy73; -yy73: switch(yych){ - case '\'': goto yy75; - case '>': goto yy74; - default: goto yy72; - } -yy74: YYCURSOR = YYMARKER; - switch(yyaccept){ - case 0: goto yy61; - } -yy75: yych = *++YYCURSOR; - goto yy71; -yy76: yyaccept = 0; - YYMARKER = ++YYCURSOR; - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - goto yy77; -yy77: switch(yych){ - case 0x09: - case 0x0A: case 0x0D: case ' ': goto yy80; - case '"': goto yy78; - case '>': goto yy61; - default: goto yy76; - } -yy78: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case 0x09: - case 0x0A: case 0x0D: case ' ': case '>': goto yy79; - default: goto yy66; - } +#line 330 "url_scanner_ex.re" + { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; } +#line 863 "url_scanner_ex.c" +yy72: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 32) { + goto yy72; + } + if(yych <= '=') goto yy75; +yy74: + YYCURSOR = YYMARKER; + goto yy61; +yy75: + yych = *++YYCURSOR; + goto yy71; +yy76: + YYMARKER = ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; +yy77: + if(yybm[0+yych] & 64) { + goto yy76; + } + if(yych <= '!') goto yy80; + if(yych >= '#') goto yy61; + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 8) { + goto yy66; + } yy79: -#line 328 "ext/standard/url_scanner_ex.re" -{ handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; } -#line 920 "ext/standard/url_scanner_ex.c" -yy80: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - goto yy81; -yy81: switch(yych){ - case '"': goto yy82; - case '>': goto yy74; - default: goto yy80; +#line 329 "url_scanner_ex.re" + { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; } +#line 895 "url_scanner_ex.c" +yy80: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy80; + } + if(yych >= '>') goto yy74; + ++YYCURSOR; + yych = *YYCURSOR; + goto yy79; } -yy82: ++YYCURSOR; - yych = *YYCURSOR; - goto yy79; } -#line 332 "ext/standard/url_scanner_ex.re" +#line 333 "url_scanner_ex.re" stop: http://cvs.php.net/viewvc.cgi/php-src/ext/standard/url_scanner_ex.re?r1=1.76.2.2&r2=1.76.2.2.2.1&diff_format=u Index: php-src/ext/standard/url_scanner_ex.re diff -u php-src/ext/standard/url_scanner_ex.re:1.76.2.2 php-src/ext/standard/url_scanner_ex.re:1.76.2.2.2.1 --- php-src/ext/standard/url_scanner_ex.re:1.76.2.2 Tue Feb 28 14:45:18 2006 +++ php-src/ext/standard/url_scanner_ex.re Wed Jun 6 00:00:27 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: url_scanner_ex.re,v 1.76.2.2 2006/02/28 14:45:18 iliaa Exp $ */ +/* $Id: url_scanner_ex.re,v 1.76.2.2.2.1 2007/06/06 00:00:27 iliaa Exp $ */ #include "php.h" @@ -93,6 +93,7 @@ any = [\000-\377]; N = (any\[<]); alpha = [a-zA-Z]; +alphanamespace = [a-zA-Z:]; alphadash = ([a-zA-Z] | "-"); */ @@ -291,7 +292,7 @@ state_tag: start = YYCURSOR; /*!re2c - alpha+ { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; } + alphanamespace+ { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; } any { passthru(STD_ARGS); goto state_plain_begin; } */ http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.760&r2=1.2027.2.547.2.761&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.760 php-src/NEWS:1.2027.2.547.2.761 --- php-src/NEWS:1.2027.2.547.2.760 Tue Jun 5 22:55:27 2007 +++ php-src/NEWS Wed Jun 6 00:00:28 2007 @@ -9,6 +9,8 @@ - Fixed crash in ZipArchive::addEmptyDir when a directory already exists (pecl bug #11216) (Pierre) GD_RELEASE_VERSION, GD_EXTRA_VERSION and GD_VERSION_STRING. (Pierre) +- Fixed bug #41600 (url rewriter tags doesn't work with namespaced tags). + (Ilia) - Fixed bug #41596 (Fixed a crash inside pdo_pgsql on some non-well-formed SQL queries). (Ilia) - Fixed bug #41594 (Statement cache is flushed too frequently). (Tony) http://cvs.php.net/viewvc.cgi/php-src/ext/session/tests/bug41600.phpt?view=markup&rev=1.1 Index: php-src/ext/session/tests/bug41600.phpt +++ php-src/ext/session/tests/bug41600.phpt
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php