sas Thu Mar 8 10:43:52 2001 EDT
Modified files:
/php4/ext/ircg ircg_scanner.re
Log:
Add handling for underline/bold control sequences
Index: php4/ext/ircg/ircg_scanner.re
diff -u php4/ext/ircg/ircg_scanner.re:1.6 php4/ext/ircg/ircg_scanner.re:1.7
--- php4/ext/ircg/ircg_scanner.re:1.6 Sat Mar 3 13:22:13 2001
+++ php4/ext/ircg/ircg_scanner.re Thu Mar 8 10:43:52 2001
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ircg_scanner.re,v 1.6 2001/03/03 21:22:13 sas Exp $ */
+/* $Id: ircg_scanner.re,v 1.7 2001/03/08 18:43:52 sas Exp $ */
#include <ext/standard/php_smart_str.h>
#include <stdio.h>
@@ -54,6 +54,8 @@
int bg_code;
int fg_code;
int font_tag_open;
+ int bold_tag_open;
+ int underline_tag_open;
smart_str scheme;
smart_str *result;
@@ -68,6 +70,8 @@
digit = [0-9];
scheme = alpha alnum*;
coloresc = "";
+bold = "";
+underline = "";
*/
#define YYFILL(n) { }
@@ -129,6 +133,34 @@
}
}
+static void handle_bold(STD_PARA, int final)
+{
+ switch (ctx->bold_tag_open) {
+ case 0:
+ if (!final) smart_str_appends(ctx->result, "<b>");
+ break;
+ case 1:
+ smart_str_appends(ctx->result, "</b>");
+ break;
+ }
+
+ ctx->bold_tag_open = 1 - ctx->bold_tag_open;
+}
+
+static void handle_underline(STD_PARA, int final)
+{
+ switch (ctx->underline_tag_open) {
+ case 0:
+ if (!final) smart_str_appends(ctx->result, "<ul>");
+ break;
+ case 1:
+ smart_str_appends(ctx->result, "</ul>");
+ break;
+ }
+
+ ctx->underline_tag_open = 1 - ctx->underline_tag_open;
+}
+
static void commit_color_stuff(STD_PARA)
{
finish_color_stuff(STD_ARGS);
@@ -158,7 +190,7 @@
mctx.result = result;
mctx.scheme.c = NULL;
- mctx.font_tag_open = 0;
+ mctx.font_tag_open = mctx.bold_tag_open = mctx.underline_tag_open = 0;
if (msg_len == -1)
msg_len = strlen(msg);
@@ -178,7 +210,9 @@
"<" { add_entity(STD_ARGS, "<"); continue; }
">" { add_entity(STD_ARGS, ">"); continue; }
"&" { add_entity(STD_ARGS, "&"); continue; }
- (anynoneof\([<>&])) (anynoneof\[/])* { passthru(STD_ARGS);
continue; }
+ bold { handle_bold(STD_ARGS, 0); continue; }
+ underline { handle_underline(STD_ARGS, 0); continue; }
+ (anynoneof\([<>&])) (anynoneof\[/])* { passthru(STD_ARGS);
+continue; }
anynoneof { passthru(STD_ARGS); continue; }
eof { goto stop; }
*/
@@ -226,4 +260,6 @@
smart_str_free(&ctx->scheme);
finish_color_stuff(STD_ARGS);
+ handle_bold(STD_ARGS, 1);
+ handle_underline(STD_ARGS, 1);
}
--
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]