texlive[59749] Build/source/texk/ptexenc: ptexenc: always return 0

commits+hironobu at tug.org commits+hironobu at tug.org
Tue Jun 29 14:08:43 CEST 2021


Revision: 59749
          http://tug.org/svn/texlive?view=revision&revision=59749
Author:   hironobu
Date:     2021-06-29 14:08:43 +0200 (Tue, 29 Jun 2021)
Log Message:
-----------
ptexenc: always return 0 for invalid code conversion

Modified Paths:
--------------
    trunk/Build/source/texk/ptexenc/ChangeLog
    trunk/Build/source/texk/ptexenc/jisx0208.h
    trunk/Build/source/texk/ptexenc/kanjicnv.c
    trunk/Build/source/texk/ptexenc/ptexenc/kanjicnv.h

Modified: trunk/Build/source/texk/ptexenc/ChangeLog
===================================================================
--- trunk/Build/source/texk/ptexenc/ChangeLog	2021-06-29 01:19:16 UTC (rev 59748)
+++ trunk/Build/source/texk/ptexenc/ChangeLog	2021-06-29 12:08:43 UTC (rev 59749)
@@ -1,3 +1,9 @@
+2021-06-29  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* kanjicnv.c, ptexenc/kanjicnv.h: Always return 0 for
+	invalid code conversions between JIS/EUC/SJIS/KUTEN/UCS.
+	* jisx0208.h: Remove unused entry of UnicodeTbl.
+
 2021-06-25  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
 
 	* unicode-jp.c: changed the returned value of UCS2toJISnative(0)

