sas Thu Mar 8 11:29:33 2001 EDT Modified files: /php4/ext/ircg ircg_scanner.c ircg_scanner.re Log: Fix underline handling
Index: php4/ext/ircg/ircg_scanner.c diff -u php4/ext/ircg/ircg_scanner.c:1.6 php4/ext/ircg/ircg_scanner.c:1.7 --- php4/ext/ircg/ircg_scanner.c:1.6 Thu Mar 8 10:59:46 2001 +++ php4/ext/ircg/ircg_scanner.c Thu Mar 8 11:29:33 2001 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Thu Mar 8 19:50:44 2001 */ +/* Generated by re2c 0.5 on Thu Mar 8 20:32:13 2001 */ #line 1 "/home/sas/src/php4/ext/ircg/ircg_scanner.re" /* +----------------------------------------------------------------------+ @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg_scanner.c,v 1.6 2001/03/08 18:59:46 sas Exp $ */ +/* $Id: ircg_scanner.c,v 1.7 2001/03/08 19:29:33 sas Exp $ */ #include <ext/standard/php_smart_str.h> #include <stdio.h> @@ -143,10 +143,10 @@ { switch (ctx->underline_tag_open) { case 0: - if (!final) smart_str_appends(ctx->result, "<ul>"); + if (!final) smart_str_appends(ctx->result, "<u>"); break; case 1: - smart_str_appends(ctx->result, "</ul>"); + smart_str_appends(ctx->result, "</u>"); break; } @@ -189,7 +189,6 @@ end = msg + msg_len; xp = msg; - while (1) { start = YYCURSOR; @@ -200,14 +199,14 @@ YYCTYPE yych; unsigned int yyaccept; static unsigned char yybm[] = { - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, + 0, 64, 0, 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, + 64, 64, 64, 64, 64, 64, 0, 64, + 64, 64, 64, 64, 64, 64, 64, 0, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 64, 64, 64, 64, 64, 64, + 192, 192, 64, 64, 0, 64, 0, 64, 64, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, @@ -238,22 +237,31 @@ yy0: if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - if(yych <= '&'){ + if(yych <= '.'){ if(yych <= '\003'){ - if(yych <= '\000') goto yy17; + if(yych <= '\000') goto yy19; if(yych <= '\001') goto yy16; if(yych <= '\002') goto yy12; goto yy4; } else { - if(yych == '\025') goto yy14; - if(yych <= '%') goto yy16; - goto yy10; + if(yych <= '\037'){ + if(yych <= '\036') goto yy16; + goto yy14; + } else { + if(yych == '&') goto yy10; + goto yy16; + } } } else { if(yych <= '>'){ - if(yych == '<') goto yy6; - if(yych <= '=') goto yy16; - goto yy8; + if(yych <= ';'){ + if(yych <= '/') goto yy17; + goto yy16; + } else { + if(yych <= '<') goto yy6; + if(yych <= '=') goto yy16; + goto yy8; + } } else { if(yych <= 'Z'){ if(yych <= '@') goto yy16; @@ -264,70 +272,90 @@ } } yy2: yych = *++YYCURSOR; - if(yybm[0+yych] & 128) goto yy21; - if(yych == ':') goto yy23; - goto yy20; + if(yybm[0+yych] & 128) goto yy23; + if(yych == ':') goto yy25; + goto yy22; yy3: -#line 215 +#line 214 { passthru(STD_ARGS); continue; } yy4: yych = *++YYCURSOR; yy5: -#line 209 +#line 208 { mctx.fg_code = mctx.bg_code = -1; STATE = STATE_COLOR_FG; continue; } yy6: yych = *++YYCURSOR; yy7: -#line 210 +#line 209 { add_entity(STD_ARGS, "<"); continue; } yy8: yych = *++YYCURSOR; yy9: -#line 211 +#line 210 { add_entity(STD_ARGS, ">"); continue; } yy10: yych = *++YYCURSOR; yy11: -#line 212 +#line 211 { add_entity(STD_ARGS, "&"); continue; } yy12: yych = *++YYCURSOR; yy13: -#line 213 +#line 212 { handle_bold(STD_ARGS, 0); continue; } yy14: yych = *++YYCURSOR; yy15: -#line 214 +#line 213 { handle_underline(STD_ARGS, 0); continue; } yy16: yych = *++YYCURSOR; - goto yy20; + goto yy22; yy17: yych = *++YYCURSOR; yy18: -#line 217 +#line 215 + { passthru(STD_ARGS); continue; } +yy19: yych = *++YYCURSOR; +yy20: +#line 216 { goto stop; } -yy19: ++YYCURSOR; +yy21: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy20: if(yybm[0+yych] & 64) goto yy19; +yy22: if(yybm[0+yych] & 64) goto yy21; goto yy3; -yy21: ++YYCURSOR; +yy23: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy22: if(yybm[0+yych] & 128) goto yy21; - if(yych <= '\000') goto yy3; - if(yych <= '.') goto yy19; - if(yych <= '/') goto yy3; - if(yych >= ';') goto yy19; -yy23: yyaccept = 0; +yy24: if(yybm[0+yych] & 128) goto yy23; + if(yych <= '&'){ + if(yych <= '\003'){ + if(yych == '\001') goto yy21; + goto yy3; + } else { + if(yych == '\037') goto yy3; + if(yych <= '%') goto yy21; + goto yy3; + } + } else { + if(yych <= ';'){ + if(yych <= '.') goto yy21; + if(yych <= '/') goto yy3; + if(yych >= ';') goto yy21; + } else { + if(yych == '=') goto yy21; + if(yych <= '>') goto yy3; + goto yy21; + } + } +yy25: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != '/') goto yy20; -yy24: yych = *++YYCURSOR; - if(yych == '/') goto yy26; -yy25: YYCURSOR = YYMARKER; + if(yych != '/') goto yy22; +yy26: yych = *++YYCURSOR; + if(yych == '/') goto yy28; +yy27: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy3; } -yy26: yych = *++YYCURSOR; -yy27: -#line 208 +yy28: yych = *++YYCURSOR; +yy29: +#line 207 { handle_scheme(STD_ARGS); STATE = STATE_URL; continue; } } -#line 218 +#line 217 break; @@ -372,43 +400,43 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; - goto yy28; -yy29: ++YYCURSOR; -yy28: + goto yy30; +yy31: ++YYCURSOR; +yy30: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '>'){ if(yych <= '"'){ - if(yych != '!') goto yy32; + if(yych != '!') goto yy34; } else { - if(yych == '<') goto yy32; - if(yych >= '>') goto yy32; + if(yych == '<') goto yy34; + if(yych >= '>') goto yy34; } } else { if(yych <= '`'){ - if(yych <= 'Z') goto yy30; - if(yych != '_') goto yy32; + if(yych <= 'Z') goto yy32; + if(yych != '_') goto yy34; } else { - if(yych <= 'z') goto yy30; - if(yych != '~') goto yy32; + if(yych <= 'z') goto yy32; + if(yych != '~') goto yy34; } } -yy30: yych = *++YYCURSOR; - goto yy35; -yy31: -#line 226 - { handle_url(STD_ARGS); STATE = STATE_PLAIN; continue; } yy32: yych = *++YYCURSOR; + goto yy37; yy33: -#line 227 +#line 225 + { handle_url(STD_ARGS); STATE = STATE_PLAIN; continue; } +yy34: yych = *++YYCURSOR; +yy35: +#line 226 { passthru(STD_ARGS); STATE = STATE_PLAIN; continue; } -yy34: ++YYCURSOR; +yy36: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy35: if(yybm[0+yych] & 128) goto yy34; - goto yy31; +yy37: if(yybm[0+yych] & 128) goto yy36; + goto yy33; } -#line 228 +#line 227 break; @@ -418,27 +446,27 @@ { YYCTYPE yych; unsigned int yyaccept; - goto yy36; -yy37: ++YYCURSOR; -yy36: + goto yy38; +yy39: ++YYCURSOR; +yy38: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - if(yych <= '/') goto yy40; - if(yych >= ':') goto yy40; -yy38: yych = *++YYCURSOR; - if(yych <= '/') goto yy39; - if(yych <= '9') goto yy42; -yy39: -#line 235 - { handle_color_digit(STD_ARGS, 0); STATE = STATE_COLOR_COMMA; continue; } + if(yych <= '/') goto yy42; + if(yych >= ':') goto yy42; yy40: yych = *++YYCURSOR; + if(yych <= '/') goto yy41; + if(yych <= '9') goto yy44; yy41: -#line 236 - { finish_color_stuff(STD_ARGS); passthru(STD_ARGS); STATE = STATE_PLAIN; continue; } +#line 234 + { handle_color_digit(STD_ARGS, 0); STATE = STATE_COLOR_COMMA; continue; } yy42: yych = *++YYCURSOR; - goto yy39; +yy43: +#line 235 + { finish_color_stuff(STD_ARGS); passthru(STD_ARGS); STATE = STATE_PLAIN; +continue; } +yy44: yych = *++YYCURSOR; + goto yy41; } -#line 237 +#line 236 break; @@ -448,22 +476,22 @@ { YYCTYPE yych; unsigned int yyaccept; - goto yy43; -yy44: ++YYCURSOR; -yy43: + goto yy45; +yy46: ++YYCURSOR; +yy45: if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych != ',') goto yy47; -yy45: yych = *++YYCURSOR; -yy46: -#line 244 - { STATE = STATE_COLOR_BG; continue; } + if(yych != ',') goto yy49; yy47: yych = *++YYCURSOR; yy48: -#line 245 +#line 243 + { STATE = STATE_COLOR_BG; continue; } +yy49: yych = *++YYCURSOR; +yy50: +#line 244 { YYCURSOR--; commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } } -#line 246 +#line 245 break; @@ -473,27 +501,27 @@ { YYCTYPE yych; unsigned int yyaccept; - goto yy49; -yy50: ++YYCURSOR; -yy49: + goto yy51; +yy52: ++YYCURSOR; +yy51: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - if(yych <= '/') goto yy53; - if(yych >= ':') goto yy53; -yy51: yych = *++YYCURSOR; - if(yych <= '/') goto yy52; - if(yych <= '9') goto yy55; -yy52: -#line 253 - { handle_color_digit(STD_ARGS, 1); commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } + if(yych <= '/') goto yy55; + if(yych >= ':') goto yy55; yy53: yych = *++YYCURSOR; + if(yych <= '/') goto yy54; + if(yych <= '9') goto yy57; yy54: -#line 254 - { commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } +#line 252 + { handle_color_digit(STD_ARGS, 1); commit_color_stuff(STD_ARGS); STATE = +STATE_PLAIN; continue; } yy55: yych = *++YYCURSOR; - goto yy52; +yy56: +#line 253 + { commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } +yy57: yych = *++YYCURSOR; + goto yy54; } -#line 255 +#line 254 break; } Index: php4/ext/ircg/ircg_scanner.re diff -u php4/ext/ircg/ircg_scanner.re:1.7 php4/ext/ircg/ircg_scanner.re:1.8 --- php4/ext/ircg/ircg_scanner.re:1.7 Thu Mar 8 10:43:52 2001 +++ php4/ext/ircg/ircg_scanner.re Thu Mar 8 11:29:33 2001 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg_scanner.re,v 1.7 2001/03/08 18:43:52 sas Exp $ */ +/* $Id: ircg_scanner.re,v 1.8 2001/03/08 19:29:33 sas Exp $ */ #include <ext/standard/php_smart_str.h> #include <stdio.h> @@ -71,7 +71,7 @@ scheme = alpha alnum*; coloresc = ""; bold = ""; -underline = ""; +underline = "\037"; */ #define YYFILL(n) { } @@ -151,10 +151,10 @@ { switch (ctx->underline_tag_open) { case 0: - if (!final) smart_str_appends(ctx->result, "<ul>"); + if (!final) smart_str_appends(ctx->result, "<u>"); break; case 1: - smart_str_appends(ctx->result, "</ul>"); + smart_str_appends(ctx->result, "</u>"); break; } @@ -197,7 +197,6 @@ end = msg + msg_len; xp = msg; - while (1) { start = YYCURSOR; @@ -212,7 +211,7 @@ "&" { add_entity(STD_ARGS, "&"); continue; } bold { handle_bold(STD_ARGS, 0); continue; } underline { handle_underline(STD_ARGS, 0); continue; } - (anynoneof\([<>&])) (anynoneof\[/])* { passthru(STD_ARGS); continue; } + (anynoneof\([<>&/]|underline))+ { passthru(STD_ARGS); +continue; } anynoneof { passthru(STD_ARGS); continue; } eof { goto stop; } */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]