From 474a84653b4aa5a10b49af751c3008a4c582422c Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 15 Aug 2011 20:47:25 +0300 Subject: [PATCH] Use uniprop tables instead of biditype.h and bidimirror.h. src/bidi.c (bidi_initialize): Use uniprop_table instead of including biditype.h and bidimirror.h. src/biditype.h: File removed. src/bidimirror.h: File removed. src/deps.mk (bidi.o): Remove biditype.h and bidimirror.h. src/makefile.w32-in ($(BLD)/bidi.$(O)): Remove biditype.h and bidimirror.h. src/dispextern.h: Fix a typo in the comment to bidi_type_t. src/chartab.c: Improve commentary for the uniprop_table API. admin/unidata/bidimirror.awk: File removed. admin/unidata/biditype.awk: File removed. admin/unidata/makefile.w32-in (all): Remove src/biditype.h and src/bidimirror.h. (../../src/biditype.h, ../../src/bidimirror.h): Deleted. admin/unidata/Makefile.in (all): Remove src/biditype.h and src/bidimirror.h. (../../src/biditype.h, ../../src/bidimirror.h): Deleted. --- admin/ChangeLog | 14 ++ admin/unidata/Makefile.in | 8 +- admin/unidata/bidimirror.awk | 37 --- admin/unidata/biditype.awk | 93 ------- admin/unidata/makefile.w32-in | 12 +- src/ChangeLog | 16 ++ src/bidi.c | 20 +- src/bidimirror.h | 365 --------------------------- src/biditype.h | 447 ---------------------------------- src/chartab.c | 25 +- src/deps.mk | 2 +- src/dispextern.h | 2 +- src/makefile.w32-in | 2 - 13 files changed, 57 insertions(+), 986 deletions(-) delete mode 100644 admin/unidata/bidimirror.awk delete mode 100644 admin/unidata/biditype.awk delete mode 100644 src/bidimirror.h delete mode 100644 src/biditype.h diff --git a/admin/ChangeLog b/admin/ChangeLog index dbbe38ce617..bc38edfc8d4 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,17 @@ +2011-08-15 Eli Zaretskii + + * unidata/bidimirror.awk: File removed. + + * unidata/biditype.awk: File removed. + + * unidata/makefile.w32-in (all): Remove src/biditype.h and + src/bidimirror.h. + (../../src/biditype.h, ../../src/bidimirror.h): Deleted. + + * unidata/Makefile.in (all): Remove src/biditype.h and + src/bidimirror.h. + (../../src/biditype.h, ../../src/bidimirror.h): Deleted. + 2011-07-07 Juanma Barranquero * unidata/makefile.w32-in (charprop-SH, charprop-CMD): diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index e1fe247631f..c890dad8903 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -23,7 +23,7 @@ EMACS = ../../src/emacs DSTDIR = ../../lisp/international RUNEMACS = ${EMACS} -Q -batch -all: ${DSTDIR}/charprop.el ../../src/biditype.h ../../src/bidimirror.h +all: ${DSTDIR}/charprop.el .el.elc: ${RUNEMACS} -batch -f batch-byte-compile $< @@ -38,12 +38,6 @@ ${DSTDIR}/charprop.el: unidata-gen.elc unidata.txt cd ${DSTDIR}; \ ${RUNEMACS} -batch --load $${ELC} -f unidata-gen-files $${DATADIR} $${DATA} -../../src/biditype.h: UnicodeData.txt - gawk -F";" -f biditype.awk $< > $@ - -../../src/bidimirror.h: BidiMirroring.txt - gawk -F"[; ]+" -f bidimirror.awk $< > $@ - install: charprop.el cp charprop.el ${DSTDIR} cp `sed -n 's/^;; FILE: //p' < charprop.el` ${DSTDIR} diff --git a/admin/unidata/bidimirror.awk b/admin/unidata/bidimirror.awk deleted file mode 100644 index fc3e8afaace..00000000000 --- a/admin/unidata/bidimirror.awk +++ /dev/null @@ -1,37 +0,0 @@ -# Generate data for bidi_mirroring_table, see src/bidi.c:bidi_initialize. - -# Copyright (C) 2010-2011 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 . - -# Written by Eli Zaretskii - -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"; - } diff --git a/admin/unidata/biditype.awk b/admin/unidata/biditype.awk deleted file mode 100644 index bb1aaad1973..00000000000 --- a/admin/unidata/biditype.awk +++ /dev/null @@ -1,93 +0,0 @@ -# Generate data for filling bidi_type_table, see src/bidi.c:bidi_initialize. - -# Copyright (C) 2010-2011 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 . - -# Written by Eli Zaretskii - -function trtype(type) -{ - # Types are listed in the order of decresing use in UnicodeData.txt: - if (type == "ON") - return "NEUTRAL_ON"; - else if (type == "NSM") - return "WEAK_NSM"; - else if (type == "AL") - return "STRONG_AL"; - else if (type == "R") - return "STRONG_R"; - else if (type == "BN") - return "WEAK_BN"; - else if (type == "EN") - return "WEAK_EN"; - else if (type == "ET") - return "WEAK_ET"; - else if (type == "AN") - return "WEAK_AN"; - else if (type == "WS") - return "NEUTRAL_WS"; - else if (type == "CS") - return "WEAK_CS"; - else if (type == "ES") - return "WEAK_ES"; - else if (type == "B") - return "NEUTRAL_B"; - else if (type == "S") - return "NEUTRAL_S"; - else if (type == "LRE" || type == "RLE" || type == "LRO" || type == "RLO" || type == "PDF") - return type; - else if (type == "L") - return "STRONG_L"; - else - { - printf "Unknown type: %s\n", type > "/dev/stderr"; - exit 1; - } -} - -BEGIN { - otype = ""; - startcode = ""; - endcode = ""; - printf " struct {\n int from, to;\n bidi_type_t type;\n } bidi_type[] = {\n"; - first = 1; - } - - { code = $1; - ntype = $5; - if (ntype != otype) - { - # Don't output data for L, as that's the default value, see bidi.c. - if (otype != "L" && startcode != "") - { - if (!first) - printf ",\n"; - else - first = 0; - printf "\t{ 0x%s, 0x%s, %s }", startcode, endcode, trtype(otype); - } - otype = ntype; - startcode = code; - endcode = code; - } - else - endcode = code; - } - -END { - printf " };\n"; - } diff --git a/admin/unidata/makefile.w32-in b/admin/unidata/makefile.w32-in index 6a877e0c1d0..96a1f5b86fd 100644 --- a/admin/unidata/makefile.w32-in +++ b/admin/unidata/makefile.w32-in @@ -29,7 +29,7 @@ EMACSLOADPATH = $(lisp);$(lisp)/international;$(lisp)/emacs-lisp # Quote EMACS so it could be a file name with embedded whitespace RUNEMACS = "$(EMACS)" -Q -batch -all: $(DSTDIR)/charprop.el ../../src/biditype.h ../../src/bidimirror.h +all: $(DSTDIR)/charprop.el .el.elc: $(RUNEMACS) -f batch-byte-compile $< @@ -51,16 +51,6 @@ charprop-CMD: unidata-gen.elc unidata.txt ${DSTDIR}/charprop.el: charprop-$(SHELLTYPE) -../../src/biditype.h: UnicodeData.txt - gawk -F";" -f biditype.awk -v BINMODE=2 $< > biditype.h - $(CP) biditype.h $@ - $(DEL) biditype.h - -../../src/bidimirror.h: BidiMirroring.txt - gawk -F"[; ]+" -f bidimirror.awk -v BINMODE=2 $< > bidimirror.h - $(CP) bidimirror.h $@ - $(DEL) bidimirror.h - clean: - $(DEL) unidata-gen.elc unidata.txt biditype.h bidimirror.h diff --git a/src/ChangeLog b/src/ChangeLog index fa94aed1383..a2256cff9f0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,7 +1,23 @@ 2011-08-15 Eli Zaretskii + * biditype.h: File removed. + + * bidimirror.h: File removed. + + * deps.mk (bidi.o): Remove biditype.h and + bidimirror.h. + + * makefile.w32-in ($(BLD)/bidi.$(O)): Remove biditype.h and + bidimirror.h. + + * dispextern.h: Fix a typo in the comment to bidi_type_t. + + * chartab.c: Improve commentary for the uniprop_table API. + * bidi.c (bidi_paragraph_init): Support zero value of bidi_ignore_explicit_marks_for_paragraph_level. + (bidi_initialize): Use uniprop_table instead of including + biditype.h and bidimirror.h. * xdisp.c (move_it_in_display_line_to): Don't reset pixel coordinates of the iterator when restoring from ppos_it. diff --git a/src/bidi.c b/src/bidi.c index 383553f6d91..280c9d15769 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -746,26 +746,18 @@ bidi_unshelve_cache (void *databuf, int just_free) static void bidi_initialize (void) { - -#include "biditype.h" -#include "bidimirror.h" - int i; - bidi_type_table = Fmake_char_table (Qnil, make_number (STRONG_L)); + bidi_type_table = uniprop_table (intern ("bidi-class")); + if (NILP (bidi_type_table)) + abort (); staticpro (&bidi_type_table); - for (i = 0; i < sizeof bidi_type / sizeof bidi_type[0]; i++) - char_table_set_range (bidi_type_table, bidi_type[i].from, bidi_type[i].to, - make_number (bidi_type[i].type)); - - bidi_mirror_table = Fmake_char_table (Qnil, Qnil); + bidi_mirror_table = uniprop_table (intern ("mirroring")); + if (NILP (bidi_mirror_table)) + abort (); staticpro (&bidi_mirror_table); - for (i = 0; i < sizeof bidi_mirror / sizeof bidi_mirror[0]; i++) - char_table_set (bidi_mirror_table, bidi_mirror[i].from, - make_number (bidi_mirror[i].to)); - Qparagraph_start = intern ("paragraph-start"); staticpro (&Qparagraph_start); paragraph_start_re = Fsymbol_value (Qparagraph_start); diff --git a/src/bidimirror.h b/src/bidimirror.h deleted file mode 100644 index 477f983ad64..00000000000 --- a/src/bidimirror.h +++ /dev/null @@ -1,365 +0,0 @@ - struct { - int from, to; - } bidi_mirror[] = { - { 0x0028, 0x0029 }, - { 0x0029, 0x0028 }, - { 0x003C, 0x003E }, - { 0x003E, 0x003C }, - { 0x005B, 0x005D }, - { 0x005D, 0x005B }, - { 0x007B, 0x007D }, - { 0x007D, 0x007B }, - { 0x00AB, 0x00BB }, - { 0x00BB, 0x00AB }, - { 0x0F3A, 0x0F3B }, - { 0x0F3B, 0x0F3A }, - { 0x0F3C, 0x0F3D }, - { 0x0F3D, 0x0F3C }, - { 0x169B, 0x169C }, - { 0x169C, 0x169B }, - { 0x2039, 0x203A }, - { 0x203A, 0x2039 }, - { 0x2045, 0x2046 }, - { 0x2046, 0x2045 }, - { 0x207D, 0x207E }, - { 0x207E, 0x207D }, - { 0x208D, 0x208E }, - { 0x208E, 0x208D }, - { 0x2208, 0x220B }, - { 0x2209, 0x220C }, - { 0x220A, 0x220D }, - { 0x220B, 0x2208 }, - { 0x220C, 0x2209 }, - { 0x220D, 0x220A }, - { 0x2215, 0x29F5 }, - { 0x223C, 0x223D }, - { 0x223D, 0x223C }, - { 0x2243, 0x22CD }, - { 0x2252, 0x2253 }, - { 0x2253, 0x2252 }, - { 0x2254, 0x2255 }, - { 0x2255, 0x2254 }, - { 0x2264, 0x2265 }, - { 0x2265, 0x2264 }, - { 0x2266, 0x2267 }, - { 0x2267, 0x2266 }, - { 0x2268, 0x2269 }, - { 0x2269, 0x2268 }, - { 0x226A, 0x226B }, - { 0x226B, 0x226A }, - { 0x226E, 0x226F }, - { 0x226F, 0x226E }, - { 0x2270, 0x2271 }, - { 0x2271, 0x2270 }, - { 0x2272, 0x2273 }, - { 0x2273, 0x2272 }, - { 0x2274, 0x2275 }, - { 0x2275, 0x2274 }, - { 0x2276, 0x2277 }, - { 0x2277, 0x2276 }, - { 0x2278, 0x2279 }, - { 0x2279, 0x2278 }, - { 0x227A, 0x227B }, - { 0x227B, 0x227A }, - { 0x227C, 0x227D }, - { 0x227D, 0x227C }, - { 0x227E, 0x227F }, - { 0x227F, 0x227E }, - { 0x2280, 0x2281 }, - { 0x2281, 0x2280 }, - { 0x2282, 0x2283 }, - { 0x2283, 0x2282 }, - { 0x2284, 0x2285 }, - { 0x2285, 0x2284 }, - { 0x2286, 0x2287 }, - { 0x2287, 0x2286 }, - { 0x2288, 0x2289 }, - { 0x2289, 0x2288 }, - { 0x228A, 0x228B }, - { 0x228B, 0x228A }, - { 0x228F, 0x2290 }, - { 0x2290, 0x228F }, - { 0x2291, 0x2292 }, - { 0x2292, 0x2291 }, - { 0x2298, 0x29B8 }, - { 0x22A2, 0x22A3 }, - { 0x22A3, 0x22A2 }, - { 0x22A6, 0x2ADE }, - { 0x22A8, 0x2AE4 }, - { 0x22A9, 0x2AE3 }, - { 0x22AB, 0x2AE5 }, - { 0x22B0, 0x22B1 }, - { 0x22B1, 0x22B0 }, - { 0x22B2, 0x22B3 }, - { 0x22B3, 0x22B2 }, - { 0x22B4, 0x22B5 }, - { 0x22B5, 0x22B4 }, - { 0x22B6, 0x22B7 }, - { 0x22B7, 0x22B6 }, - { 0x22C9, 0x22CA }, - { 0x22CA, 0x22C9 }, - { 0x22CB, 0x22CC }, - { 0x22CC, 0x22CB }, - { 0x22CD, 0x2243 }, - { 0x22D0, 0x22D1 }, - { 0x22D1, 0x22D0 }, - { 0x22D6, 0x22D7 }, - { 0x22D7, 0x22D6 }, - { 0x22D8, 0x22D9 }, - { 0x22D9, 0x22D8 }, - { 0x22DA, 0x22DB }, - { 0x22DB, 0x22DA }, - { 0x22DC, 0x22DD }, - { 0x22DD, 0x22DC }, - { 0x22DE, 0x22DF }, - { 0x22DF, 0x22DE }, - { 0x22E0, 0x22E1 }, - { 0x22E1, 0x22E0 }, - { 0x22E2, 0x22E3 }, - { 0x22E3, 0x22E2 }, - { 0x22E4, 0x22E5 }, - { 0x22E5, 0x22E4 }, - { 0x22E6, 0x22E7 }, - { 0x22E7, 0x22E6 }, - { 0x22E8, 0x22E9 }, - { 0x22E9, 0x22E8 }, - { 0x22EA, 0x22EB }, - { 0x22EB, 0x22EA }, - { 0x22EC, 0x22ED }, - { 0x22ED, 0x22EC }, - { 0x22F0, 0x22F1 }, - { 0x22F1, 0x22F0 }, - { 0x22F2, 0x22FA }, - { 0x22F3, 0x22FB }, - { 0x22F4, 0x22FC }, - { 0x22F6, 0x22FD }, - { 0x22F7, 0x22FE }, - { 0x22FA, 0x22F2 }, - { 0x22FB, 0x22F3 }, - { 0x22FC, 0x22F4 }, - { 0x22FD, 0x22F6 }, - { 0x22FE, 0x22F7 }, - { 0x2308, 0x2309 }, - { 0x2309, 0x2308 }, - { 0x230A, 0x230B }, - { 0x230B, 0x230A }, - { 0x2329, 0x232A }, - { 0x232A, 0x2329 }, - { 0x2768, 0x2769 }, - { 0x2769, 0x2768 }, - { 0x276A, 0x276B }, - { 0x276B, 0x276A }, - { 0x276C, 0x276D }, - { 0x276D, 0x276C }, - { 0x276E, 0x276F }, - { 0x276F, 0x276E }, - { 0x2770, 0x2771 }, - { 0x2771, 0x2770 }, - { 0x2772, 0x2773 }, - { 0x2773, 0x2772 }, - { 0x2774, 0x2775 }, - { 0x2775, 0x2774 }, - { 0x27C3, 0x27C4 }, - { 0x27C4, 0x27C3 }, - { 0x27C5, 0x27C6 }, - { 0x27C6, 0x27C5 }, - { 0x27C8, 0x27C9 }, - { 0x27C9, 0x27C8 }, - { 0x27D5, 0x27D6 }, - { 0x27D6, 0x27D5 }, - { 0x27DD, 0x27DE }, - { 0x27DE, 0x27DD }, - { 0x27E2, 0x27E3 }, - { 0x27E3, 0x27E2 }, - { 0x27E4, 0x27E5 }, - { 0x27E5, 0x27E4 }, - { 0x27E6, 0x27E7 }, - { 0x27E7, 0x27E6 }, - { 0x27E8, 0x27E9 }, - { 0x27E9, 0x27E8 }, - { 0x27EA, 0x27EB }, - { 0x27EB, 0x27EA }, - { 0x27EC, 0x27ED }, - { 0x27ED, 0x27EC }, - { 0x27EE, 0x27EF }, - { 0x27EF, 0x27EE }, - { 0x2983, 0x2984 }, - { 0x2984, 0x2983 }, - { 0x2985, 0x2986 }, - { 0x2986, 0x2985 }, - { 0x2987, 0x2988 }, - { 0x2988, 0x2987 }, - { 0x2989, 0x298A }, - { 0x298A, 0x2989 }, - { 0x298B, 0x298C }, - { 0x298C, 0x298B }, - { 0x298D, 0x2990 }, - { 0x298E, 0x298F }, - { 0x298F, 0x298E }, - { 0x2990, 0x298D }, - { 0x2991, 0x2992 }, - { 0x2992, 0x2991 }, - { 0x2993, 0x2994 }, - { 0x2994, 0x2993 }, - { 0x2995, 0x2996 }, - { 0x2996, 0x2995 }, - { 0x2997, 0x2998 }, - { 0x2998, 0x2997 }, - { 0x29B8, 0x2298 }, - { 0x29C0, 0x29C1 }, - { 0x29C1, 0x29C0 }, - { 0x29C4, 0x29C5 }, - { 0x29C5, 0x29C4 }, - { 0x29CF, 0x29D0 }, - { 0x29D0, 0x29CF }, - { 0x29D1, 0x29D2 }, - { 0x29D2, 0x29D1 }, - { 0x29D4, 0x29D5 }, - { 0x29D5, 0x29D4 }, - { 0x29D8, 0x29D9 }, - { 0x29D9, 0x29D8 }, - { 0x29DA, 0x29DB }, - { 0x29DB, 0x29DA }, - { 0x29F5, 0x2215 }, - { 0x29F8, 0x29F9 }, - { 0x29F9, 0x29F8 }, - { 0x29FC, 0x29FD }, - { 0x29FD, 0x29FC }, - { 0x2A2B, 0x2A2C }, - { 0x2A2C, 0x2A2B }, - { 0x2A2D, 0x2A2E }, - { 0x2A2E, 0x2A2D }, - { 0x2A34, 0x2A35 }, - { 0x2A35, 0x2A34 }, - { 0x2A3C, 0x2A3D }, - { 0x2A3D, 0x2A3C }, - { 0x2A64, 0x2A65 }, - { 0x2A65, 0x2A64 }, - { 0x2A79, 0x2A7A }, - { 0x2A7A, 0x2A79 }, - { 0x2A7D, 0x2A7E }, - { 0x2A7E, 0x2A7D }, - { 0x2A7F, 0x2A80 }, - { 0x2A80, 0x2A7F }, - { 0x2A81, 0x2A82 }, - { 0x2A82, 0x2A81 }, - { 0x2A83, 0x2A84 }, - { 0x2A84, 0x2A83 }, - { 0x2A8B, 0x2A8C }, - { 0x2A8C, 0x2A8B }, - { 0x2A91, 0x2A92 }, - { 0x2A92, 0x2A91 }, - { 0x2A93, 0x2A94 }, - { 0x2A94, 0x2A93 }, - { 0x2A95, 0x2A96 }, - { 0x2A96, 0x2A95 }, - { 0x2A97, 0x2A98 }, - { 0x2A98, 0x2A97 }, - { 0x2A99, 0x2A9A }, - { 0x2A9A, 0x2A99 }, - { 0x2A9B, 0x2A9C }, - { 0x2A9C, 0x2A9B }, - { 0x2AA1, 0x2AA2 }, - { 0x2AA2, 0x2AA1 }, - { 0x2AA6, 0x2AA7 }, - { 0x2AA7, 0x2AA6 }, - { 0x2AA8, 0x2AA9 }, - { 0x2AA9, 0x2AA8 }, - { 0x2AAA, 0x2AAB }, - { 0x2AAB, 0x2AAA }, - { 0x2AAC, 0x2AAD }, - { 0x2AAD, 0x2AAC }, - { 0x2AAF, 0x2AB0 }, - { 0x2AB0, 0x2AAF }, - { 0x2AB3, 0x2AB4 }, - { 0x2AB4, 0x2AB3 }, - { 0x2ABB, 0x2ABC }, - { 0x2ABC, 0x2ABB }, - { 0x2ABD, 0x2ABE }, - { 0x2ABE, 0x2ABD }, - { 0x2ABF, 0x2AC0 }, - { 0x2AC0, 0x2ABF }, - { 0x2AC1, 0x2AC2 }, - { 0x2AC2, 0x2AC1 }, - { 0x2AC3, 0x2AC4 }, - { 0x2AC4, 0x2AC3 }, - { 0x2AC5, 0x2AC6 }, - { 0x2AC6, 0x2AC5 }, - { 0x2ACD, 0x2ACE }, - { 0x2ACE, 0x2ACD }, - { 0x2ACF, 0x2AD0 }, - { 0x2AD0, 0x2ACF }, - { 0x2AD1, 0x2AD2 }, - { 0x2AD2, 0x2AD1 }, - { 0x2AD3, 0x2AD4 }, - { 0x2AD4, 0x2AD3 }, - { 0x2AD5, 0x2AD6 }, - { 0x2AD6, 0x2AD5 }, - { 0x2ADE, 0x22A6 }, - { 0x2AE3, 0x22A9 }, - { 0x2AE4, 0x22A8 }, - { 0x2AE5, 0x22AB }, - { 0x2AEC, 0x2AED }, - { 0x2AED, 0x2AEC }, - { 0x2AF7, 0x2AF8 }, - { 0x2AF8, 0x2AF7 }, - { 0x2AF9, 0x2AFA }, - { 0x2AFA, 0x2AF9 }, - { 0x2E02, 0x2E03 }, - { 0x2E03, 0x2E02 }, - { 0x2E04, 0x2E05 }, - { 0x2E05, 0x2E04 }, - { 0x2E09, 0x2E0A }, - { 0x2E0A, 0x2E09 }, - { 0x2E0C, 0x2E0D }, - { 0x2E0D, 0x2E0C }, - { 0x2E1C, 0x2E1D }, - { 0x2E1D, 0x2E1C }, - { 0x2E20, 0x2E21 }, - { 0x2E21, 0x2E20 }, - { 0x2E22, 0x2E23 }, - { 0x2E23, 0x2E22 }, - { 0x2E24, 0x2E25 }, - { 0x2E25, 0x2E24 }, - { 0x2E26, 0x2E27 }, - { 0x2E27, 0x2E26 }, - { 0x2E28, 0x2E29 }, - { 0x2E29, 0x2E28 }, - { 0x3008, 0x3009 }, - { 0x3009, 0x3008 }, - { 0x300A, 0x300B }, - { 0x300B, 0x300A }, - { 0x300C, 0x300D }, - { 0x300D, 0x300C }, - { 0x300E, 0x300F }, - { 0x300F, 0x300E }, - { 0x3010, 0x3011 }, - { 0x3011, 0x3010 }, - { 0x3014, 0x3015 }, - { 0x3015, 0x3014 }, - { 0x3016, 0x3017 }, - { 0x3017, 0x3016 }, - { 0x3018, 0x3019 }, - { 0x3019, 0x3018 }, - { 0x301A, 0x301B }, - { 0x301B, 0x301A }, - { 0xFE59, 0xFE5A }, - { 0xFE5A, 0xFE59 }, - { 0xFE5B, 0xFE5C }, - { 0xFE5C, 0xFE5B }, - { 0xFE5D, 0xFE5E }, - { 0xFE5E, 0xFE5D }, - { 0xFE64, 0xFE65 }, - { 0xFE65, 0xFE64 }, - { 0xFF08, 0xFF09 }, - { 0xFF09, 0xFF08 }, - { 0xFF1C, 0xFF1E }, - { 0xFF1E, 0xFF1C }, - { 0xFF3B, 0xFF3D }, - { 0xFF3D, 0xFF3B }, - { 0xFF5B, 0xFF5D }, - { 0xFF5D, 0xFF5B }, - { 0xFF5F, 0xFF60 }, - { 0xFF60, 0xFF5F }, - { 0xFF62, 0xFF63 }, - { 0xFF63, 0xFF62 } }; diff --git a/src/biditype.h b/src/biditype.h deleted file mode 100644 index 868aabd9ea6..00000000000 --- a/src/biditype.h +++ /dev/null @@ -1,447 +0,0 @@ - struct { - int from, to; - bidi_type_t type; - } bidi_type[] = { - { 0x0000, 0x0008, WEAK_BN }, - { 0x0009, 0x0009, NEUTRAL_S }, - { 0x000A, 0x000A, NEUTRAL_B }, - { 0x000B, 0x000B, NEUTRAL_S }, - { 0x000C, 0x000C, NEUTRAL_WS }, - { 0x000D, 0x000D, NEUTRAL_B }, - { 0x000E, 0x001B, WEAK_BN }, - { 0x001C, 0x001E, NEUTRAL_B }, - { 0x001F, 0x001F, NEUTRAL_S }, - { 0x0020, 0x0020, NEUTRAL_WS }, - { 0x0021, 0x0022, NEUTRAL_ON }, - { 0x0023, 0x0025, WEAK_ET }, - { 0x0026, 0x002A, NEUTRAL_ON }, - { 0x002B, 0x002B, WEAK_ES }, - { 0x002C, 0x002C, WEAK_CS }, - { 0x002D, 0x002D, WEAK_ES }, - { 0x002E, 0x002F, WEAK_CS }, - { 0x0030, 0x0039, WEAK_EN }, - { 0x003A, 0x003A, WEAK_CS }, - { 0x003B, 0x0040, NEUTRAL_ON }, - { 0x005B, 0x0060, NEUTRAL_ON }, - { 0x007B, 0x007E, NEUTRAL_ON }, - { 0x007F, 0x0084, WEAK_BN }, - { 0x0085, 0x0085, NEUTRAL_B }, - { 0x0086, 0x009F, WEAK_BN }, - { 0x00A0, 0x00A0, WEAK_CS }, - { 0x00A1, 0x00A1, NEUTRAL_ON }, - { 0x00A2, 0x00A5, WEAK_ET }, - { 0x00A6, 0x00A9, NEUTRAL_ON }, - { 0x00AB, 0x00AC, NEUTRAL_ON }, - { 0x00AD, 0x00AD, WEAK_BN }, - { 0x00AE, 0x00AF, NEUTRAL_ON }, - { 0x00B0, 0x00B1, WEAK_ET }, - { 0x00B2, 0x00B3, WEAK_EN }, - { 0x00B4, 0x00B4, NEUTRAL_ON }, - { 0x00B6, 0x00B8, NEUTRAL_ON }, - { 0x00B9, 0x00B9, WEAK_EN }, - { 0x00BB, 0x00BF, NEUTRAL_ON }, - { 0x00D7, 0x00D7, NEUTRAL_ON }, - { 0x00F7, 0x00F7, NEUTRAL_ON }, - { 0x02B9, 0x02BA, NEUTRAL_ON }, - { 0x02C2, 0x02CF, NEUTRAL_ON }, - { 0x02D2, 0x02DF, NEUTRAL_ON }, - { 0x02E5, 0x02ED, NEUTRAL_ON }, - { 0x02EF, 0x02FF, NEUTRAL_ON }, - { 0x0300, 0x036F, WEAK_NSM }, - { 0x0374, 0x0375, NEUTRAL_ON }, - { 0x037E, 0x0385, NEUTRAL_ON }, - { 0x0387, 0x0387, NEUTRAL_ON }, - { 0x03F6, 0x03F6, NEUTRAL_ON }, - { 0x0483, 0x0489, WEAK_NSM }, - { 0x058A, 0x058A, NEUTRAL_ON }, - { 0x0591, 0x05BD, WEAK_NSM }, - { 0x05BE, 0x05BE, STRONG_R }, - { 0x05BF, 0x05BF, WEAK_NSM }, - { 0x05C0, 0x05C0, STRONG_R }, - { 0x05C1, 0x05C2, WEAK_NSM }, - { 0x05C3, 0x05C3, STRONG_R }, - { 0x05C4, 0x05C5, WEAK_NSM }, - { 0x05C6, 0x05C6, STRONG_R }, - { 0x05C7, 0x05C7, WEAK_NSM }, - { 0x05D0, 0x05F4, STRONG_R }, - { 0x0600, 0x0603, WEAK_AN }, - { 0x0606, 0x0607, NEUTRAL_ON }, - { 0x0608, 0x0608, STRONG_AL }, - { 0x0609, 0x060A, WEAK_ET }, - { 0x060B, 0x060B, STRONG_AL }, - { 0x060C, 0x060C, WEAK_CS }, - { 0x060D, 0x060D, STRONG_AL }, - { 0x060E, 0x060F, NEUTRAL_ON }, - { 0x0610, 0x061A, WEAK_NSM }, - { 0x061B, 0x064A, STRONG_AL }, - { 0x064B, 0x065F, WEAK_NSM }, - { 0x0660, 0x0669, WEAK_AN }, - { 0x066A, 0x066A, WEAK_ET }, - { 0x066B, 0x066C, WEAK_AN }, - { 0x066D, 0x066F, STRONG_AL }, - { 0x0670, 0x0670, WEAK_NSM }, - { 0x0671, 0x06D5, STRONG_AL }, - { 0x06D6, 0x06DC, WEAK_NSM }, - { 0x06DD, 0x06DD, WEAK_AN }, - { 0x06DE, 0x06DE, NEUTRAL_ON }, - { 0x06DF, 0x06E4, WEAK_NSM }, - { 0x06E5, 0x06E6, STRONG_AL }, - { 0x06E7, 0x06E8, WEAK_NSM }, - { 0x06E9, 0x06E9, NEUTRAL_ON }, - { 0x06EA, 0x06ED, WEAK_NSM }, - { 0x06EE, 0x06EF, STRONG_AL }, - { 0x06F0, 0x06F9, WEAK_EN }, - { 0x06FA, 0x070D, STRONG_AL }, - { 0x070F, 0x070F, WEAK_AN }, - { 0x0710, 0x0710, STRONG_AL }, - { 0x0711, 0x0711, WEAK_NSM }, - { 0x0712, 0x072F, STRONG_AL }, - { 0x0730, 0x074A, WEAK_NSM }, - { 0x074D, 0x07A5, STRONG_AL }, - { 0x07A6, 0x07B0, WEAK_NSM }, - { 0x07B1, 0x07B1, STRONG_AL }, - { 0x07C0, 0x07EA, STRONG_R }, - { 0x07EB, 0x07F3, WEAK_NSM }, - { 0x07F4, 0x07F5, STRONG_R }, - { 0x07F6, 0x07F9, NEUTRAL_ON }, - { 0x07FA, 0x0815, STRONG_R }, - { 0x0816, 0x0819, WEAK_NSM }, - { 0x081A, 0x081A, STRONG_R }, - { 0x081B, 0x0823, WEAK_NSM }, - { 0x0824, 0x0824, STRONG_R }, - { 0x0825, 0x0827, WEAK_NSM }, - { 0x0828, 0x0828, STRONG_R }, - { 0x0829, 0x082D, WEAK_NSM }, - { 0x0830, 0x0858, STRONG_R }, - { 0x0859, 0x085B, WEAK_NSM }, - { 0x085E, 0x085E, STRONG_R }, - { 0x0900, 0x0902, WEAK_NSM }, - { 0x093A, 0x093A, WEAK_NSM }, - { 0x093C, 0x093C, WEAK_NSM }, - { 0x0941, 0x0948, WEAK_NSM }, - { 0x094D, 0x094D, WEAK_NSM }, - { 0x0951, 0x0957, WEAK_NSM }, - { 0x0962, 0x0963, WEAK_NSM }, - { 0x0981, 0x0981, WEAK_NSM }, - { 0x09BC, 0x09BC, WEAK_NSM }, - { 0x09C1, 0x09C4, WEAK_NSM }, - { 0x09CD, 0x09CD, WEAK_NSM }, - { 0x09E2, 0x09E3, WEAK_NSM }, - { 0x09F2, 0x09F3, WEAK_ET }, - { 0x09FB, 0x09FB, WEAK_ET }, - { 0x0A01, 0x0A02, WEAK_NSM }, - { 0x0A3C, 0x0A3C, WEAK_NSM }, - { 0x0A41, 0x0A51, WEAK_NSM }, - { 0x0A70, 0x0A71, WEAK_NSM }, - { 0x0A75, 0x0A82, WEAK_NSM }, - { 0x0ABC, 0x0ABC, WEAK_NSM }, - { 0x0AC1, 0x0AC8, WEAK_NSM }, - { 0x0ACD, 0x0ACD, WEAK_NSM }, - { 0x0AE2, 0x0AE3, WEAK_NSM }, - { 0x0AF1, 0x0AF1, WEAK_ET }, - { 0x0B01, 0x0B01, WEAK_NSM }, - { 0x0B3C, 0x0B3C, WEAK_NSM }, - { 0x0B3F, 0x0B3F, WEAK_NSM }, - { 0x0B41, 0x0B44, WEAK_NSM }, - { 0x0B4D, 0x0B56, WEAK_NSM }, - { 0x0B62, 0x0B63, WEAK_NSM }, - { 0x0B82, 0x0B82, WEAK_NSM }, - { 0x0BC0, 0x0BC0, WEAK_NSM }, - { 0x0BCD, 0x0BCD, WEAK_NSM }, - { 0x0BF3, 0x0BF8, NEUTRAL_ON }, - { 0x0BF9, 0x0BF9, WEAK_ET }, - { 0x0BFA, 0x0BFA, NEUTRAL_ON }, - { 0x0C3E, 0x0C40, WEAK_NSM }, - { 0x0C46, 0x0C56, WEAK_NSM }, - { 0x0C62, 0x0C63, WEAK_NSM }, - { 0x0C78, 0x0C7E, NEUTRAL_ON }, - { 0x0CBC, 0x0CBC, WEAK_NSM }, - { 0x0CCC, 0x0CCD, WEAK_NSM }, - { 0x0CE2, 0x0CE3, WEAK_NSM }, - { 0x0D41, 0x0D44, WEAK_NSM }, - { 0x0D4D, 0x0D4D, WEAK_NSM }, - { 0x0D62, 0x0D63, WEAK_NSM }, - { 0x0DCA, 0x0DCA, WEAK_NSM }, - { 0x0DD2, 0x0DD6, WEAK_NSM }, - { 0x0E31, 0x0E31, WEAK_NSM }, - { 0x0E34, 0x0E3A, WEAK_NSM }, - { 0x0E3F, 0x0E3F, WEAK_ET }, - { 0x0E47, 0x0E4E, WEAK_NSM }, - { 0x0EB1, 0x0EB1, WEAK_NSM }, - { 0x0EB4, 0x0EBC, WEAK_NSM }, - { 0x0EC8, 0x0ECD, WEAK_NSM }, - { 0x0F18, 0x0F19, WEAK_NSM }, - { 0x0F35, 0x0F35, WEAK_NSM }, - { 0x0F37, 0x0F37, WEAK_NSM }, - { 0x0F39, 0x0F39, WEAK_NSM }, - { 0x0F3A, 0x0F3D, NEUTRAL_ON }, - { 0x0F71, 0x0F7E, WEAK_NSM }, - { 0x0F80, 0x0F84, WEAK_NSM }, - { 0x0F86, 0x0F87, WEAK_NSM }, - { 0x0F8D, 0x0FBC, WEAK_NSM }, - { 0x0FC6, 0x0FC6, WEAK_NSM }, - { 0x102D, 0x1030, WEAK_NSM }, - { 0x1032, 0x1037, WEAK_NSM }, - { 0x1039, 0x103A, WEAK_NSM }, - { 0x103D, 0x103E, WEAK_NSM }, - { 0x1058, 0x1059, WEAK_NSM }, - { 0x105E, 0x1060, WEAK_NSM }, - { 0x1071, 0x1074, WEAK_NSM }, - { 0x1082, 0x1082, WEAK_NSM }, - { 0x1085, 0x1086, WEAK_NSM }, - { 0x108D, 0x108D, WEAK_NSM }, - { 0x109D, 0x109D, WEAK_NSM }, - { 0x135D, 0x135F, WEAK_NSM }, - { 0x1390, 0x1399, NEUTRAL_ON }, - { 0x1400, 0x1400, NEUTRAL_ON }, - { 0x1680, 0x1680, NEUTRAL_WS }, - { 0x169B, 0x169C, NEUTRAL_ON }, - { 0x1712, 0x1714, WEAK_NSM }, - { 0x1732, 0x1734, WEAK_NSM }, - { 0x1752, 0x1753, WEAK_NSM }, - { 0x1772, 0x1773, WEAK_NSM }, - { 0x17B7, 0x17BD, WEAK_NSM }, - { 0x17C6, 0x17C6, WEAK_NSM }, - { 0x17C9, 0x17D3, WEAK_NSM }, - { 0x17DB, 0x17DB, WEAK_ET }, - { 0x17DD, 0x17DD, WEAK_NSM }, - { 0x17F0, 0x180A, NEUTRAL_ON }, - { 0x180B, 0x180D, WEAK_NSM }, - { 0x180E, 0x180E, NEUTRAL_WS }, - { 0x18A9, 0x18A9, WEAK_NSM }, - { 0x1920, 0x1922, WEAK_NSM }, - { 0x1927, 0x1928, WEAK_NSM }, - { 0x1932, 0x1932, WEAK_NSM }, - { 0x1939, 0x193B, WEAK_NSM }, - { 0x1940, 0x1945, NEUTRAL_ON }, - { 0x19DE, 0x19FF, NEUTRAL_ON }, - { 0x1A17, 0x1A18, WEAK_NSM }, - { 0x1A56, 0x1A56, WEAK_NSM }, - { 0x1A58, 0x1A60, WEAK_NSM }, - { 0x1A62, 0x1A62, WEAK_NSM }, - { 0x1A65, 0x1A6C, WEAK_NSM }, - { 0x1A73, 0x1A7F, WEAK_NSM }, - { 0x1B00, 0x1B03, WEAK_NSM }, - { 0x1B34, 0x1B34, WEAK_NSM }, - { 0x1B36, 0x1B3A, WEAK_NSM }, - { 0x1B3C, 0x1B3C, WEAK_NSM }, - { 0x1B42, 0x1B42, WEAK_NSM }, - { 0x1B6B, 0x1B73, WEAK_NSM }, - { 0x1B80, 0x1B81, WEAK_NSM }, - { 0x1BA2, 0x1BA5, WEAK_NSM }, - { 0x1BA8, 0x1BA9, WEAK_NSM }, - { 0x1BE6, 0x1BE6, WEAK_NSM }, - { 0x1BE8, 0x1BE9, WEAK_NSM }, - { 0x1BED, 0x1BED, WEAK_NSM }, - { 0x1BEF, 0x1BF1, WEAK_NSM }, - { 0x1C2C, 0x1C33, WEAK_NSM }, - { 0x1C36, 0x1C37, WEAK_NSM }, - { 0x1CD0, 0x1CD2, WEAK_NSM }, - { 0x1CD4, 0x1CE0, WEAK_NSM }, - { 0x1CE2, 0x1CE8, WEAK_NSM }, - { 0x1CED, 0x1CED, WEAK_NSM }, - { 0x1DC0, 0x1DFF, WEAK_NSM }, - { 0x1FBD, 0x1FBD, NEUTRAL_ON }, - { 0x1FBF, 0x1FC1, NEUTRAL_ON }, - { 0x1FCD, 0x1FCF, NEUTRAL_ON }, - { 0x1FDD, 0x1FDF, NEUTRAL_ON }, - { 0x1FED, 0x1FEF, NEUTRAL_ON }, - { 0x1FFD, 0x1FFE, NEUTRAL_ON }, - { 0x2000, 0x200A, NEUTRAL_WS }, - { 0x200B, 0x200D, WEAK_BN }, - { 0x200F, 0x200F, STRONG_R }, - { 0x2010, 0x2027, NEUTRAL_ON }, - { 0x2028, 0x2028, NEUTRAL_WS }, - { 0x2029, 0x2029, NEUTRAL_B }, - { 0x202A, 0x202A, LRE }, - { 0x202B, 0x202B, RLE }, - { 0x202C, 0x202C, PDF }, - { 0x202D, 0x202D, LRO }, - { 0x202E, 0x202E, RLO }, - { 0x202F, 0x202F, WEAK_CS }, - { 0x2030, 0x2034, WEAK_ET }, - { 0x2035, 0x2043, NEUTRAL_ON }, - { 0x2044, 0x2044, WEAK_CS }, - { 0x2045, 0x205E, NEUTRAL_ON }, - { 0x205F, 0x205F, NEUTRAL_WS }, - { 0x2060, 0x206F, WEAK_BN }, - { 0x2070, 0x2070, WEAK_EN }, - { 0x2074, 0x2079, WEAK_EN }, - { 0x207A, 0x207B, WEAK_ES }, - { 0x207C, 0x207E, NEUTRAL_ON }, - { 0x2080, 0x2089, WEAK_EN }, - { 0x208A, 0x208B, WEAK_ES }, - { 0x208C, 0x208E, NEUTRAL_ON }, - { 0x20A0, 0x20B9, WEAK_ET }, - { 0x20D0, 0x20F0, WEAK_NSM }, - { 0x2100, 0x2101, NEUTRAL_ON }, - { 0x2103, 0x2106, NEUTRAL_ON }, - { 0x2108, 0x2109, NEUTRAL_ON }, - { 0x2114, 0x2114, NEUTRAL_ON }, - { 0x2116, 0x2118, NEUTRAL_ON }, - { 0x211E, 0x2123, NEUTRAL_ON }, - { 0x2125, 0x2125, NEUTRAL_ON }, - { 0x2127, 0x2127, NEUTRAL_ON }, - { 0x2129, 0x2129, NEUTRAL_ON }, - { 0x212E, 0x212E, WEAK_ET }, - { 0x213A, 0x213B, NEUTRAL_ON }, - { 0x2140, 0x2144, NEUTRAL_ON }, - { 0x214A, 0x214D, NEUTRAL_ON }, - { 0x2150, 0x215F, NEUTRAL_ON }, - { 0x2189, 0x2211, NEUTRAL_ON }, - { 0x2212, 0x2212, WEAK_ES }, - { 0x2213, 0x2213, WEAK_ET }, - { 0x2214, 0x2335, NEUTRAL_ON }, - { 0x237B, 0x2394, NEUTRAL_ON }, - { 0x2396, 0x2487, NEUTRAL_ON }, - { 0x2488, 0x249B, WEAK_EN }, - { 0x24EA, 0x26AB, NEUTRAL_ON }, - { 0x26AD, 0x27FF, NEUTRAL_ON }, - { 0x2900, 0x2B59, NEUTRAL_ON }, - { 0x2CE5, 0x2CEA, NEUTRAL_ON }, - { 0x2CEF, 0x2CF1, WEAK_NSM }, - { 0x2CF9, 0x2CFF, NEUTRAL_ON }, - { 0x2D7F, 0x2D7F, WEAK_NSM }, - { 0x2DE0, 0x2DFF, WEAK_NSM }, - { 0x2E00, 0x2FFB, NEUTRAL_ON }, - { 0x3000, 0x3000, NEUTRAL_WS }, - { 0x3001, 0x3004, NEUTRAL_ON }, - { 0x3008, 0x3020, NEUTRAL_ON }, - { 0x302A, 0x302F, WEAK_NSM }, - { 0x3030, 0x3030, NEUTRAL_ON }, - { 0x3036, 0x3037, NEUTRAL_ON }, - { 0x303D, 0x303F, NEUTRAL_ON }, - { 0x3099, 0x309A, WEAK_NSM }, - { 0x309B, 0x309C, NEUTRAL_ON }, - { 0x30A0, 0x30A0, NEUTRAL_ON }, - { 0x30FB, 0x30FB, NEUTRAL_ON }, - { 0x31C0, 0x31E3, NEUTRAL_ON }, - { 0x321D, 0x321E, NEUTRAL_ON }, - { 0x3250, 0x325F, NEUTRAL_ON }, - { 0x327C, 0x327E, NEUTRAL_ON }, - { 0x32B1, 0x32BF, NEUTRAL_ON }, - { 0x32CC, 0x32CF, NEUTRAL_ON }, - { 0x3377, 0x337A, NEUTRAL_ON }, - { 0x33DE, 0x33DF, NEUTRAL_ON }, - { 0x33FF, 0x33FF, NEUTRAL_ON }, - { 0x4DC0, 0x4DFF, NEUTRAL_ON }, - { 0xA490, 0xA4C6, NEUTRAL_ON }, - { 0xA60D, 0xA60F, NEUTRAL_ON }, - { 0xA66F, 0xA672, WEAK_NSM }, - { 0xA673, 0xA673, NEUTRAL_ON }, - { 0xA67C, 0xA67D, WEAK_NSM }, - { 0xA67E, 0xA67F, NEUTRAL_ON }, - { 0xA6F0, 0xA6F1, WEAK_NSM }, - { 0xA700, 0xA721, NEUTRAL_ON }, - { 0xA788, 0xA788, NEUTRAL_ON }, - { 0xA802, 0xA802, WEAK_NSM }, - { 0xA806, 0xA806, WEAK_NSM }, - { 0xA80B, 0xA80B, WEAK_NSM }, - { 0xA825, 0xA826, WEAK_NSM }, - { 0xA828, 0xA82B, NEUTRAL_ON }, - { 0xA838, 0xA839, WEAK_ET }, - { 0xA874, 0xA877, NEUTRAL_ON }, - { 0xA8C4, 0xA8C4, WEAK_NSM }, - { 0xA8E0, 0xA8F1, WEAK_NSM }, - { 0xA926, 0xA92D, WEAK_NSM }, - { 0xA947, 0xA951, WEAK_NSM }, - { 0xA980, 0xA982, WEAK_NSM }, - { 0xA9B3, 0xA9B3, WEAK_NSM }, - { 0xA9B6, 0xA9B9, WEAK_NSM }, - { 0xA9BC, 0xA9BC, WEAK_NSM }, - { 0xAA29, 0xAA2E, WEAK_NSM }, - { 0xAA31, 0xAA32, WEAK_NSM }, - { 0xAA35, 0xAA36, WEAK_NSM }, - { 0xAA43, 0xAA43, WEAK_NSM }, - { 0xAA4C, 0xAA4C, WEAK_NSM }, - { 0xAAB0, 0xAAB0, WEAK_NSM }, - { 0xAAB2, 0xAAB4, WEAK_NSM }, - { 0xAAB7, 0xAAB8, WEAK_NSM }, - { 0xAABE, 0xAABF, WEAK_NSM }, - { 0xAAC1, 0xAAC1, WEAK_NSM }, - { 0xABE5, 0xABE5, WEAK_NSM }, - { 0xABE8, 0xABE8, WEAK_NSM }, - { 0xABED, 0xABED, WEAK_NSM }, - { 0xFB1D, 0xFB1D, STRONG_R }, - { 0xFB1E, 0xFB1E, WEAK_NSM }, - { 0xFB1F, 0xFB28, STRONG_R }, - { 0xFB29, 0xFB29, WEAK_ES }, - { 0xFB2A, 0xFB4F, STRONG_R }, - { 0xFB50, 0xFD3D, STRONG_AL }, - { 0xFD3E, 0xFD3F, NEUTRAL_ON }, - { 0xFD50, 0xFDFC, STRONG_AL }, - { 0xFDFD, 0xFDFD, NEUTRAL_ON }, - { 0xFE00, 0xFE0F, WEAK_NSM }, - { 0xFE10, 0xFE19, NEUTRAL_ON }, - { 0xFE20, 0xFE26, WEAK_NSM }, - { 0xFE30, 0xFE4F, NEUTRAL_ON }, - { 0xFE50, 0xFE50, WEAK_CS }, - { 0xFE51, 0xFE51, NEUTRAL_ON }, - { 0xFE52, 0xFE52, WEAK_CS }, - { 0xFE54, 0xFE54, NEUTRAL_ON }, - { 0xFE55, 0xFE55, WEAK_CS }, - { 0xFE56, 0xFE5E, NEUTRAL_ON }, - { 0xFE5F, 0xFE5F, WEAK_ET }, - { 0xFE60, 0xFE61, NEUTRAL_ON }, - { 0xFE62, 0xFE63, WEAK_ES }, - { 0xFE64, 0xFE68, NEUTRAL_ON }, - { 0xFE69, 0xFE6A, WEAK_ET }, - { 0xFE6B, 0xFE6B, NEUTRAL_ON }, - { 0xFE70, 0xFEFC, STRONG_AL }, - { 0xFEFF, 0xFEFF, WEAK_BN }, - { 0xFF01, 0xFF02, NEUTRAL_ON }, - { 0xFF03, 0xFF05, WEAK_ET }, - { 0xFF06, 0xFF0A, NEUTRAL_ON }, - { 0xFF0B, 0xFF0B, WEAK_ES }, - { 0xFF0C, 0xFF0C, WEAK_CS }, - { 0xFF0D, 0xFF0D, WEAK_ES }, - { 0xFF0E, 0xFF0F, WEAK_CS }, - { 0xFF10, 0xFF19, WEAK_EN }, - { 0xFF1A, 0xFF1A, WEAK_CS }, - { 0xFF1B, 0xFF20, NEUTRAL_ON }, - { 0xFF3B, 0xFF40, NEUTRAL_ON }, - { 0xFF5B, 0xFF65, NEUTRAL_ON }, - { 0xFFE0, 0xFFE1, WEAK_ET }, - { 0xFFE2, 0xFFE4, NEUTRAL_ON }, - { 0xFFE5, 0xFFE6, WEAK_ET }, - { 0xFFE8, 0xFFFD, NEUTRAL_ON }, - { 0x10101, 0x10101, NEUTRAL_ON }, - { 0x10140, 0x1019B, NEUTRAL_ON }, - { 0x101FD, 0x101FD, WEAK_NSM }, - { 0x10800, 0x1091B, STRONG_R }, - { 0x1091F, 0x1091F, NEUTRAL_ON }, - { 0x10920, 0x10A00, STRONG_R }, - { 0x10A01, 0x10A0F, WEAK_NSM }, - { 0x10A10, 0x10A33, STRONG_R }, - { 0x10A38, 0x10A3F, WEAK_NSM }, - { 0x10A40, 0x10B35, STRONG_R }, - { 0x10B39, 0x10B3F, NEUTRAL_ON }, - { 0x10B40, 0x10C48, STRONG_R }, - { 0x10E60, 0x10E7E, WEAK_AN }, - { 0x11001, 0x11001, WEAK_NSM }, - { 0x11038, 0x11046, WEAK_NSM }, - { 0x11052, 0x11065, NEUTRAL_ON }, - { 0x11080, 0x11081, WEAK_NSM }, - { 0x110B3, 0x110B6, WEAK_NSM }, - { 0x110B9, 0x110BA, WEAK_NSM }, - { 0x1D167, 0x1D169, WEAK_NSM }, - { 0x1D173, 0x1D17A, WEAK_BN }, - { 0x1D17B, 0x1D182, WEAK_NSM }, - { 0x1D185, 0x1D18B, WEAK_NSM }, - { 0x1D1AA, 0x1D1AD, WEAK_NSM }, - { 0x1D200, 0x1D241, NEUTRAL_ON }, - { 0x1D242, 0x1D244, WEAK_NSM }, - { 0x1D245, 0x1D356, NEUTRAL_ON }, - { 0x1D6DB, 0x1D6DB, NEUTRAL_ON }, - { 0x1D715, 0x1D715, NEUTRAL_ON }, - { 0x1D74F, 0x1D74F, NEUTRAL_ON }, - { 0x1D789, 0x1D789, NEUTRAL_ON }, - { 0x1D7C3, 0x1D7C3, NEUTRAL_ON }, - { 0x1D7CE, 0x1D7FF, WEAK_EN }, - { 0x1F000, 0x1F0DF, NEUTRAL_ON }, - { 0x1F100, 0x1F10A, WEAK_EN }, - { 0x1F300, 0x1F48B, NEUTRAL_ON }, - { 0x1F48D, 0x1F523, NEUTRAL_ON }, - { 0x1F525, 0x1F773, NEUTRAL_ON }, - { 0xE0001, 0xE007F, WEAK_BN }, - { 0xE0100, 0xE01EF, WEAK_NSM } }; diff --git a/src/chartab.c b/src/chartab.c index fb72004356e..0cabaac4cf5 100644 --- a/src/chartab.c +++ b/src/chartab.c @@ -1095,22 +1095,31 @@ map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object), /* Unicode character property tables. - This section provides a convenient and efficient way to get a - Unicode character property from C code (from Lisp, you must use - get-char-code-property). + This section provides a convenient and efficient way to get Unicode + character properties of characters from C code (from Lisp, you must + use get-char-code-property). - The typical usage is to get a char-table for a specific property at - a proper initialization time as this: + The typical usage is to get a char-table object for a specific + property like this (use of the "bidi-class" property below is just + an example): Lisp_Object bidi_class_table = uniprop_table (intern ("bidi-class")); - and get a property value for character CH as this: + (uniprop_table can return nil if it fails to find data for the + named property, or if it fails to load the appropriate Lisp support + file, so the return value should be tested to be non-nil, before it + is used.) - Lisp_Object bidi_class = CHAR_TABLE_REF (CH, bidi_class_table); + To get a property value for character CH use CHAR_TABLE_REF: + + Lisp_Object bidi_class = CHAR_TABLE_REF (bidi_class_table, CH); In this case, what you actually get is an index number to the vector of property values (symbols nil, L, R, etc). + The full list of Unicode character properties supported by Emacs is + documented in the ELisp manual, in the node "Character Properties". + A table for Unicode character property has these characteristics: o The purpose is `char-code-property-table', which implies that the @@ -1122,7 +1131,7 @@ map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object), means that we don't have to decode values. o The third extra slot is a Lisp function, an index (integer) to - the array uniprop_enncoder[], or nil. If it is a Lisp function, we + the array uniprop_encoder[], or nil. If it is a Lisp function, we can't use such a table from C (at the moment). If it is nil, it means that we don't have to encode values. */ diff --git a/src/deps.mk b/src/deps.mk index 080144ae1e5..c61b01a95c4 100644 --- a/src/deps.mk +++ b/src/deps.mk @@ -39,7 +39,7 @@ atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ globals.h ../lib/unistd.h $(config_h) bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \ - biditype.h bidimirror.h globals.h $(config_h) + globals.h $(config_h) buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \ $(INTERVALS_H) blockinput.h atimer.h systime.h character.h ../lib/unistd.h \ indent.h keyboard.h coding.h keymap.h frame.h lisp.h globals.h $(config_h) diff --git a/src/dispextern.h b/src/dispextern.h index 9bd43c5255b..fd408c713c6 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1776,7 +1776,7 @@ extern int face_change_count; 3 bits for it, so we cannot use there values larger than 7. The order of members must be in sync with the 8th element of the - member of unidata-prop-alist (in admin/unidata/unidata-getn.el) for + member of unidata-prop-alist (in admin/unidata/unidata-gen.el) for Unicode character property `bidi-class'. */ typedef enum { UNKNOWN_BT = 0, diff --git a/src/makefile.w32-in b/src/makefile.w32-in index fd29dec9096..792b66b0e4f 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -493,8 +493,6 @@ $(BLD)/atimer.$(O) : \ $(BLD)/bidi.$(O) : \ $(SRC)/bidi.c \ - $(SRC)/bidimirror.h \ - $(SRC)/biditype.h \ $(SRC)/buffer.h \ $(CHARACTER_H) \ $(CONFIG_H) \ -- 2.39.2