summaryrefslogtreecommitdiffstats
path: root/unicode/mkscripts.pl
diff options
context:
space:
mode:
authorSam Varshavchik2015-01-20 08:34:36 -0500
committerSam Varshavchik2015-01-20 08:34:36 -0500
commitda75938c6c857fa8a5290850e288fa64052feacb (patch)
tree882258ec52c9bd645d5cd3c13040c02514d9d374 /unicode/mkscripts.pl
parentf9d000cfabe83c219b6a035e0e08fdd2cacebc9e (diff)
downloadcourier-libs-da75938c6c857fa8a5290850e288fa64052feacb.tar.bz2
unicode: unicode_script() returns an enumerated value instead of a string.
Diffstat (limited to 'unicode/mkscripts.pl')
-rwxr-xr-xunicode/mkscripts.pl31
1 files changed, 24 insertions, 7 deletions
diff --git a/unicode/mkscripts.pl b/unicode/mkscripts.pl
index c21ed92..d29a04d 100755
--- a/unicode/mkscripts.pl
+++ b/unicode/mkscripts.pl
@@ -60,17 +60,34 @@ while (defined($_=<F>))
$scriptnames{$s} //= ++$counter;
- push @table, [$f, $l, $scriptnames{$s} . "-1"];
+ push @table, [$f, $l, "unicode_script_" . lc($s)];
}
-print "static const char * const scripts[]={\n";
+open(F, "<unicode.h") or die;
-foreach (sort { $scriptnames{$a} <=> $scriptnames{$b}} keys %scriptnames)
-{
- print "\t\"$_\",\n";
-}
+my @unicode_h=<F>;
+close(F);
+
+my ($f, $l) = grep { $unicode_h[$_] =~ /UNICODE_SCRIPT_T/ } (0..$#unicode_h);
+
+die unless $f && $l;
+
+my @repl = map {
+ "\tunicode_script_" . lc($_) . ",\n";
+} sort {
+ $scriptnames{$a} <=> $scriptnames{$b};
+} keys %scriptnames;
+
+unshift @repl, "\tunicode_script_unknown,\n";
+
+$repl[$#repl] =~ s/,//;
+
+splice @unicode_h, $f+1, $l-$f-2, @repl;
-print "\t\"Unknown\"};\n";
+open(F, ">unicode.h.tmp") or die;
+print F join("", @unicode_h);
+close(F) or die;
+rename("unicode.h.tmp", "unicode.h") or die;
grep {