cvs: php4 /ext/ircg ircg_scanner.c ircg_scanner.re

From: Date: Thu, 24 May 2001 14:57:20 +0000
Subject: cvs: php4 /ext/ircg ircg_scanner.c ircg_scanner.re
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-5994@lists.php.net to get a copy of this message
sas Thu May 24 07:57:20 2001 EDT Modified files: /php4/ext/ircg ircg_scanner.c ircg_scanner.re Log: Add support for italic. Submitted by: Axel Sander <a.sander@eurogay.de>

Index: php4/ext/ircg/ircg_scanner.c diff -u php4/ext/ircg/ircg_scanner.c:1.10 php4/ext/ircg/ircg_scanner.c:1.11 --- php4/ext/ircg/ircg_scanner.c:1.10 Wed Apr 25 06:50:35 2001 +++ php4/ext/ircg/ircg_scanner.c Thu May 24 07:57:19 2001 @@ -1,5 +1,5 @@ -/* Generated by re2c 0.5 on Wed Apr 25 15:49:43 2001 */ -#line 1 "/home/sas/src/php4/ext/ircg/ircg_scanner.re" +/* Generated by re2c 0.5 on Thu May 24 16:58:10 2001 */ +#line 1 "ircg_scanner.re" /* +----------------------------------------------------------------------+ | PHP version 4.0 | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg_scanner.c,v 1.10 2001/04/25 13:50:35 sas Exp $ */ +/* $Id: ircg_scanner.c,v 1.11 2001/05/24 14:57:19 sas Exp $ */ #include <ext/standard/php_smart_str.h> #include <stdio.h> @@ -58,12 +58,13 @@ int font_tag_open; int bold_tag_open; int underline_tag_open; + int italic_tag_open; smart_str scheme; smart_str *result; } ircg_msg_scanner; -#line 75 +#line 77 #define YYFILL(n) { } @@ -153,6 +154,20 @@ ctx->underline_tag_open = 1 - ctx->underline_tag_open; } +static void handle_italic(STD_PARA, int final) +{ + switch (ctx->italic_tag_open) { + case 0: + if (!final) smart_str_appends_ex(ctx->result, "<i>", 1); + break; + case 1: + smart_str_appends_ex(ctx->result, "</i>", 1); + break; + } + + ctx->italic_tag_open = 1 - ctx->italic_tag_open; +} + static void commit_color_stuff(STD_PARA) { finish_color_stuff(STD_ARGS); @@ -182,7 +197,7 @@ mctx.result = result; mctx.scheme.c = NULL; - mctx.font_tag_open = mctx.bold_tag_open = mctx.underline_tag_open = 0; + mctx.italic_tag_open = mctx.font_tag_open = mctx.bold_tag_open = mctx.underline_tag_open = 0; if (msg_len == -1) msg_len = strlen(msg); @@ -237,28 +252,37 @@ yy0: if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - if(yych <= '&'){ + if(yych <= '%'){ if(yych <= '\003'){ - if(yych <= '\000') goto yy17; - if(yych <= '\001') goto yy16; + if(yych <= '\000') goto yy19; + if(yych <= '\001') goto yy18; if(yych <= '\002') goto yy12; goto yy4; } else { - if(yych == '\037') goto yy14; - if(yych <= '%') goto yy16; - goto yy10; + if(yych <= '\026'){ + if(yych <= '\025') goto yy18; + goto yy16; + } else { + if(yych == '\037') goto yy14; + goto yy18; + } } } else { if(yych <= '>'){ - if(yych == '<') goto yy6; - if(yych <= '=') goto yy16; - goto yy8; + if(yych <= ';'){ + if(yych <= '&') goto yy10; + goto yy18; + } else { + if(yych <= '<') goto yy6; + if(yych <= '=') goto yy18; + goto yy8; + } } else { if(yych <= 'Z'){ - if(yych <= '@') goto yy16; + if(yych <= '@') goto yy18; } else { - if(yych <= '`') goto yy16; - if(yych >= '{') goto yy16; + if(yych <= '`') goto yy18; + if(yych >= '{') goto yy18; } } } @@ -266,64 +290,68 @@ yych = *(YYMARKER = ++YYCURSOR); if(yych <= '@'){ if(yych <= '/') goto yy3; - if(yych <= ':') goto yy20; + if(yych <= ':') goto yy22; } else { - if(yych <= 'Z') goto yy20; + if(yych <= 'Z') goto yy22; if(yych <= '`') goto yy3; - if(yych <= 'z') goto yy20; + if(yych <= 'z') goto yy22; } yy3: -#line 214 +#line 231 { passthru(STD_ARGS); continue; } yy4: yych = *++YYCURSOR; yy5: -#line 208 +#line 224 { mctx.fg_code = mctx.bg_code = -1; STATE = STATE_COLOR_FG; continue; } yy6: yych = *++YYCURSOR; yy7: -#line 209 +#line 225 { add_entity(STD_ARGS, "&lt;"); continue; } yy8: yych = *++YYCURSOR; yy9: -#line 210 +#line 226 { add_entity(STD_ARGS, "&gt;"); continue; } yy10: yych = *++YYCURSOR; yy11: -#line 211 +#line 227 { add_entity(STD_ARGS, "&amp;"); continue; } yy12: yych = *++YYCURSOR; yy13: -#line 212 +#line 228 { handle_bold(STD_ARGS, 0); continue; } yy14: yych = *++YYCURSOR; yy15: -#line 213 +#line 229 { handle_underline(STD_ARGS, 0); continue; } yy16: yych = *++YYCURSOR; +yy17: +#line 230 + { handle_italic(STD_ARGS, 0); continue; } +yy18: yych = *++YYCURSOR; goto yy3; -yy17: yych = *++YYCURSOR; -yy18: -#line 215 +yy19: yych = *++YYCURSOR; +yy20: +#line 232 { goto stop; } -yy19: ++YYCURSOR; +yy21: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy20: if(yybm[0+yych] & 128) goto yy19; - if(yych == ':') goto yy22; -yy21: YYCURSOR = YYMARKER; +yy22: if(yybm[0+yych] & 128) goto yy21; + if(yych == ':') goto yy24; +yy23: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy3; } -yy22: yych = *++YYCURSOR; - if(yych != '/') goto yy21; -yy23: yych = *++YYCURSOR; - if(yych != '/') goto yy21; yy24: yych = *++YYCURSOR; -yy25: -#line 207 + if(yych != '/') goto yy23; +yy25: yych = *++YYCURSOR; + if(yych != '/') goto yy23; +yy26: yych = *++YYCURSOR; +yy27: +#line 223 { handle_scheme(STD_ARGS); STATE = STATE_URL; continue; } } -#line 216 +#line 233 break; @@ -368,43 +396,43 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; - goto yy26; -yy27: ++YYCURSOR; -yy26: + goto yy28; +yy29: ++YYCURSOR; +yy28: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '>'){ if(yych <= '"'){ - if(yych != '!') goto yy30; + if(yych != '!') goto yy32; } else { - if(yych == '<') goto yy30; - if(yych >= '>') goto yy30; + if(yych == '<') goto yy32; + if(yych >= '>') goto yy32; } } else { if(yych <= '`'){ - if(yych <= 'Z') goto yy28; - if(yych != '_') goto yy30; + if(yych <= 'Z') goto yy30; + if(yych != '_') goto yy32; } else { - if(yych <= 'z') goto yy28; - if(yych != '~') goto yy30; + if(yych <= 'z') goto yy30; + if(yych != '~') goto yy32; } } -yy28: yych = *++YYCURSOR; - goto yy33; -yy29: -#line 224 - { handle_url(STD_ARGS); STATE = STATE_PLAIN; continue; } yy30: yych = *++YYCURSOR; + goto yy35; yy31: -#line 225 +#line 241 + { handle_url(STD_ARGS); STATE = STATE_PLAIN; continue; } +yy32: yych = *++YYCURSOR; +yy33: +#line 242 { passthru(STD_ARGS); STATE = STATE_PLAIN; continue; } -yy32: ++YYCURSOR; +yy34: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy33: if(yybm[0+yych] & 128) goto yy32; - goto yy29; +yy35: if(yybm[0+yych] & 128) goto yy34; + goto yy31; } -#line 226 +#line 243 break; @@ -414,27 +442,27 @@ { YYCTYPE yych; unsigned int yyaccept; - goto yy34; -yy35: ++YYCURSOR; -yy34: + goto yy36; +yy37: ++YYCURSOR; +yy36: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - if(yych <= '/') goto yy38; - if(yych >= ':') goto yy38; -yy36: yych = *++YYCURSOR; - if(yych <= '/') goto yy37; - if(yych <= '9') goto yy40; -yy37: -#line 233 - { handle_color_digit(STD_ARGS, 0); STATE = STATE_COLOR_COMMA; continue; } + if(yych <= '/') goto yy40; + if(yych >= ':') goto yy40; yy38: yych = *++YYCURSOR; + if(yych <= '/') goto yy39; + if(yych <= '9') goto yy42; yy39: -#line 234 - { finish_color_stuff(STD_ARGS); passthru(STD_ARGS); STATE = STATE_PLAIN; continue; } +#line 250 + { handle_color_digit(STD_ARGS, 0); STATE = STATE_COLOR_COMMA; continue; } yy40: yych = *++YYCURSOR; - goto yy37; +yy41: +#line 251 + { finish_color_stuff(STD_ARGS); passthru(STD_ARGS); STATE = STATE_PLAIN; continue; } +yy42: yych = *++YYCURSOR; + goto yy39; } -#line 235 +#line 252 break; @@ -444,22 +472,22 @@ { YYCTYPE yych; unsigned int yyaccept; - goto yy41; -yy42: ++YYCURSOR; -yy41: + goto yy43; +yy44: ++YYCURSOR; +yy43: if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych != ',') goto yy45; -yy43: yych = *++YYCURSOR; -yy44: -#line 242 - { STATE = STATE_COLOR_BG; continue; } + if(yych != ',') goto yy47; yy45: yych = *++YYCURSOR; yy46: -#line 243 +#line 259 + { STATE = STATE_COLOR_BG; continue; } +yy47: yych = *++YYCURSOR; +yy48: +#line 260 { YYCURSOR--; commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } } -#line 244 +#line 261 break; @@ -469,27 +497,27 @@ { YYCTYPE yych; unsigned int yyaccept; - goto yy47; -yy48: ++YYCURSOR; -yy47: + goto yy49; +yy50: ++YYCURSOR; +yy49: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - if(yych <= '/') goto yy51; - if(yych >= ':') goto yy51; -yy49: yych = *++YYCURSOR; - if(yych <= '/') goto yy50; - if(yych <= '9') goto yy53; -yy50: -#line 251 - { handle_color_digit(STD_ARGS, 1); commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } + if(yych <= '/') goto yy53; + if(yych >= ':') goto yy53; yy51: yych = *++YYCURSOR; + if(yych <= '/') goto yy52; + if(yych <= '9') goto yy55; yy52: -#line 252 - { commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } +#line 268 + { handle_color_digit(STD_ARGS, 1); commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } yy53: yych = *++YYCURSOR; - goto yy50; +yy54: +#line 269 + { commit_color_stuff(STD_ARGS); STATE = STATE_PLAIN; continue; } +yy55: yych = *++YYCURSOR; + goto yy52; } -#line 253 +#line 270 break; } @@ -500,4 +528,5 @@ finish_color_stuff(STD_ARGS); handle_bold(STD_ARGS, 1); handle_underline(STD_ARGS, 1); + handle_italic(STD_ARGS, 1); } Index: php4/ext/ircg/ircg_scanner.re diff -u php4/ext/ircg/ircg_scanner.re:1.10 php4/ext/ircg/ircg_scanner.re:1.11 --- php4/ext/ircg/ircg_scanner.re:1.10 Wed Apr 25 06:50:35 2001 +++ php4/ext/ircg/ircg_scanner.re Thu May 24 07:57:19 2001 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg_scanner.re,v 1.10 2001/04/25 13:50:35 sas Exp $ */ +/* $Id: ircg_scanner.re,v 1.11 2001/05/24 14:57:19 sas Exp $ */ #include <ext/standard/php_smart_str.h> #include <stdio.h> @@ -56,6 +56,7 @@ int font_tag_open; int bold_tag_open; int underline_tag_open; + int italic_tag_open; smart_str scheme; smart_str *result; @@ -72,6 +73,7 @@ coloresc = ""; bold = ""; underline = "\037"; +italic = ""; */ #define YYFILL(n) { } @@ -161,6 +163,20 @@ ctx->underline_tag_open = 1 - ctx->underline_tag_open; } +static void handle_italic(STD_PARA, int final) +{ + switch (ctx->italic_tag_open) { + case 0: + if (!final) smart_str_appends_ex(ctx->result, "<i>", 1); + break; + case 1: + smart_str_appends_ex(ctx->result, "</i>", 1); + break; + } + + ctx->italic_tag_open = 1 - ctx->italic_tag_open; +} + static void commit_color_stuff(STD_PARA) { finish_color_stuff(STD_ARGS); @@ -190,7 +206,7 @@ mctx.result = result; mctx.scheme.c = NULL; - mctx.font_tag_open = mctx.bold_tag_open = mctx.underline_tag_open = 0; + mctx.italic_tag_open = mctx.font_tag_open = mctx.bold_tag_open = mctx.underline_tag_open = 0; if (msg_len == -1) msg_len = strlen(msg); @@ -211,6 +227,7 @@ "&" { add_entity(STD_ARGS, "&amp;"); continue; } bold { handle_bold(STD_ARGS, 0); continue; } underline { handle_underline(STD_ARGS, 0); continue; } + italic { handle_italic(STD_ARGS, 0); continue; } anynoneof { passthru(STD_ARGS); continue; } eof { goto stop; } */ @@ -260,4 +277,5 @@ finish_color_stuff(STD_ARGS); handle_bold(STD_ARGS, 1); handle_underline(STD_ARGS, 1); + handle_italic(STD_ARGS, 1); }
« previous php.cvs (#5994) next »