From d7a4adf48149e0d6d1ae0cc79c1a6d73aa02dd3f Mon Sep 17 00:00:00 2001 From: James Bursa Date: Sat, 1 May 2004 17:48:38 +0000 Subject: [project @ 2004-05-01 17:48:38 by bursa] CSS parsing improvements: new tokeniser using re2c, improve memory-exhaustion behaviour, plug leaks, reduce memory usage, clean up code, add source documention. svn path=/import/netsurf/; revision=806 --- css/makeenum | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'css/makeenum') diff --git a/css/makeenum b/css/makeenum index 4950cc14d..004313d93 100755 --- a/css/makeenum +++ b/css/makeenum @@ -28,17 +28,18 @@ while (<>) { print H join ",\n ${uc_name}_", @uc_enum; print H ",\n ${uc_name}_UNKNOWN\n"; print H "} $name;\n"; - print H "$name ${name}_parse(const char * const s);\n\n"; + print H "$name ${name}_parse(const char * const s, int length);\n\n"; print C "/**\n * $name\n */\n\n"; print C "const char * const ${name}_name[] = {\n \""; print C join "\",\n \"", @enum; print C "\"\n};\n\n"; - print C "$name ${name}_parse(const char * const s)\n{\n"; + print C "$name ${name}_parse(const char * const s, int length)\n{\n"; foreach $x (@enum) { $ux = uc $x; $ux =~ s/-/_/g; - print C " if (strcasecmp(s, \"$x\") == 0) return ${uc_name}_$ux;\n"; + $len = length $x; + print C " if (length == $len && strncasecmp(s, \"$x\", $len) == 0) return ${uc_name}_$ux;\n"; } print C " return ${uc_name}_UNKNOWN;\n}\n\n"; } -- cgit v1.2.3