diff admin/unidata/bidimirror.awk @ 108983:7e588bac2220

Use BidiMirroring.txt for mirroring characters in bidi context. admin/unidata/bidimirror.awk: New file. admin/unidata/BidiMirroring.txt: New file from http://www.unicode.org/Public/6.0.0/ucd/BidiMirroring-6.0.0d1.txt. admin/unidata/Makefile.in: (../../src/bidimirror.h): New target. (all): Depend on ../../src/biditype.h and ../../src/bidimirror.h. admin/unidata/makefile.w32-in (../../src/bidimirror.h): New target. (all): Depend on ../../src/biditype.h and ../../src/bidimirror.h. src/makefile.w32-in ($(BLD)/bidi.$(O)): Depend on biditype.h and bidimirror.h. src/deps.mk (bidi.o): Depend on biditype.h and bidimirror.h. src/bidi.c (bidi_initialize): Initialize bidi_mirror_table. (bidi_mirror_char): Use bidi_mirror_table.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 12 Jun 2010 18:52:43 +0300
parents
children 6378d1b57038
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/admin/unidata/bidimirror.awk	Sat Jun 12 18:52:43 2010 +0300
@@ -0,0 +1,37 @@
+# Generate data for bidi_mirroring_table, see src/bidi.c:bidi_initialize.
+
+# Copyright (C) 2010, Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+# Written by Eli Zaretskii <eliz@gnu.org>
+
+BEGIN {
+     printf "  struct {\n    int from, to;\n  } bidi_mirror[] = {\n";
+     first = 1;
+ }
+
+$1 !~ /^#/ && NF >= 2 {
+     if (!first)
+	 printf ",\n";
+     else
+	 first = 0;
+     printf "\t{ 0x%s, 0x%s }", $1, $2;
+ }
+
+END {
+     printf " };\n";
+ }