summaryrefslogtreecommitdiff
path: root/Build/source/texk/bibtex-x/bibtex-2.c
diff options
context:
space:
mode:
authorTakuji Tanaka <ttk@t-lab.opal.ne.jp>2022-04-16 00:19:16 +0000
committerTakuji Tanaka <ttk@t-lab.opal.ne.jp>2022-04-16 00:19:16 +0000
commit207a8a1821f51269f9b939749323a6d4bfe549f3 (patch)
tree029b00a89437ae20b2a2cc5f34fc088cfe644de2 /Build/source/texk/bibtex-x/bibtex-2.c
parent3102b74cc0d219f655cde4ef53ce3119a4307590 (diff)
bibtex-x: ver3.80, enhance width$, substring$, etc.
git-svn-id: svn://tug.org/texlive/trunk@63038 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/bibtex-x/bibtex-2.c')
-rw-r--r--Build/source/texk/bibtex-x/bibtex-2.c311
1 files changed, 294 insertions, 17 deletions
diff --git a/Build/source/texk/bibtex-x/bibtex-2.c b/Build/source/texk/bibtex-x/bibtex-2.c
index 537ceb22986..3eacc70e16f 100644
--- a/Build/source/texk/bibtex-x/bibtex-2.c
+++ b/Build/source/texk/bibtex-x/bibtex-2.c
@@ -2550,7 +2550,7 @@ BEGIN
* $cmr10$~font and represent hundredths of a point (rounded), but since
* they're used only for relative comparisons, the units have no meaning.
***************************************************************************/
- for (i=0; i<=0177; i++)
+ for (i=0; i<=LAST_LATIN_CHAR; i++)
BEGIN
char_width[i] = 0;
END
@@ -2581,12 +2581,20 @@ BEGIN
char_width[0067] = 500;
char_width[0070] = 500;
char_width[0071] = 500;
- char_width[0072] = 278;
- char_width[0073] = 278;
- char_width[0074] = 278;
- char_width[0075] = 778;
- char_width[0076] = 472;
- char_width[0077] = 472;
+ char_width[0072] = 278; /* :, refer 0x3A in T1 ecrm1000.tfm */
+ char_width[0073] = 278; /* ;, refer 0x3B in T1 ecrm1000.tfm */
+#ifdef SUPPORT_8BIT
+ char_width[0074] = 472; /* <, refer 0x3C in T1 ecrm1000.tfm */
+#else
+ char_width[0074] = 278; /* ¡, refer 0x3C in OT1 cmr10.tfm */
+#endif
+ char_width[0075] = 778; /* =, refer 0x3D in T1 ecrm1000.tfm */
+#ifdef SUPPORT_8BIT
+ char_width[0076] = 472; /* >, refer 0x3E in T1 ecrm1000.tfm */
+#else
+ char_width[0076] = 472; /* ¿, refer 0x3E in OT1 cmr10.tfm */
+#endif
+ char_width[0077] = 472; /* ?, refer 0x3F in T1 ecrm1000.tfm */
char_width[0100] = 778;
char_width[0101] = 750;
char_width[0102] = 708;
@@ -2614,12 +2622,17 @@ BEGIN
char_width[0130] = 750;
char_width[0131] = 750;
char_width[0132] = 611;
- char_width[0133] = 278;
- char_width[0134] = 500;
- char_width[0135] = 278;
- char_width[0136] = 500;
- char_width[0137] = 278;
- char_width[0140] = 278;
+ char_width[0133] = 278; /* [, refer 0x5B in T1 ecrm1000.tfm */
+ char_width[0134] = 500; /* \, refer 0x5C in T1 ecrm1000.tfm */
+ char_width[0135] = 278; /* ], refer 0x5D in T1 ecrm1000.tfm */
+#ifdef SUPPORT_8BIT
+ char_width[0136] = 611; /* wide ^, refer 0x5E in T1 ecrm1000.tfm */
+ char_width[0137] = 778; /* wide _, refer 0x5F in T1 ecrm1000.tfm */
+#else
+ char_width[0136] = 500; /* ^, refer 0x5E in OT1 cmr10.tfm */
+ char_width[0137] = 278; /* dot above, refer 0x5F in OT1 cmr10.tfm */
+#endif
+ char_width[0140] = 278; /* `, refer 0x60 in T1 ecrm1000.tfm */
char_width[0141] = 500;
char_width[0142] = 556;
char_width[0143] = 444;
@@ -2646,10 +2659,220 @@ BEGIN
char_width[0170] = 528;
char_width[0171] = 528;
char_width[0172] = 444;
- char_width[0173] = 500;
- char_width[0174] = 1000;
- char_width[0175] = 500;
- char_width[0176] = 500;
+ char_width[0173] = 500; /* {, refer 0x7B in T1 ecrm1000.tfm */
+#ifdef SUPPORT_8BIT
+ char_width[0174] = 278; /* |, refer 0x7C in T1 ecrm1000.tfm */
+#else
+ char_width[0174] = 1000; /* em-dash, refer 0x7C in OT1 cmr10.tfm */
+#endif
+ char_width[0175] = 500; /* }, refer 0x7D in T1 ecrm1000.tfm */
+#ifdef SUPPORT_8BIT
+ char_width[0176] = 611; /* ~, refer 0x7E in T1 ecrm1000.tfm */
+#else
+ char_width[0176] = 500; /* ??? */
+#endif
+#ifdef SUPPORT_8BIT
+ char_width[0xA1] = 278; /* ¡, refer 0xBD in T1 ecrm1000.tfm */
+ char_width[0xA3] = 639; /* £, refer 0xBF in T1 ecrm1000.tfm */
+ char_width[0xA7] = 444; /* §, refer 0x9F in T1 ecrm1000.tfm */
+ char_width[0xAB] = 556; /* «, refer 0x13 in T1 ecrm1000.tfm */
+ char_width[0xBB] = 556; /* », refer 0x14 in T1 ecrm1000.tfm */
+ char_width[0xBF] = 472; /* ¿, refer 0xBE in T1 ecrm1000.tfm */
+ char_width[0xC0] = 750;
+ char_width[0xC1] = 750;
+ char_width[0xC2] = 750;
+ char_width[0xC3] = 750;
+ char_width[0xC4] = 750;
+ char_width[0xC5] = 750;
+ char_width[0xC6] = 903;
+ char_width[0xC7] = 722;
+ char_width[0xC8] = 681;
+ char_width[0xC9] = 681;
+ char_width[0xCA] = 681;
+ char_width[0xCB] = 681;
+ char_width[0xCC] = 361;
+ char_width[0xCD] = 361;
+ char_width[0xCE] = 361;
+ char_width[0xCF] = 361;
+ char_width[0xD0] = 764;
+ char_width[0xD1] = 750;
+ char_width[0xD2] = 778;
+ char_width[0xD3] = 778;
+ char_width[0xD4] = 778;
+ char_width[0xD5] = 778;
+ char_width[0xD6] = 778;
+ char_width[0xD7] = 778; /* expect "×" */
+ char_width[0xD8] = 778;
+ char_width[0xD9] = 750;
+ char_width[0xDA] = 750;
+ char_width[0xDB] = 750;
+ char_width[0xDC] = 750;
+ char_width[0xDD] = 750;
+ char_width[0xDE] = 625;
+ char_width[0xDF] = 500; /* ß, refer 0xFF in T1 ecrm1000.tfm */
+ char_width[0xE0] = 500;
+ char_width[0xE1] = 500;
+ char_width[0xE2] = 500;
+ char_width[0xE3] = 500;
+ char_width[0xE4] = 500;
+ char_width[0xE5] = 500;
+ char_width[0xE6] = 722;
+ char_width[0xE7] = 444;
+ char_width[0xE8] = 444;
+ char_width[0xE9] = 444;
+ char_width[0xEA] = 444;
+ char_width[0xEB] = 444;
+ char_width[0xEC] = 278;
+ char_width[0xED] = 278;
+ char_width[0xEE] = 278;
+ char_width[0xEF] = 333;
+ char_width[0xF0] = 500;
+ char_width[0xF1] = 556;
+ char_width[0xF2] = 500;
+ char_width[0xF3] = 500;
+ char_width[0xF4] = 500;
+ char_width[0xF5] = 500;
+ char_width[0xF6] = 500;
+ char_width[0xF7] = 778; /* expect "÷" */
+ char_width[0xF8] = 500;
+ char_width[0xF9] = 556;
+ char_width[0xFA] = 556;
+ char_width[0xFB] = 556;
+ char_width[0xFC] = 556;
+ char_width[0xFD] = 528;
+ char_width[0xFE] = 556;
+ char_width[0xFF] = 528; /* ÿ, refer 0xB8 in T1 ecrm1000.tfm */
+#endif
+#ifdef UTF_8
+ char_width[0x100] = 750;
+ char_width[0x101] = 500;
+ char_width[0x102] = 750;
+ char_width[0x103] = 500;
+ char_width[0x104] = 750;
+ char_width[0x105] = 500;
+ char_width[0x106] = 722;
+ char_width[0x107] = 444;
+ char_width[0x108] = 722;
+ char_width[0x109] = 444;
+ char_width[0x10A] = 722;
+ char_width[0x10B] = 444;
+ char_width[0x10C] = 722;
+ char_width[0x10D] = 444;
+ char_width[0x10E] = 764;
+ char_width[0x10F] = 556;
+ char_width[0x110] = 764;
+ char_width[0x111] = 556;
+ char_width[0x112] = 681;
+ char_width[0x113] = 444;
+ char_width[0x114] = 681;
+ char_width[0x115] = 444;
+ char_width[0x116] = 681;
+ char_width[0x117] = 444;
+ char_width[0x118] = 681;
+ char_width[0x119] = 444;
+ char_width[0x11A] = 681;
+ char_width[0x11B] = 444;
+ char_width[0x11C] = 785;
+ char_width[0x11D] = 500;
+ char_width[0x11E] = 785;
+ char_width[0x11F] = 500;
+ char_width[0x120] = 785;
+ char_width[0x121] = 500;
+ char_width[0x122] = 785;
+ char_width[0x123] = 500;
+ char_width[0x124] = 750;
+ char_width[0x125] = 556;
+ char_width[0x126] = 750;
+ char_width[0x127] = 556;
+ char_width[0x128] = 361;
+ char_width[0x129] = 278;
+ char_width[0x12A] = 361;
+ char_width[0x12B] = 278;
+ char_width[0x12C] = 361;
+ char_width[0x12D] = 278;
+ char_width[0x12E] = 361;
+ char_width[0x12F] = 278;
+ char_width[0x130] = 361;
+ char_width[0x131] = 278;
+ char_width[0x132] = 861; /* IJ, refer 0x9C in T1 ecrm1000.tfm */
+ char_width[0x133] = 583; /* ij, refer 0xBC in T1 ecrm1000.tfm */
+ char_width[0x134] = 541;
+ char_width[0x135] = 306;
+ char_width[0x136] = 778;
+ char_width[0x137] = 528;
+ char_width[0x138] = 556; /* ĸ, not found in T1 ecrm1000.tfm */
+ char_width[0x139] = 625;
+ char_width[0x13A] = 278;
+ char_width[0x13B] = 625;
+ char_width[0x13C] = 278;
+ char_width[0x13D] = 625;
+ char_width[0x13E] = 278;
+ char_width[0x13F] = 625;
+ char_width[0x140] = 278;
+ char_width[0x141] = 625;
+ char_width[0x142] = 278;
+ char_width[0x143] = 750;
+ char_width[0x144] = 556;
+ char_width[0x145] = 750;
+ char_width[0x146] = 556;
+ char_width[0x147] = 750;
+ char_width[0x148] = 556;
+ char_width[0x149] = 556;
+ char_width[0x14A] = 792; /* Ŋ, refer 0x8D in T1 ecrm1000.tfm */
+ char_width[0x14B] = 556; /* ŋ, refer 0xAD in T1 ecrm1000.tfm */
+ char_width[0x14C] = 778;
+ char_width[0x14D] = 500;
+ char_width[0x14E] = 778;
+ char_width[0x14F] = 500;
+ char_width[0x150] = 778;
+ char_width[0x151] = 500;
+ char_width[0x152] = 1014; /* Œ, refer 0xD7 in T1 ecrm1000.tfm */
+ char_width[0x153] = 778; /* œ, refer 0xF7 in T1 ecrm1000.tfm */
+ char_width[0x154] = 736;
+ char_width[0x155] = 392;
+ char_width[0x156] = 736;
+ char_width[0x157] = 392;
+ char_width[0x158] = 736;
+ char_width[0x159] = 392;
+ char_width[0x15A] = 556;
+ char_width[0x15B] = 394;
+ char_width[0x15C] = 556;
+ char_width[0x15D] = 394;
+ char_width[0x15E] = 556;
+ char_width[0x15F] = 394;
+ char_width[0x160] = 556;
+ char_width[0x161] = 394;
+ char_width[0x162] = 722;
+ char_width[0x163] = 389;
+ char_width[0x164] = 722;
+ char_width[0x165] = 389;
+ char_width[0x166] = 722;
+ char_width[0x167] = 389;
+ char_width[0x168] = 750;
+ char_width[0x169] = 556;
+ char_width[0x16A] = 750;
+ char_width[0x16B] = 556;
+ char_width[0x16C] = 750;
+ char_width[0x16D] = 556;
+ char_width[0x16E] = 750;
+ char_width[0x16F] = 556;
+ char_width[0x170] = 750;
+ char_width[0x171] = 556;
+ char_width[0x172] = 750;
+ char_width[0x173] = 556;
+ char_width[0x174] = 1028;
+ char_width[0x175] = 722;
+ char_width[0x176] = 750;
+ char_width[0x177] = 528;
+ char_width[0x178] = 750;
+ char_width[0x179] = 611;
+ char_width[0x17A] = 444;
+ char_width[0x17B] = 611;
+ char_width[0x17C] = 444;
+ char_width[0x17D] = 611;
+ char_width[0x17E] = 444;
+ char_width[0x17F] = 392; /* ſ, not found in T1 ecrm1000.tfm */
+#endif
/*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 35 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
/***************************************************************************
@@ -3210,6 +3433,60 @@ BEGIN
return tblen;
END
+
+int32_t icu_toUChar32s(BufType_T buf, BufPointer_T bf_ptr,BufPointer_T len,UChar32 * target, int32_t tarcap, UChar * buf16)
+BEGIN
+ UErrorCode err1 = U_ZERO_ERROR;
+ int32_t tulen;
+
+ u_strFromUTF8WithSub(buf16, tarcap, &tulen, (char *)&buf[bf_ptr], len, 0xfffd, NULL, &err1);
+ if (!U_SUCCESS(err1))
+ BEGIN
+ printf("Error in icu_toUChar32s.\n");
+#ifdef TRACE
+ if (Flag_trace)
+ TRACE_PR_LN ("Error in icu_toUChar32s");
+#endif /* TRACE */
+ END
+ err1 = U_ZERO_ERROR;
+ u_strToUTF32WithSub(target, tarcap, &tulen, buf16, -1, 0xfffd, NULL, &err1);
+ if (!U_SUCCESS(err1))
+ BEGIN
+ printf("Error in icu_toUChar32s.\n");
+#ifdef TRACE
+ if (Flag_trace)
+ TRACE_PR_LN ("Error in icu_toUChar32s");
+#endif /* TRACE */
+ END
+ return tulen;
+END
+
+int32_t icu_fromUChar32s(unsigned char * dest, int32_t destcap, const UChar32 * src, int32_t srclen, UChar * buf16)
+BEGIN
+ UErrorCode err2 = U_ZERO_ERROR;
+ int32_t tblen;
+
+ u_strFromUTF32WithSub(buf16, destcap, &tblen, src, srclen, 0xfffd, NULL, &err2);
+ if (!U_SUCCESS(err2))
+ BEGIN
+ printf("Error in icu_fromUChar32s.\n");
+#ifdef TRACE
+ if (Flag_trace)
+ TRACE_PR_LN ("Error in icu_fromUChar32s");
+#endif /* TRACE */
+ END
+ err2 = U_ZERO_ERROR;
+ u_strToUTF8WithSub((char *)dest, destcap, &tblen, buf16, -1, 0xfffd, NULL, &err2);
+ if (!U_SUCCESS(err2))
+ BEGIN
+ printf("Error in icu_fromUChar32s.\n");
+#ifdef TRACE
+ if (Flag_trace)
+ TRACE_PR_LN ("Error in icu_fromUChar32s");
+#endif /* TRACE */
+ END
+ return tblen;
+END
#endif
/*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 62 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/