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

Reply via email to