diff options
author | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2022-09-04 13:05:28 +0000 |
---|---|---|
committer | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2022-09-04 13:05:28 +0000 |
commit | 0fb8fb4b2b8686d65a7bc81da39de2a2bb511953 (patch) | |
tree | b82ce80f20e44d58bb3bbf47da856f8776e79501 /Build/source | |
parent | ff484d0a56385299a2d73fe55d6ef3a1870feb3b (diff) |
upmendex: version 1.02, update for Unicode 15.0
git-svn-id: svn://tug.org/texlive/trunk@64285 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/texk/upmendex/ChangeLog | 14 | ||||
-rwxr-xr-x | Build/source/texk/upmendex/configure | 22 | ||||
-rw-r--r-- | Build/source/texk/upmendex/configure.ac | 2 | ||||
-rw-r--r-- | Build/source/texk/upmendex/fwrite.c | 32 | ||||
-rw-r--r-- | Build/source/texk/upmendex/sort.c | 35 |
5 files changed, 80 insertions, 25 deletions
diff --git a/Build/source/texk/upmendex/ChangeLog b/Build/source/texk/upmendex/ChangeLog index c701226b534..992f47194d6 100644 --- a/Build/source/texk/upmendex/ChangeLog +++ b/Build/source/texk/upmendex/ChangeLog @@ -1,3 +1,17 @@ +2022-09-04 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * version 1.02 Stable version. + * configure.ac: Bump version. + * fwrite.c: + Support U+1B132, U+1B155 Hiragana/Katakana Letter Small Ko. + They have not been supported yet but will be supported in ICU collator. + Support U+0626 Arabic Letter Yeh with Hamza Above for Uyghur. + Support U+0149 Latin Small Letter N Preceded By Apostrophe for Afrikaans. + Support digraphs dd, ff, ng, ph, rh for Welsh. + * sort.c: Add Latin Extended-F and -G. + Add CJK Unified Ideograph Extension H, Cyrillic Extended-D, + Devanagari Extended-A and Arabic Extended-C in Unicode 15.0. + 2022-09-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * main.c: diff --git a/Build/source/texk/upmendex/configure b/Build/source/texk/upmendex/configure index 66ca5cbaec5..c7e2bba9173 100755 --- a/Build/source/texk/upmendex/configure +++ b/Build/source/texk/upmendex/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for upmendex (TeX Live) 1.01. +# Generated by GNU Autoconf 2.71 for upmendex (TeX Live) 1.02. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -626,8 +626,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='upmendex (TeX Live)' PACKAGE_TARNAME='upmendex--tex-live-' -PACKAGE_VERSION='1.01' -PACKAGE_STRING='upmendex (TeX Live) 1.01' +PACKAGE_VERSION='1.02' +PACKAGE_STRING='upmendex (TeX Live) 1.02' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1390,7 +1390,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures upmendex (TeX Live) 1.01 to adapt to many kinds of systems. +\`configure' configures upmendex (TeX Live) 1.02 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1462,7 +1462,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of upmendex (TeX Live) 1.01:";; + short | recursive ) echo "Configuration of upmendex (TeX Live) 1.02:";; esac cat <<\_ACEOF @@ -1587,7 +1587,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -upmendex (TeX Live) configure 1.01 +upmendex (TeX Live) configure 1.02 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2268,7 +2268,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by upmendex (TeX Live) $as_me 1.01, which was +It was created by upmendex (TeX Live) $as_me 1.02, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -8806,7 +8806,7 @@ fi # Define the identity of the package. PACKAGE='upmendex--tex-live-' - VERSION='1.01' + VERSION='1.02' # Some tools Automake needs. @@ -18942,7 +18942,7 @@ Usage: $0 [OPTIONS] Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ -upmendex (TeX Live) config.lt 1.01 +upmendex (TeX Live) config.lt 1.02 configured by $0, generated by GNU Autoconf 2.71. Copyright (C) 2011 Free Software Foundation, Inc. @@ -21114,7 +21114,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by upmendex (TeX Live) $as_me 1.01, which was +This file was extended by upmendex (TeX Live) $as_me 1.02, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21182,7 +21182,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -upmendex (TeX Live) config.status 1.01 +upmendex (TeX Live) config.status 1.02 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/Build/source/texk/upmendex/configure.ac b/Build/source/texk/upmendex/configure.ac index bbf8fd9157d..0455b889478 100644 --- a/Build/source/texk/upmendex/configure.ac +++ b/Build/source/texk/upmendex/configure.ac @@ -8,7 +8,7 @@ dnl This file is free software; the copyright holder dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl -AC_INIT([upmendex (TeX Live)],[1.01]) +AC_INIT([upmendex (TeX Live)],[1.02]) AC_PREREQ([2.71]) AC_CONFIG_SRCDIR([main.c]) AC_CONFIG_AUX_DIR([../../build-aux]) diff --git a/Build/source/texk/upmendex/fwrite.c b/Build/source/texk/upmendex/fwrite.c index bfbc14dbb9d..79d2be49a1a 100644 --- a/Build/source/texk/upmendex/fwrite.c +++ b/Build/source/texk/upmendex/fwrite.c @@ -812,6 +812,8 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset) ini[0]=0x307B; break; /* ほ */ case 0x1B000: /* 𛀀 */ ini[0]=0x3048; break; /* え */ + case 0x1B132: case 0x1B155: + ini[0]=0x3053; break; /* こ */ case 0x1B150: case 0x1B164: ini[0]=0x3090; break; /* ゐ */ case 0x1B151: case 0x1B165: @@ -908,6 +910,15 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset) return; } else if (is_devanagari(&ch)||is_thai(&ch)||is_arabic(&ch)||is_hebrew(&ch)) { + if (ch==0x626) { /* Arabic Letter Yeh with Hamza Above for Uyghur */ + strY[0]=0x626; strY[1]=L'\0'; /* Yeh with Hamza Above */ + strZ[0]=0x628; strZ[1]=L'\0'; /* Beh */ + order = ucol_strcoll(icu_collator, strZ, -1, strY, -1); + if (order==UCOL_LESS) { + ini[0]=strY[0]; ini[1]=strY[1]; + return; + } + } if (ch==0x929||ch==0x931||ch==0x934||(0x958<=ch&&ch<=0x95F) /* Devanagary */ ||(0x622<=ch&&ch<=0x626)||ch==0x6C0||ch==0x6C2||ch==0x6D3 /* Arabic */ ||(0xFB50<=ch&&ch<=0xFDFF) /* Arabic Presentation Forms-A */ @@ -958,7 +969,7 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset) } } if (ch==0x0C6||ch==0x0E6||ch==0x152||ch==0x153||ch==0x132||ch==0x133 - ||ch==0x0DF||ch==0x1E9E||ch==0x13F||ch==0x140||ch==0x490||ch==0x491) { + ||ch==0x0DF||ch==0x1E9E||ch==0x13F||ch==0x140||ch==0x149||ch==0x490||ch==0x491) { strX[0] = u_toupper(ch); strX[1] = 0x00; /* ex. "Æ" "Œ" */ switch (ch) { case 0x0C6: case 0x0E6: /* Æ æ */ @@ -974,6 +985,8 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset) strZ[0] = 0x49; break; /* I */ case 0x13F: case 0x140: /* Ŀ ŀ */ strZ[0] = 0x4C; break; /* L */ + case 0x149: /* ʼn */ + strZ[0] = 0x4E; break; /* N */ case 0x490: case 0x491: /* Ґ ґ */ strZ[0] = 0x413; break; /* Г */ } @@ -1041,9 +1054,22 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset) } } } + /* NG for Welsh */ + if (strX[0]==0x4E && strX[1]==0x47) { /* NG */ + strY[0]=0x4E; strY[1]=L'\0'; /* N */ + strZ[0]=0x4E; strZ[1]=0x47; strZ[2]=0x5A; strZ[3]=L'\0'; /* NGZ */ + order = ucol_strcoll(icu_collator, strZ, -1, strY, -1); + if (order==UCOL_LESS) { + ini[0]=strX[0]; ini[1]=strX[1]; /* NG */ + ini[2]=L'\0'; + return; + } + } /* other digraphs */ - if(((strX[0]==0x43 || strX[0]==0x44 || strX[0]==0x53 || strX[0]==0x54 || strX[0]==0x58 || strX[0]==0x5A) - && strX[1]==0x48) || /* CH DH SH TH XH ZH */ + if(((strX[0]==0x43 || strX[0]==0x44 || strX[0]==0x50 || strX[0]==0x52 || strX[0]==0x53 || strX[0]==0x54 || + strX[0]==0x58 || strX[0]==0x5A) && strX[1]==0x48) || /* CH DH PH RH SH TH XH ZH */ + (strX[0]==0x44 && strX[1]==0x44) || /* DD */ + (strX[0]==0x46 && strX[1]==0x46) || /* FF */ (strX[0]==0x4C && strX[1]==0x4C) || /* LL */ ((strX[0]==0x47 || strX[0]==0x4C || strX[0]==0x4E) && strX[1]==0x4A) || /* GJ LJ NJ */ (strX[0]==0x52 && strX[1]==0x52) || /* RR */ diff --git a/Build/source/texk/upmendex/sort.c b/Build/source/texk/upmendex/sort.c index bcecd765cf4..94716fc764f 100644 --- a/Build/source/texk/upmendex/sort.c +++ b/Build/source/texk/upmendex/sort.c @@ -415,8 +415,6 @@ static int unescape(const unsigned char *src, UChar *dest) int is_latin(UChar *c) { - UChar32 c32; - if (((*c>=L'A')&&(*c<=L'Z'))||((*c>=L'a')&&(*c<=L'z'))) return 1; else if ((*c==0x00AA)||(*c==0x00BA)) return 1; /* Latin-1 Supplement */ else if ((*c>=0x00C0)&&(*c<=0x00D6)) return 1; @@ -436,6 +434,7 @@ int is_latin(UChar *c) &&(*c<=0x24E9)) return 1; /* CIRCLED LATIN SMALL LETTER */ if (is_surrogate_pair(c)) { + UChar32 c32; c32=U16_GET_SUPPLEMENTARY(*c,*(c+1)); if ((c32>=0x10780) && (c32<=0x107BF)) return 2; /* Latin Extended-F */ else if ((c32>=0x1DF00) && (c32<=0x1DFFF)) return 2; /* Latin Extended-G */ @@ -471,8 +470,6 @@ int is_numeric(UChar *c) int is_jpn_kana(UChar *c) { - UChar32 c32; - if (*c==0x30A0) return 0; /* KATAKANA-HIRAGANA DOUBLE HYPHEN */ else if (*c==0x30FB) return 0; /* KATAKANA MIDDLE DOT */ else if ((*c>=0x3040)&&(*c<=0x30FF)) return 1; /* Hiragana, Katakana */ @@ -482,6 +479,7 @@ int is_jpn_kana(UChar *c) else if ((*c>=0x3300)&&(*c<=0x3357)) return 1; /* Squared Katakana words */ if (is_surrogate_pair(c)) { + UChar32 c32; c32=U16_GET_SUPPLEMENTARY(*c,*(c+1)); if ((c32>=0x1B130) && (c32<=0x1B16F)) return 2; /* Small Kana Extensions */ else if ((c32==0x1B000)) return 2; /* KATAKANA LETTER ARCHAIC E */ @@ -507,8 +505,6 @@ int is_kor_hngl(UChar *c) int is_hanzi(UChar *c) { - UChar32 c32; - if ((*c>=0x2E80) /* CJK Radicals Supplement */ &&(*c<=0x2FDF)) return 1; /* Kangxi Radicals */ else if ((*c>=0x31C0)&&(*c<=0x31EF)) return 1; /* CJK Strokes */ @@ -518,10 +514,11 @@ int is_hanzi(UChar *c) else if ((*c>=0xF900)&&(*c<=0xFAFF)) return 1; /* CJK Compatibility Ideographs */ if (is_surrogate_pair(c)) { + UChar32 c32; c32=U16_GET_SUPPLEMENTARY(*c,*(c+1)); if ((c32>=0x20000) && /* CJK Unified Ideographs Extension B,C,D,E,F */ /* CJK Compatibility Ideographs Supplement */ - (c32<=0x3134F)) return 2; /* CJK Unified Ideographs Extension G */ + (c32<=0x323AF)) return 2; /* CJK Unified Ideographs Extension G,H */ } return 0; } @@ -541,7 +538,13 @@ int is_cyrillic(UChar *c) else if ((*c>=0x1C80)&&(*c<=0x1C8F)) return 1; /* Cyrillic Extended-C */ else if ((*c>=0x2DE0)&&(*c<=0x2DFF)) return 1; /* Cyrillic Extended-A */ else if ((*c>=0xA640)&&(*c<=0xA69F)) return 1; /* Cyrillic Extended-B */ - else return 0; + + if (is_surrogate_pair(c)) { + UChar32 c32; + c32=U16_GET_SUPPLEMENTARY(*c,*(c+1)); + if ((c32>=0x1E030) && (c32<=0x1E08F)) return 2; /* Cyrillic Extended-D */ + } + return 0; } int is_greek(UChar *c) @@ -558,7 +561,13 @@ int is_devanagari(UChar *c) &&(*c<=0x096F)) return 0; /* Devanagari Digit */ else if ((*c>=0x0900)&&(*c<=0x097F)) return 1; /* Devanagari */ else if ((*c>=0xA8E0)&&(*c<=0xA8FF)) return 1; /* Devanagari Extended */ - else return 0; + + if (is_surrogate_pair(c)) { + UChar32 c32; + c32=U16_GET_SUPPLEMENTARY(*c,*(c+1)); + if ((c32>=0x11B00) && (c32<=0x11B5F)) return 2; /* Devanagari Extended-A */ + } + return 0; } int is_thai(UChar *c) @@ -600,7 +609,13 @@ int is_arabic(UChar *c) &&(*c<=0x08FF)) return 1; /* Arabic Extended-A */ else if ((*c>=0xFB50)&&(*c<=0xFDFF)) return 1; /* Arabic Presentation Forms-A */ else if ((*c>=0xFE70)&&(*c<=0xFEFF)) return 1; /* Arabic Presentation Forms-B */ - else return 0; + + if (is_surrogate_pair(c)) { + UChar32 c32; + c32=U16_GET_SUPPLEMENTARY(*c,*(c+1)); + if ((c32>=0x10EC0) && (c32<=0x10EFF)) return 2; /* Arabic Extended-C */ + } + return 0; } int is_hebrew(UChar *c) |