File php-5.1.2-phpbug-36459.patch of Package php
--- ext/standard/url_scanner_ex.re 2006/01/01 12:26:08 1.76.2.1
+++ ext/standard/url_scanner_ex.re 2006/02/28 14:45:18 1.76.2.2
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: url_scanner_ex.re,v 1.76.2.1 2006/01/01 12:26:08 sniper Exp $ */
+/* $Id: url_scanner_ex.re,v 1.76.2.2 2006/02/28 14:45:18 iliaa Exp $ */
#include "php.h"
@@ -302,7 +302,7 @@
start = YYCURSOR;
/*!re2c
">" { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
- [ \v\t\n]+ { passthru(STD_ARGS); goto state_next_arg; }
+ [ \v\r\t\n]+ { passthru(STD_ARGS); goto state_next_arg; }
alpha { --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
any { passthru(STD_ARGS); goto state_plain_begin; }
*/
@@ -327,7 +327,7 @@
/*!re2c
["] (any\[">])* ["] { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
['] (any\['>])* ['] { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
- (any\[ \t\n>])+ { handle_val(STD_ARGS, 0, '\0'); goto state_next_arg_begin; }
+ (any\[ \r\t\n>])+ { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
any { passthru(STD_ARGS); goto state_next_arg_begin; }
*/
--- ext/standard/url_scanner_ex.c 2006-01-11 15:26:08.000000000 +0100
+++ ext/standard/url_scanner_ex.c 2006-03-14 12:11:45.000000000 +0100
@@ -1,4 +1,5 @@
-/* Generated by re2c 0.9.11 on Sun Jan 1 14:39:52 2006 */
+/* Generated by re2c 0.9.11 on Tue Feb 28 09:38:22 2006 */
+#line 1 "ext/standard/url_scanner_ex.re"
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
@@ -17,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: url_scanner_ex.c,v 1.95.2.3 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: url_scanner_ex.c,v 1.95.2.4 2006/02/28 14:45:18 iliaa Exp $ */
#include "php.h"
@@ -90,6 +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"
#define YYFILL(n) goto done
@@ -107,42 +109,8 @@
q = (p = url->c) + url->len;
scan:
-{
- 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 114 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy0;
@@ -150,36 +118,44 @@
yy0:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy8;
+ switch(yych){
+ case '#': goto yy6;
+ case ':': goto yy2;
+ case '?': goto yy4;
+ default: goto yy8;
}
- if(yych <= '9') goto yy6;
- if(yych >= ';') goto yy4;
- goto yy2;
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: if(yybm[0+yych] & 128) {
- goto yy8;
+yy9: switch(yych){
+ case '#': case ':': case '?': goto yy10;
+ default: goto yy8;
}
- goto yy10;
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"
done:
@@ -347,42 +323,8 @@
state_plain:
start = YYCURSOR;
-{
- 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 328 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy11;
@@ -390,66 +332,36 @@
yy11:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy15;
+ switch(yych){
+ case '<': goto yy13;
+ default: goto yy15;
}
- goto yy13;
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: if(yybm[0+yych] & 128) {
- goto yy15;
+yy16: switch(yych){
+ case '<': goto yy17;
+ default: goto yy15;
}
- goto yy17;
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"
state_tag:
start = YYCURSOR;
-{
- 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, 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 365 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy18;
@@ -457,30 +369,133 @@
yy18:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '@') goto yy22;
- if(yych <= 'Z') goto yy20;
- if(yych <= '`') goto yy22;
- if(yych >= '{') goto yy22;
- goto yy20;
+ 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;
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: if(yybm[0+yych] & 128) {
- goto yy24;
+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;
}
- goto yy21;
-}
}
+#line 296 "ext/standard/url_scanner_ex.re"
state_next_arg_begin:
@@ -488,42 +503,8 @@
state_next_arg:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 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 508 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy26;
@@ -531,92 +512,107 @@
yy26:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '='){
- if(yych <= 0x0B){
- if(yych <= 0x08) goto yy34;
- goto yy30;
- } else {
- if(yych == ' ') goto yy30;
- goto yy34;
- }
- } else {
- if(yych <= 'Z'){
- if(yych <= '>') goto yy28;
- if(yych <= '@') goto yy34;
- goto yy32;
- } else {
- if(yych <= '`') goto yy34;
- if(yych <= 'z') goto yy32;
- goto yy34;
- }
+ 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;
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: if(yybm[0+yych] & 128) {
- goto yy36;
+yy37: switch(yych){
+ case 0x09:
+ case 0x0A:
+ case 0x0B: case 0x0D: case ' ': goto yy36;
+ default: goto yy31;
}
- goto yy31;
-}
}
+#line 308 "ext/standard/url_scanner_ex.re"
state_arg:
start = YYCURSOR;
-{
- 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 616 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy38;
@@ -624,70 +620,139 @@
yy38:
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;
- goto yy40;
+ 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;
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: if(yybm[0+yych] & 128) {
- goto yy44;
+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;
}
- goto yy41;
-}
}
+#line 315 "ext/standard/url_scanner_ex.re"
state_before_val:
start = YYCURSOR;
-{
- 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 756 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -696,85 +761,61 @@
yy46:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych == ' ') goto yy48;
- if(yych == '=') goto yy50;
- goto yy52;
+ switch(yych){
+ case ' ': goto yy48;
+ case '=': goto yy50;
+ default: goto yy52;
+ }
yy48: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == ' ') goto yy55;
- if(yych == '=') goto yy53;
- goto yy49;
+ switch(yych){
+ case ' ': goto yy55;
+ case '=': goto yy53;
+ default: goto yy49;
+ }
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;
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: if(yybm[0+yych] & 128) {
- goto yy53;
+yy54: switch(yych){
+ case ' ': goto yy53;
+ default: goto yy51;
}
- goto yy51;
yy55: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy56;
-yy56: if(yych == ' ') goto yy55;
- if(yych == '=') goto yy53;
- goto yy57;
+yy56: switch(yych){
+ case ' ': goto yy55;
+ case '=': goto yy53;
+ default: goto yy57;
+ }
yy57: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy49;
}
}
-}
+#line 322 "ext/standard/url_scanner_ex.re"
state_val:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 160, 160, 248, 248, 248, 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 819 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -783,29 +824,20 @@
yy58:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= '!'){
- if(yych <= 0x0A){
- if(yych <= 0x08) goto yy63;
- goto yy64;
- } else {
- if(yych == ' ') goto yy64;
- goto yy63;
- }
- } else {
- if(yych <= '\''){
- if(yych <= '"') goto yy60;
- if(yych <= '&') goto yy63;
- goto yy62;
- } else {
- if(yych == '>') goto yy64;
- goto yy63;
- }
+ 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;
yy61:
-{ handle_val(STD_ARGS, 0, '\0'); goto state_next_arg_begin; }
+#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;
@@ -814,43 +846,49 @@
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: if(yybm[0+yych] & 8) {
- goto yy66;
+yy67: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy61;
+ default: goto yy66;
}
- goto yy61;
yy68: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
goto yy69;
-yy69: if(yybm[0+yych] & 16) {
- goto yy68;
+yy69: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': goto yy72;
+ case '\'': goto yy70;
+ case '>': goto yy61;
+ default: goto yy68;
}
- if(yych <= '&') goto yy72;
- if(yych >= '(') goto yy61;
- goto yy70;
yy70: ++YYCURSOR;
- if(yybm[0+(yych = *YYCURSOR)] & 8) {
- yych = *YYCURSOR;
- goto yy66;
+ switch((yych = *YYCURSOR)) {
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy71;
+ default: goto yy66;
}
- goto yy71;
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: if(yybm[0+yych] & 32) {
- goto yy72;
+yy73: switch(yych){
+ case '\'': goto yy75;
+ case '>': goto yy74;
+ default: goto yy72;
}
- if(yych <= '=') goto yy75;
- goto yy74;
yy74: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy61;
@@ -862,34 +900,37 @@
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
goto yy77;
-yy77: if(yybm[0+yych] & 64) {
- goto yy76;
+yy77: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': goto yy80;
+ case '"': goto yy78;
+ case '>': goto yy61;
+ default: goto yy76;
}
- if(yych <= '!') goto yy80;
- if(yych >= '#') goto yy61;
- goto yy78;
yy78: ++YYCURSOR;
- if(yybm[0+(yych = *YYCURSOR)] & 8) {
- yych = *YYCURSOR;
- goto yy66;
+ switch((yych = *YYCURSOR)) {
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy79;
+ default: goto yy66;
}
- goto yy79;
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: if(yybm[0+yych] & 128) {
- goto yy80;
+yy81: switch(yych){
+ case '"': goto yy82;
+ case '>': goto yy74;
+ default: goto yy80;
}
- if(yych >= '>') goto yy74;
- goto yy82;
yy82: ++YYCURSOR;
yych = *YYCURSOR;
goto yy79;
}
-}
+#line 332 "ext/standard/url_scanner_ex.re"
stop: