diff options
Diffstat (limited to 'pkg/netsurf/libparserutils')
| -rw-r--r-- | pkg/netsurf/libparserutils/aliases.awk | 46 | ||||
| -rw-r--r-- | pkg/netsurf/libparserutils/gen.rc | 18 | ||||
| -rw-r--r-- | pkg/netsurf/libparserutils/rev | 1 | ||||
| m--------- | pkg/netsurf/libparserutils/src | 0 |
4 files changed, 65 insertions, 0 deletions
diff --git a/pkg/netsurf/libparserutils/aliases.awk b/pkg/netsurf/libparserutils/aliases.awk new file mode 100644 index 00000000..911bcd06 --- /dev/null +++ b/pkg/netsurf/libparserutils/aliases.awk @@ -0,0 +1,46 @@ +BEGIN { + print "static parserutils_charset_aliases_canon canonical_charset_names[] = {" + n = 0 +} + +/^(#|$)/ {next} + +function addalias(s) { + s = tolower(s) + gsub("[^a-z0-9]", "", s) + if (!(s in aliases)) + ++num_aliases + aliases[s] = n +} + + +{ + print "\t{ "$2", "length($1)", \""$1"\" }," + addalias($1) + for (i = 3; i <= NF; ++i) + addalias($i) + if ($1 ~ /^ISO-10646-UCS-[24]$/ || $1 ~ /^UTF-(8$|16|32)/) + isunicode = (isunicode ? (isunicode" || ") : "") "((x) == "$2")" + ++n +} +END { + print "};" + + print "static const uint16_t charset_aliases_canon_count = "n";" + + print "typedef struct {" + print "\tuint16_t name_len;" + print "\tconst char *name;" + print "\tparserutils_charset_aliases_canon *canon;" + print "} parserutils_charset_aliases_alias;" + + print "static parserutils_charset_aliases_alias charset_aliases[] = {" + for (alias in aliases) { + i = aliases[alias] + print "\t{ "length(alias)", \""alias"\", &canonical_charset_names["i"] }," | "sort -t '\"' -k 2" + } + close("sort -t '\"' -k 2") + print "};" + print "static const uint16_t charset_aliases_count = "num_aliases";" + print "#define MIBENUM_IS_UNICODE(x) ("isunicode")" +} diff --git a/pkg/netsurf/libparserutils/gen.rc b/pkg/netsurf/libparserutils/gen.rc new file mode 100644 index 00000000..0bd628ae --- /dev/null +++ b/pkg/netsurf/libparserutils/gen.rc @@ -0,0 +1,18 @@ +cflags\ + -I '$srcdir'/include\ + -I '$srcdir'/src + +build '$outdir'/aliases.inc awk '$srcdir'/build/Aliases '|' '$dir'/aliases.awk ; with\ + expr '-f $dir/aliases.awk' + +cc src/charset/aliases.c '||' '$outdir'/aliases.inc ; with cflags '$cflags -I $outdir' +lib libparserutils.a src/^(\ + charset/^(\ + aliases.c.o codec.c\ + encodings/^(utf8.c utf16.c)\ + )\ + input/^(filter.c inputstream.c)\ + utils/^(buffer.c errors.c stack.c vector.c)\ +) + +fetch git diff --git a/pkg/netsurf/libparserutils/rev b/pkg/netsurf/libparserutils/rev new file mode 100644 index 00000000..d00491fd --- /dev/null +++ b/pkg/netsurf/libparserutils/rev @@ -0,0 +1 @@ +1 diff --git a/pkg/netsurf/libparserutils/src b/pkg/netsurf/libparserutils/src new file mode 160000 +Subproject a191c155f6d137cae222c19185123b0d4e898e5 |
