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:
openSUSE Build Service is sponsored by