Modified: trunk/Build/source/texk/ptexenc/jisx0208.h
===================================================================
--- trunk/Build/source/texk/ptexenc/jisx0208.h	2021-06-29 01:19:16 UTC (rev 59748)
+++ trunk/Build/source/texk/ptexenc/jisx0208.h	2021-06-29 12:08:43 UTC (rev 59749)
@@ -1102,110 +1102,6 @@
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
-  {				/* category 85 */
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
-  {				/* category 86 */
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
-  {				/* category 87 */
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
-  {				/* category 88 */
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
-  {				/* category 89 */
-   0x7E8A, 0x891C, 0x9348, 0x9288, 0x84DC, 0x4FC9, 0x70BB, 0x6631,
-   0x68C8, 0x92F9, 0x66FB, 0x5F45, 0x4E28, 0x4EE1, 0x4EFC, 0x4F00,
-   0x4F03, 0x4F39, 0x4F56, 0x4F92, 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD,
-   0x5040, 0x5022, 0x4FFF, 0x501E, 0x5046, 0x5070, 0x5042, 0x5094,
-   0x50F4, 0x50D8, 0x514A, 0x5164, 0x519D, 0x51BE, 0x51EC, 0x5215,
-   0x529C, 0x52A6, 0x52C0, 0x52DB, 0x5300, 0x5307, 0x5324, 0x5372,
-   0x5393, 0x53B2, 0x53DD, 0xFA0E, 0x549C, 0x548A, 0x54A9, 0x54FF,
-   0x5586, 0x5759, 0x5765, 0x57AC, 0x57C8, 0x57C7, 0xFA0F, 0xFA10,
-   0x589E, 0x58B2, 0x590B, 0x5953, 0x595B, 0x595D, 0x5963, 0x59A4,
-   0x59BA, 0x5B56, 0x5BC0, 0x752F, 0x5BD8, 0x5BEC, 0x5C1E, 0x5CA6,
-   0x5CBA, 0x5CF5, 0x5D27, 0x5D53, 0xFA11, 0x5D42, 0x5D6D, 0x5DB8,
-   0x5DB9, 0x5DD0, 0x5F21, 0x5F34, 0x5F67, 0x5FB7},
-  {				/* category 90 */
-   0x5FDE, 0x605D, 0x6085, 0x608A, 0x60DE, 0x60D5, 0x6120, 0x60F2,
-   0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62A6, 0x63F5, 0x6460,
-   0x649D, 0x64CE, 0x654E, 0x6600, 0x6615, 0x663B, 0x6609, 0x662E,
-   0x661E, 0x6624, 0x6665, 0x6657, 0x6659, 0xFA12, 0x6673, 0x6699,
-   0x66A0, 0x66B2, 0x66BF, 0x66FA, 0x670E, 0xF929, 0x6766, 0x67BB,
-   0x6852, 0x67C0, 0x6801, 0x6844, 0x68CF, 0xFA13, 0x6968, 0xFA14,
-   0x6998, 0x69E2, 0x6A30, 0x6A6B, 0x6A46, 0x6A73, 0x6A7E, 0x6AE2,
-   0x6AE4, 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86, 0x6C6F, 0x6CDA, 0x6D04,
-   0x6D87, 0x6D6F, 0x6D96, 0x6DAC, 0x6DCF, 0x6DF8, 0x6DF2, 0x6DFC,
-   0x6E39, 0x6E5C, 0x6E27, 0x6E3C, 0x6EBF, 0x6F88, 0x6FB5, 0x6FF5,
-   0x7005, 0x7007, 0x7028, 0x7085, 0x70AB, 0x710F, 0x7104, 0x715C,
-   0x7146, 0x7147, 0xFA15, 0x71C1, 0x71FE, 0x72B1},
-  {				/* category 91 */
-   0x72BE, 0x7324, 0xFA16, 0x7377, 0x73BD, 0x73C9, 0x73D6, 0x73E3,
-   0x73D2, 0x7407, 0x73F5, 0x7426, 0x742A, 0x7429, 0x742E, 0x7462,
-   0x7489, 0x749F, 0x7501, 0x756F, 0x7682, 0x769C, 0x769E, 0x769B,
-   0x76A6, 0xFA17, 0x7746, 0x52AF, 0x7821, 0x784E, 0x7864, 0x787A,
-   0x7930, 0xFA18, 0xFA19, 0xFA1A, 0x7994, 0xFA1B, 0x799B, 0x7AD1,
-   0x7AE7, 0xFA1C, 0x7AEB, 0x7B9E, 0xFA1D, 0x7D48, 0x7D5C, 0x7DB7,
-   0x7DA0, 0x7DD6, 0x7E52, 0x7F47, 0x7FA1, 0xFA1E, 0x8301, 0x8362,
-   0x837F, 0x83C7, 0x83F6, 0x8448, 0x84B4, 0x8553, 0x8559, 0x856B,
-   0xFA1F, 0x85B0, 0xFA20, 0xFA21, 0x8807, 0x88F5, 0x8A12, 0x8A37,
-   0x8A79, 0x8AA7, 0x8ABE, 0x8ADF, 0xFA22, 0x8AF6, 0x8B53, 0x8B7F,
-   0x8CF0, 0x8CF4, 0x8D12, 0x8D76, 0xFA23, 0x8ECF, 0xFA24, 0xFA25,
-   0x9067, 0x90DE, 0xFA26, 0x9115, 0x9127, 0x91DA},
-  {				/* category 92 */
-   0x91D7, 0x91DE, 0x91ED, 0x91EE, 0x91E4, 0x91E5, 0x9206, 0x9210,
-   0x920A, 0x923A, 0x9240, 0x923C, 0x924E, 0x9259, 0x9251, 0x9239,
-   0x9267, 0x92A7, 0x9277, 0x9278, 0x92E7, 0x92D7, 0x92D9, 0x92D0,
-   0xFA27, 0x92D5, 0x92E0, 0x92D3, 0x9325, 0x9321, 0x92FB, 0xFA28,
-   0x931E, 0x92FF, 0x931D, 0x9302, 0x9370, 0x9357, 0x93A4, 0x93C6,
-   0x93DE, 0x93F8, 0x9431, 0x9445, 0x9448, 0x9592, 0xF9DC, 0xFA29,
-   0x969D, 0x96AF, 0x9733, 0x973B, 0x9743, 0x974D, 0x974F, 0x9751,
-   0x9755, 0x9857, 0x9865, 0xFA2A, 0xFA2B, 0x9927, 0xFA2C, 0x999E,
-   0x9A4E, 0x9AD9, 0x9ADC, 0x9B75, 0x9B72, 0x9B8F, 0x9BB1, 0x9BBB,
-   0x9C00, 0x9D70, 0x9D6B, 0xFA2D, 0x9E19, 0x9ED1, 0x0000, 0x0000,
-   0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
-   0x2178, 0x2179, 0xFFE2, 0xFFE4, 0xFF07, 0xFF02}
 };
 
 #endif /* JISX0208_H */

Modified: trunk/Build/source/texk/ptexenc/kanjicnv.c
===================================================================
--- trunk/Build/source/texk/ptexenc/kanjicnv.c	2021-06-29 01:19:16 UTC (rev 59748)
+++ trunk/Build/source/texk/ptexenc/kanjicnv.c	2021-06-29 12:08:43 UTC (rev 59749)
@@ -5,6 +5,18 @@
 #include <ptexenc/c-auto.h>
 #include <ptexenc/kanjicnv.h>
 
+boolean isJISkanji1(int c)
+{
+    c &= 0xff;
+    return (0x21 <= c && c <= 0x7e);
+}
+
+boolean isJISkanji2(int c)
+{
+    c &= 0xff;
+    return (0x21 <= c && c <= 0x7e);
+}
+
 boolean isEUCkanji1(int c)
 {
     c &= 0xff;
@@ -32,11 +44,17 @@
 /* EUC <=> JIS X 0208 code conversion */
 int EUCtoJIS(int kcode)
 {
+    if ((kcode<=0 || kcode>0x10000)) return 0;
+    if (!isEUCkanji1(HI(kcode))) return 0;
+    if (!isEUCkanji2(LO(kcode))) return 0;
     return (kcode & 0x7f7f);
 }
 
 int JIStoEUC(int kcode)
 {
+    if ((kcode<=0 || kcode>0x10000)) return 0;
+    if (!isJISkanji1(HI(kcode))) return 0;
+    if (!isJISkanji2(LO(kcode))) return 0;
     return (kcode | 0x8080);
 }
 
@@ -45,8 +63,9 @@
 {
     int byte1, byte2;
 
-    byte1 = HI(kcode);
-    byte2 = LO(kcode);
+    if ((kcode<=0 || kcode>0x10000)) return 0;
+    byte1 = HI(kcode); if (!isSJISkanji1(byte1)) return 0;
+    byte2 = LO(kcode); if (!isSJISkanji2(byte2)) return 0;
     byte1 -= ( byte1>=0xa0 ) ? 0xc1 : 0x81;
     kcode = ((byte1<<1) + 0x21)<<8;
     if ( byte2 >= 0x9f ) {
@@ -63,8 +82,9 @@
     int high, low;
     int nh,   nl;
 
-    high = HI(kcode);
-    low  = LO(kcode);
+    if ((kcode<=0 || kcode>0x10000)) return 0;
+    high = HI(kcode); if (!isJISkanji1(high)) return 0;
+    low  = LO(kcode); if (!isJISkanji2(low)) return 0;
     nh = ((high-0x21)>>1) + 0x81;
     if (nh > 0x9f) nh += 0x40;
     if (high & 1) {
@@ -72,11 +92,7 @@
         if (low > 0x5f) nl++;
     } else
         nl = low + 0x7e;
-    if (isSJISkanji1(nh) && isSJISkanji2(nl)) {
-        return HILO(nh, nl);
-    } else {
-        return 0x813f;
-    }
+    return HILO(nh, nl);
 }
 
 /* Shift JIS <=> EUC Kanji code conversion */
@@ -94,8 +110,8 @@
 int KUTENtoJIS(int kcode)
 {
     /* in case of undefined in kuten code table */
-    if (HI(kcode) == 0 || HI(kcode) > 95) return -1;
-    if (LO(kcode) == 0 || LO(kcode) > 95) return -1;
+    if (HI(kcode) == 0 || HI(kcode) > 94) return 0;
+    if (LO(kcode) == 0 || LO(kcode) > 94) return 0;
 
     return kcode + 0x2020;
 }

Modified: trunk/Build/source/texk/ptexenc/ptexenc/kanjicnv.h
===================================================================
--- trunk/Build/source/texk/ptexenc/ptexenc/kanjicnv.h	2021-06-29 01:19:16 UTC (rev 59748)
+++ trunk/Build/source/texk/ptexenc/ptexenc/kanjicnv.h	2021-06-29 12:08:43 UTC (rev 59749)
@@ -11,6 +11,9 @@
 #define LO(x)     ( ((int)(x))       & 0xff)
 #define HILO(x,y) ((LO(x) << 8) | LO(y))
 
+extern boolean isJISkanji1(int c);
+extern boolean isJISkanji2(int c);
+
 extern boolean isEUCkanji1(int c);
 extern boolean isEUCkanji2(int c);
 



More information about the tex-live-commits mailing list.