Annotation of OpenXM/src/asir-doc/jtexindex/C/jtexindex.diff, Revision 1.1.1.1
1.1 noro 1: Path: kddlab!cs.titech!wnoc-tyo-news!sh.wide!wnoc-kyo!oskgate0.mei!synapse!kgway!manmos
2: From: manmos@knowledge.co.jp (Hideo "Sir MaNMOS" Morisita)
3: Newsgroups: fj.sources
4: Subject: Japanese extention for texindex
5: Message-ID: <MANMOS.93Jul13113502@kgway.knowledge.co.jp>
6: Date: 13 Jul 93 02:35:02 GMT
7: Sender: manmos@kgway.knowledge.co.jp
8: Followup-To: fj.sources.d
9: Distribution: fj
10: Organization: Knowledge. Co., Osaka, Japan
11: Lines: 643
12:
13:
14: $B?92<(J $B$*Be41MM(J $B#M#a#N#M#O#S!w%J%l%C%8$G$9!#(J
15:
16: $B0JA0!"(Jtexinfo$B$NF|K\8l3HD%$,(Jfj$B$KN.$l$^$7$?$,!"$=$lMQ$N(Jtexindex$B$ON.$l$J(J
17: $B$+$C$?$h$&$G$9$N$G!":n$C$F$_$^$7$?!#(J
18:
19: texindex.c 1.45$B$N3HD%$H$7$F:n$C$F$"$j$^$9!#(J(texindex.c 1.45$B$O(J
20: texinfo-2.15 $B$+$i(J texinfo-3.0$B$^$GF1$8$b$N$G$9(J)
21:
22: $B;HMQJ}K!$O(J
23:
24: patch < $B$3$N%U%!%$%k(J
25:
26: $B$H$7!"(JMakefile$B$N(J DEFS$B$N=j$K(J -DEUC or -DSJIS$B$rDj5A$7$F%3%s%Q%$%k$7$F2<(J
27: $B$5$$!#(J
28:
29: $B%$%s%G%C%/%9=g$O(J
30:
31: ASCII$B5-9f(J->ASCII & JIS208 $B?t;z(J -> ASCII & JIS208 $B%"%k%U%!%Y%C%H(J ->
32: JIS201 & JIS208 $B2>L>(J
33:
34: $B$K$J$C$F$$$^$9!#(J
35:
36: $B8+=P$7$O!"2>L>#1J8;z$E$D$K$J$C$F$$$^$9!#!J$"9T$+9T$H$+$G$J$$!"$=$&$9$k(J
37: $B$N$b%F!<%V%k$r:n$l$PFq$7$/$O$J$$$G$9$,!D!K(J
38:
39: --------------------------------(cur me)-----------------------------
40: *** texindex.c Sat Dec 12 01:19:49 1992
41: --- jtexindex.c Tue Jul 13 11:15:17 1993
42: ***************
43: *** 1,6 ****
44: /* Prepare TeX index dribble output into an actual index.
45:
46: ! Version 1.45
47:
48: Copyright (C) 1987, 1991, 1992 Free Software Foundation, Inc.
49:
50: --- 1,6 ----
51: /* Prepare TeX index dribble output into an actual index.
52:
53: ! Version 1.45-j1.00
54:
55: Copyright (C) 1987, 1991, 1992 Free Software Foundation, Inc.
56:
57: ***************
58: *** 607,612 ****
59: --- 607,618 ----
60: while (bracelevel)
61: {
62: c = *p++;
63: + #ifdef SJIS
64: + if ( iskanji(c)) {
65: + p++;
66: + continue;
67: + }
68: + #endif
69: if (c == '{')
70: bracelevel++;
71: if (c == '}')
72: ***************
73: *** 650,655 ****
74: --- 656,667 ----
75: while (bracelevel)
76: {
77: c = *p++;
78: + #ifdef SJIS
79: + if (iskanji(c)) {
80: + p++;
81: + continue;
82: + }
83: + #endif
84: if (c == '{')
85: bracelevel++;
86: if (c == '}')
87: ***************
88: *** 678,685 ****
89: /* Vector used to translate characters for comparison.
90: This is how we make all alphanumerics follow all else,
91: and ignore case in the first sorting. */
92: ! int char_order[256];
93:
94: void
95: init_char_order ()
96: {
97: --- 690,1071 ----
98: /* Vector used to translate characters for comparison.
99: This is how we make all alphanumerics follow all else,
100: and ignore case in the first sorting. */
101: ! int char_order[0x10000]; /* japanese */
102: !
103: ! #ifdef EUC
104: ! #define KANJI
105: ! #endif
106: !
107: ! #ifdef SJIS
108: ! #define KANJI
109: ! #endif
110: !
111: ! #ifdef KANJI
112: !
113: ! #ifndef EUC
114: ! # ifndef SJIS
115: ! # define EUC
116: ! # endif
117: ! #else
118: ! # ifdef SJIS
119: ! # error
120: ! # endif
121: ! #endif
122: !
123: ! #ifdef EUC
124: ! #define JIS_NUM_0 0xa3b0
125: ! #define JIS_NUM_9 (JIS_NUM_0 + '9'- '0')
126: ! #define JIS_ALPH_A 0xa3c1
127: ! #define JIS_ALPH_Z (JIS_ALPH_A + 'Z'-'A')
128: ! #define JIS_ALPH_a 0xa3e1
129: ! #define JIS_HIRA_SMALL_A 0xa4a1
130: ! #define JIS_HIRA_NN 0xa4f3
131: ! #define JIS_KATA_SMALL_A 0xa5a1
132: ! #define JIS_KATA_SMALL_KE 0xa5f6
133: ! #define JIS_HIRA_U 0xa4a6
134: ! #define JIS_KATA_U 0xa5a6
135: ! #define JIS_KATA_VU 0xa5f4
136: !
137: ! #define JIS_KATA_UPPER 0xa5
138: ! #define JIS_HIRA_UPPER 0xa4
139: !
140: ! #define JIS_HIRA_A 0xa4a2
141: ! #define JIS_KATA_A 0xa5a2
142: !
143: ! #define JIS_DAKUTEN 0xa1ab
144: ! #define JIS_HANDAKUTEN 0xa1ac
145: ! #define JIS_CHOUON 0xa2ac
146: !
147: ! int kana[] = {
148: ! /* . [ ] , . wo a */
149: ! 0xa1a1, 0xa1a3, 0xa1d6, 0xa1d7, 0xa1a2, 0xa1a6, 0xa5f2, 0xa5a1,
150: ! /* i u e o ya yu yo tsu */
151: ! 0xa5a3, 0xa5a5, 0xa5a7, 0xa5a9, 0xa5e3, 0xa5e5, 0xa5e7, 0xa5c3,
152: ! /* - a i u e o ka ki */
153: ! 0xa1bc, 0xa5a2, 0xa5a4, 0xa5a6, 0xa5a8, 0xa5aa, 0xa5ab, 0xa5ad,
154: ! /* ku ke ko sa si su se so */
155: ! 0xa5af, 0xa5b1, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b9, 0xa5bb, 0xa5bd,
156: ! /* ta ti tu te to na ni nu */
157: ! 0xa5bf, 0xa5c1, 0xa5c4, 0xa5c6, 0xa5c8, 0xa5ca, 0xa5cb, 0xa5cc,
158: ! /* ne no ha hi hu he ho ma */
159: ! 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d2, 0xa5d5, 0xa5d8, 0xa5db, 0xa5de,
160: ! /* mi mu me mo ya yu yo ra */
161: ! 0xa5df, 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e4, 0xa5e6, 0xa5e8, 0xa5e9,
162: ! /* ri ru re ro wa nn "" maru */
163: ! 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ef, 0xa5f3, JIS_DAKUTEN,JIS_HANDAKUTEN
164: ! };
165: !
166: ! int daku[] = {0xa5ac, 0xa5ae, 0xa5b0, 0xa5b2, 0xa5b4, /* $B%,(J*/
167: ! 0xa5b6, 0xa5b8, 0xa5ba, 0xa5bc, 0xa5be, /* $B%6(J */
168: ! 0xa5c0, 0xa5c2, 0xa5c5, 0xa5c7, 0xa5c9, /* $B%@(J */
169: ! 0xa5d0, 0xa5d3, 0xa5d6, 0xa5d9, 0xa5dc}; /* $B%P(J */
170: ! int handaku[] = {0xa5d1, 0xa5d4, 0xa5d7, 0xa5da, 0xa5dd}; /* $B%Q(J */
171: ! int dakuall[] = {0xa4ac, 0xa4ae, 0xa4b0, 0xa4b2, 0xa4b4, /* $B$,(J */
172: ! 0xa4b6, 0xa4b8, 0xa4ba, 0xa4bc, 0xa4be, /* $B$6(J */
173: ! 0xa4c0, 0xa4c2, 0xa4c5, 0xa4c7, 0xa4c9, /* $B$@(J */
174: ! 0xa4d0, 0xa4d3, 0xa4d6, 0xa4d9, 0xa4dc, /* $B$P(J */
175: ! 0xa5ac, 0xa5ae, 0xa5b0, 0xa5b2, 0xa5b4, /* $B%,(J */
176: ! 0xa5b6, 0xa5b8, 0xa5ba, 0xa5bc, 0xa5be, /* $B%6(J */
177: ! 0xa5c0, 0xa5c2, 0xa5c5, 0xa5c7, 0xa5c9, /* $B%@(J */
178: ! 0xa5d0, 0xa5d3, 0xa5d6, 0xa5d9, 0xa5dc}; /* $B%P(J */
179: ! int handakuall[] = {0xa4d1, 0xa4d4, 0xa4d7, 0xa4da, 0xa4dd, /* $B$Q(J */
180: ! 0xa5d1, 0xa5d4, 0xa5d7, 0xa5da, 0xa5dd}; /* $B%Q(J */
181: !
182: !
183: ! iskanji(c) /* japanses extention */
184: ! int c;
185: ! {
186: ! if ( !(c & 0x80 )) return 0;
187: ! if ( c == 0x8e ) return 0;
188: ! return 1;
189: ! }
190: !
191: ! is201kana(c) /* japanses extention */
192: ! int c;
193: ! {
194: ! if ( c == 0x8e ) return 1;
195: ! else return 0;
196: ! }
197: ! #else /* SJIS */
198: ! #define JIS_NUM_0 0x824f
199: ! #define JIS_NUM_9 (JIS_NUM_0 + '9'- '0')
200: ! #define JIS_ALPH_A 0x8260
201: ! #define JIS_ALPH_Z (JIS_ALPH_A + 'Z'-'A')
202: ! #define JIS_ALPH_a 0x8281
203: ! #define JIS_HIRA_SMALL_A 0x829f
204: ! #define JIS_HIRA_NN 0x82f1
205: ! #define JIS_KATA_SMALL_A 0x8340
206: ! #define JIS_KATA_SMALL_KE 0x8396
207: ! #define JIS_HIRA_U 0x82a4
208: ! #define JIS_KATA_U 0x83a5
209: ! #define JIS_KATA_VU 0x8394
210: !
211: ! #define JIS_KATA_UPPER 0x83
212: ! #define JIS_HIRA_UPPER 0x82
213: !
214: ! #define JIS_HIRA_A 0x82a0
215: ! #define JIS_KATA_A 0x8341
216: !
217: ! #define JIS_DAKUTEN 0x814a
218: ! #define JIS_HANDAKUTEN 0x814b
219: ! #define JIS_CHOUON 0x815b
220: !
221: ! int kana[] = {
222: ! /* . [ ] , . wo a */
223: ! 0x813f, 0x8142, 0x8175, 0x8176, 0x8141, 0x8145, 0x8392, 0x8340,
224: ! /* i u e o ya yu yo tsu */
225: ! 0x8342, 0x8344, 0x8346, 0x8348, 0x8383, 0x8385, 0x8387, 0x8362,
226: ! /* - a i u e o ka ki */
227: ! 0x815b, 0x8341, 0x8343, 0x8345, 0x8347, 0x8349, 0x834a, 0x834c,
228: ! /* ku ke ko sa si su se so */
229: ! 0x834e, 0x8350, 0x8352, 0x8354, 0x8356, 0x8358, 0x835a, 0x835c,
230: ! /* ta ti tu te to na ni nu */
231: ! 0x835e, 0x8360, 0x8363, 0x8365, 0x8367, 0x8369, 0x836a, 0x836b,
232: ! /* ne no ha hi hu he ho ma */
233: ! 0x836c, 0x836d, 0x836e, 0x8371, 0x8374, 0x8377, 0x837a, 0x837d,
234: ! /* mi mu me mo ya yu yo ra */
235: ! 0x837e, 0x8380, 0x8381, 0x8382, 0x8384, 0x8386, 0x8388, 0x8389,
236: ! /* ri ru re ro wa nn "" maru */
237: ! 0x838a, 0x838b, 0x838c, 0x838d, 0x838f, 0x8393, JIS_DAKUTEN,JIS_HANDAKUTEN
238: ! };
239: !
240: ! int daku[] = {0x834b, 0x834d, 0x834f, 0x8351, 0x8353, /* $B%,(J*/
241: ! 0x8355, 0x8357, 0x8359, 0x835b, 0x835d, /* $B%6(J */
242: ! 0x835f, 0x8361, 0x8364, 0x8366, 0x8367, /* $B%@(J */
243: ! 0x836f, 0x8372, 0x8375, 0x8378, 0x837b}; /* $B%P(J */
244: ! int handaku[] = {0x8370, 0x8373, 0x8376, 0x8379, 0x837c}; /* $B%Q(J */
245: ! int dakuall[] = {0x82aa, 0xa2ac, 0x82a3, 0x82b0, 0x82b2, /* $B$,(J */
246: ! 0x82b4, 0x82b6, 0x82b8, 0x82ba, 0x82bc, /* $B$6(J */
247: ! 0x82be, 0x82c0, 0x82c3, 0x82c5, 0x82c7, /* $B$@(J */
248: ! 0x82ce, 0x82d1, 0x82d4, 0x82d7, 0x82da, /* $B$P(J */
249: !
250: ! 0x834b, 0x834d, 0x834f, 0x8351, 0x8353, /* $B%,(J*/
251: ! 0x8355, 0x8357, 0x8359, 0x835b, 0x835d, /* $B%6(J */
252: ! 0x835f, 0x8361, 0x8364, 0x8366, 0x8367, /* $B%@(J */
253: ! 0x836f, 0x8372, 0x8375, 0x8378, 0x837b}; /* $B%P(J */
254: ! int handakuall[] = {0x82cf, 0x82d2, 0x82d5, 0x82d8, 0x82db, /* $B$Q(J */
255: ! 0x8370, 0x8373, 0x8376, 0x8379, 0x837c}; /* $B%Q(J */
256: !
257: ! iskanji(c) /* japanses extention */
258: ! int c;
259: ! {
260: ! c &= 0xff;
261: ! if (( c >= 0x81 && c <= 0x9f ) ||
262: ! ( c >= 0xe0 && c <= 0xea )) return 1;
263: ! return 0;
264: ! }
265: !
266: ! is201kana(c) /* japanses extention */
267: ! int c;
268: ! {
269: ! if ( c >= 0xa0 && c <= 0xdf ) return 1;
270: ! else return 0;
271: ! }
272: ! #endif
273: !
274: !
275: ! kana_char_order() /* japanese */
276: ! {
277: ! unsigned int c,i,j,cc;
278: !
279: ! for ( c = 0x8000 ; c < 0x10000 ; c++ )
280: ! char_order[c] = c;
281: !
282: ! /* NUMERIC */
283: ! for ( c = JIS_NUM_0 , i = '0' + 512; c <= JIS_NUM_9 ; i++,c++)
284: ! char_order[c] = i;
285: !
286: ! /* ALPHABET */
287: ! for ( c = JIS_ALPH_A , i = 'a' + 512; c <= JIS_ALPH_Z ; i++,c++) {
288: ! char_order[c] = i;
289: ! char_order[c+JIS_ALPH_a - JIS_ALPH_A] = i;
290: ! }
291: !
292: ! /* KANA */
293: ! for ( c = JIS_HIRA_SMALL_A ; c <= JIS_HIRA_NN ; c++ ) {
294: ! char_order[c] = c+512;
295: ! cc = c+JIS_KATA_SMALL_A-JIS_HIRA_SMALL_A;
296: ! #ifdef SJIS
297: ! if ( cc > 0x837e ) cc ++;
298: ! #endif
299: ! char_order[cc] = c+512;
300: ! if (isdaku(c) ) {
301: ! char_order[c] = c+512-1;
302: ! char_order[cc] = c+512-1;
303: ! } else if (ishandaku(c) ) {
304: ! char_order[c] = c+512-2;
305: ! char_order[cc] = c+512-2;
306: ! }
307: ! }
308: ! for ( c = JIS_KATA_VU ; c <= JIS_KATA_SMALL_KE ; c++ ) {
309: ! char_order[c] = c+512;
310: ! if (c == JIS_KATA_VU ) {
311: ! char_order[c] = JIS_KATA_U + 512;
312: ! }
313: ! }
314: ! }
315: !
316: !
317: ! #ifdef EUC
318: ! #define KANA_BYTES 2
319: ! #else
320: ! #define KANA_BYTES 2
321: ! #endif
322:
323: + static convert_htoz(str,ret)
324: + unsigned char *str;
325: + int *ret;
326: + {
327: + int c,c2;
328: +
329: + int num = KANA_BYTES;
330: +
331: + #ifdef EUC
332: + str++;
333: + #endif
334: + c = *str++;
335: + if (!is201kana(*str)) {
336: + if (c >= 0xa0 && c <= 0xdf)
337: + *ret = kana[c - 0xa0];
338: + else *ret = 0x8e00 + c;
339: + return num;
340: + }
341: + #ifdef EUC
342: + str++;
343: + #endif
344: + num += KANA_BYTES;
345: +
346: + if ( (c2 = *str++) == 0xde) { /* $BByE@(J */
347: + if (c >= 0xb6 && c <= 0xba) /* line-ga */
348: + c = daku[c - 0xb6];
349: + else if (c >= 0xbb && c <= 0xbf) /* line-za */
350: + c = daku[c - 0xbb+5];
351: + else if (c >= 0xc0 && c <= 0xc4) /* line-da */
352: + c = daku[c - 0xc0+10];
353: + else if (c >= 0xca && c <= 0xce) /* line-ba */
354: + c = daku[c - 0xca+15];
355: + else if ( c == 0xb3 ) /* vu */
356: + c = JIS_KATA_VU;
357: + } else if (c2 == 0xdf) { /* $BH>ByE@(J */
358: + if (c >= 0xca && c <= 0xce) /* line-pa */
359: + c = handaku[c - 0xca];
360: + } else if ( c2 == 0xb1 ) { /* $BD92;(J */
361: + if (c >= 0xa0 && c <= 0xdd)
362: + *ret = kana[c - 0xa0];
363: + else *ret = 0x8e00 + c;
364: + }
365: + if ( c < 0x100 ) c += 0x8e00;
366: +
367: + return num;
368: + }
369: +
370: + isadddaku(c)
371: + {
372: + int i;
373: + for ( i = 0 ; i < sizeof(dakuall) / sizeof(dakuall[1]) ; i++ )
374: + if ( dakuall[i]-1 == c ) return 1;
375: + return 0;
376: + }
377: +
378: + isaddhandaku(c)
379: + {
380: + int i;
381: + for ( i = 0 ; i < sizeof(handakuall) / sizeof(handakuall[1]) ; i++ )
382: + if ( handakuall[i]-2 == c ) return 1;
383: + return 0;
384: + }
385: +
386: + isdaku(c)
387: + {
388: + int i;
389: + for ( i = 0 ; i < sizeof(dakuall) / sizeof(dakuall[1]) ; i++ )
390: + if ( dakuall[i] == c ) return 1;
391: + return 0;
392: + }
393: +
394: + ishandaku(c)
395: + {
396: + int i;
397: + for ( i = 0 ; i < sizeof(handakuall) / sizeof(handakuall[1]) ; i++ )
398: + if ( handakuall[i] == c ) return 1;
399: + return 0;
400: + }
401: +
402: + int mbchar(str,ret)
403: + unsigned char *str;
404: + int *ret;
405: + {
406: + int c = *str++;
407: + int cc,ccc;
408: + if ( !iskanji(c) && !is201kana(c)) {
409: + *ret = c & 0xff;
410: + return 1;
411: + }
412: + if ( iskanji (c) ) {
413: + cc = ((c & 0xff) << 8) | ((*str++) & 0xff);
414: + ccc = (((*str++ ) & 0xff) << 8 ) | ((*str++) & 0xff);
415: +
416: + if ( ccc == JIS_DAKUTEN ) {
417: + if ( isadddaku(cc)) cc++;
418: + else if ( cc == JIS_KATA_U || cc == JIS_HIRA_U )
419: + cc = JIS_KATA_VU;
420: + *ret = cc;
421: + return 4;
422: + } else if ( ccc == JIS_HANDAKUTEN ) {
423: + if ( isaddhandaku(cc)) cc+=2;
424: + *ret = cc;
425: + return 4;
426: + } else if ( ccc == JIS_CHOUON ) {
427: + *ret = cc;
428: + return 4;
429: + } else {
430: + *ret = cc;
431: + return 2;
432: + }
433: + } else if ( is201kana(c)) {
434: + /* EUC */
435: + return convert_htoz(str-1,ret);
436: + }
437: + }
438: +
439: + xinitial(str,c)
440: + unsigned char *str;
441: + int c;
442: + {
443: + int up;
444: + if (isdaku(c)) c--;
445: + else if (ishandaku(c)) c-=2;
446: + else if ( c == JIS_KATA_VU ) c = JIS_KATA_U;
447: +
448: + if ((up= (c & 0xff00) >>8) == JIS_KATA_UPPER ) { /* katakana */
449: + c += JIS_HIRA_SMALL_A - JIS_KATA_SMALL_A;
450: + #ifdef SJIS
451: + if ( c > 0x837e ) c ++;
452: + #endif
453: + }
454: + *str++ = (c >> 8 ) & 0xfff;
455: + *str++ = c & 0xff;
456: + *str= 0;
457: + }
458: +
459: + make_initial(src,dst)
460: + unsigned char *src,*dst;
461: + {
462: + int len;
463: + int c;
464: +
465: + len = mbchar(src,&c);
466: + if ( len == 1 ) {
467: + dst[0] =c;
468: + dst[1] = 0;
469: + } else {
470: + xinitial(dst,c);
471: + len = 2;
472: + }
473: + return len;
474: + }
475: + #endif
476: +
477: void
478: init_char_order ()
479: {
480: ***************
481: *** 695,700 ****
482: --- 1081,1089 ----
483: char_order[i] = 512 + i;
484: char_order[i + 'A' - 'a'] = 512 + i;
485: }
486: + #ifdef KANJI
487: + kana_char_order(); /* japanese */
488: + #endif
489: }
490:
491: /* Compare two fields (each specified as a start pointer and a character count)
492: ***************
493: *** 741,751 ****
494: if (p1 == e1)
495: c1 = 0;
496: else
497: c1 = *p1++;
498: if (p2 == e2)
499: c2 = 0;
500: else
501: ! c2 = *p2++;
502:
503: if (char_order[c1] != char_order[c2])
504: return char_order[c1] - char_order[c2];
505: --- 1130,1149 ----
506: if (p1 == e1)
507: c1 = 0;
508: else
509: + #ifdef KANJI
510: + p1 += mbchar(p1,&c1); /* japanese */
511: + #else
512: c1 = *p1++;
513: + #endif
514: +
515: if (p2 == e2)
516: c2 = 0;
517: else
518: ! #ifdef KANJI
519: ! p2 += mbchar(p2,&c2); /* japanese */
520: ! #else
521: ! c2 = *p2++;
522: ! #endif
523:
524: if (char_order[c1] != char_order[c2])
525: return char_order[c1] - char_order[c2];
526: ***************
527: *** 763,777 ****
528: if (p1 == e1)
529: c1 = 0;
530: else
531: c1 = *p1++;
532: if (p2 == e2)
533: c2 = 0;
534: else
535: ! c2 = *p2++;
536: !
537: ! if (c1 != c2)
538: ! /* Reverse sign here so upper case comes out last. */
539: ! return c2 - c1;
540: if (!c1)
541: break;
542: }
543: --- 1161,1194 ----
544: if (p1 == e1)
545: c1 = 0;
546: else
547: + #ifdef KANJI
548: + p1 += mbchar(p1,&c1); /* japanese */
549: + #else
550: c1 = *p1++;
551: + #endif
552: if (p2 == e2)
553: c2 = 0;
554: else
555: ! #ifdef KANJI
556: ! p2 += mbchar(p2,&c2); /* japanese */
557: ! #else
558: ! c2 = *p2++;
559: ! #endif
560: ! #ifdef KANJI
561: ! if ( iskanji(c1) || is201kana(c1)) {
562: ! if (c1 != c2)
563: ! /* Reverse sign here so upper case comes out last. */
564: ! return c2 - c1;
565: ! } else {
566: ! if (c1 != c2)
567: ! return c1 - c2;
568: ! }
569: ! #else
570: !
571: ! if (c1 != c2)
572: ! /* Reverse sign here so upper case comes out last. */
573: ! return c2 - c1;
574: ! #endif
575: if (!c1)
576: break;
577: }
578: ***************
579: *** 1135,1141 ****
580: /* When we need a string of length 1 for the value of lastinitial,
581: store it here. */
582:
583: ! char lastinitial1[2];
584:
585: /* Initialize static storage for writing an index. */
586:
587: --- 1552,1558 ----
588: /* When we need a string of length 1 for the value of lastinitial,
589: store it here. */
590:
591: ! char lastinitial1[3]; /* japanese */
592:
593: /* Initialize static storage for writing an index. */
594:
595: ***************
596: *** 1168,1174 ****
597: int nosecondary;
598: int initiallength;
599: char *initial;
600: ! char initial1[2];
601: register char *p;
602:
603: /* First, analyze the parts of the entry fed to us this time. */
604: --- 1585,1591 ----
605: int nosecondary;
606: int initiallength;
607: char *initial;
608: ! char initial1[3]; /* japanese */
609: register char *p;
610:
611: /* First, analyze the parts of the entry fed to us this time. */
612: ***************
613: *** 1184,1193 ****
614: else
615: {
616: initial = initial1;
617: initial1[0] = *p;
618: initial1[1] = 0;
619: initiallength = 1;
620: !
621: if (initial1[0] >= 'a' && initial1[0] <= 'z')
622: initial1[0] -= 040;
623: }
624: --- 1601,1615 ----
625: else
626: {
627: initial = initial1;
628: + #ifdef KANJI
629: + initiallength = make_initial(p,initial1); /* japanese */
630: + #else
631: + initial = initial1;
632: initial1[0] = *p;
633: initial1[1] = 0;
634: initiallength = 1;
635: ! #endif
636: !
637: if (initial1[0] >= 'a' && initial1[0] <= 'z')
638: initial1[0] -= 040;
639: }
640: ***************
641: *** 1227,1232 ****
642: --- 1649,1656 ----
643: {
644: lastinitial = lastinitial1;
645: *lastinitial1 = *initial1;
646: + lastinitial1[1] = initial1[1];
647: + lastinitial1[2] = initial1[2];
648: }
649: else
650: {
651: --------------------------------(cur me)-----------------------------
652: --
653: ___ $B$o$7$O!";3?a?'$N$+$9$F!<$i$,Bg9%$-$G$N$%(J
654: [[o o]] $B$U$)$C$U$)$C$U$)(J
655: 'J' $B?92<(J $B$*Be41MM(J $B#M#a#N#M#O#S(J $B1QIW!w#k#n#o#w#l#e#d#g#e(J
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>