diff options
author | James Bursa <james@netsurf-browser.org> | 2004-05-01 17:48:38 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2004-05-01 17:48:38 +0000 |
commit | d7a4adf48149e0d6d1ae0cc79c1a6d73aa02dd3f (patch) | |
tree | 817197439dc2fde67e6b6100eef7eae02ad2a89f /css/makeenum | |
parent | 199eee4b0bc2d825d0b48fda3644e81712a2b892 (diff) | |
download | netsurf-d7a4adf48149e0d6d1ae0cc79c1a6d73aa02dd3f.tar.gz netsurf-d7a4adf48149e0d6d1ae0cc79c1a6d73aa02dd3f.tar.bz2 |
[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
Diffstat (limited to 'css/makeenum')
-rwxr-xr-x | css/makeenum | 7 |
1 files changed, 4 insertions, 3 deletions
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"; } |