summaryrefslogtreecommitdiff
path: root/css/makeenum
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2004-05-01 17:48:38 +0000
committerJames Bursa <james@netsurf-browser.org>2004-05-01 17:48:38 +0000
commitd7a4adf48149e0d6d1ae0cc79c1a6d73aa02dd3f (patch)
tree817197439dc2fde67e6b6100eef7eae02ad2a89f /css/makeenum
parent199eee4b0bc2d825d0b48fda3644e81712a2b892 (diff)
downloadnetsurf-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-xcss/makeenum7
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";
}