*** ./JPPatchlevel.orig Mon Dec 21 18:55:34 1992 --- ./JPPatchlevel Fri Dec 18 21:47:03 1992 *************** *** 0 **** --- 1 ---- + MH.6.8 Japanization-patch.1 *** ./config/version.sh.orig Fri Dec 18 21:39:50 1992 --- ./config/version.sh Mon Dec 21 17:00:47 1992 *************** *** 39,44 **** --- 39,48 ---- rm -f version.c + : patch by takada@seraph.ntt.jp and hayashi@kuic.kyoto-u.ac.jp -- 92/12/21 + echo "#ifndef JAPAN" > version.c + : end of patch + cat version ${Patch} |\ awk -F. ' BEGIN { split ("'"${1}"'", ver, ".");\ *************** *** 48,60 **** END { local++;\ if (patch > 0) {\ printf "char *version = \"@(#)MH %s.%s.%s #%d[UCI]", \ ! major, minor, patch, local > "version.c"; \ printf ".ds MH %s.%s.%s #%d[UCI]\n", \ major, minor, patch, local > "../doc/version.rf"; \ printf "MH %s.%s.%s #%d[UCI]\n", major, minor, patch, local ;\ } else {\ printf "char *version = \"@(#)MH %s.%s #%d[UCI] ", \ ! major, minor, local > "version.c"; \ printf ".ds MH %s.%s #%d[UCI]\n", \ major, minor, local > "../doc/version.rf"; \ printf "MH %s.%s #%d[UCI]\n", major, minor, local ;\ --- 52,64 ---- END { local++;\ if (patch > 0) {\ printf "char *version = \"@(#)MH %s.%s.%s #%d[UCI]", \ ! major, minor, patch, local >> "version.c"; \ printf ".ds MH %s.%s.%s #%d[UCI]\n", \ major, minor, patch, local > "../doc/version.rf"; \ printf "MH %s.%s.%s #%d[UCI]\n", major, minor, patch, local ;\ } else {\ printf "char *version = \"@(#)MH %s.%s #%d[UCI] ", \ ! major, minor, local >> "version.c"; \ printf ".ds MH %s.%s #%d[UCI]\n", \ major, minor, local > "../doc/version.rf"; \ printf "MH %s.%s #%d[UCI]\n", major, minor, local ;\ *************** *** 65,67 **** --- 69,100 ---- x) echo ' ('$LOCAL') of '`date`'";' >> version.c ;; x-n) echo '";' >> version.c ;; esac + + : patch by takada@seraph.ntt.jp and hayashi@kuic.kyoto-u.ac.jp -- 92/12/21 + echo "#else /* JAPAN */" >> version.c + + JPPatch="../JPPatchlevel" + if [ ! -r ${JPPatch} ]; then JPPatch="" ; fi + + cat version ${Patch} ${JPPatch} |\ + awk -F. ' + BEGIN { split ("'"${1}"'", ver, ".");\ + major = ver[1]; minor = ver[2]; patch = ver[3]} \ + NR == 1 { local = $(NF) } ;\ + NR == 2 { patch = $(NF) } ;\ + NR == 3 { jppatch = $(NF) } ;\ + END { if (patch > 0) {\ + printf "char *version = \"@(#)MH %s.%s.%s.JP%s #%d[UCI]", \ + major, minor, patch, jppatch, local >> "version.c"; \ + } else {\ + printf "char *version = \"@(#)MH %s.%s.JP%s #%d[UCI] ", \ + major, minor, jppatch, local >> "version.c"; \ + }\ + printf "Japanization Patchlevel %s\n", jppatch ; \ + }' + case x${flag} in + x) echo ' ('$LOCAL') of '`date`'";' >> version.c ;; + x-n) echo '";' >> version.c ;; + esac + echo "#endif /* JAPAN */" >> "version.c" + : end of patch *** ./h/formatsbr.h.orig Wed Dec 16 01:53:20 1992 --- ./h/formatsbr.h Mon Dec 21 17:33:57 1992 *************** *** 81,83 **** --- 81,89 ---- struct format *fmtscan (); char *new_fs (); + + /* patch by hayashi@kuic.kyoto-u.ac.jp & takada@seraph.ntt.jp (92/12/21) */ + /* originally patch by Hiroaki KOJIMA (hkojima@etl.jp) & tetsu@kuis.kyoto-u.ac.jp */ + #ifdef JAPAN + void eucfputs (); /* for KANJI */ + #endif /* JAPAN */ *** ./sbr/formatsbr.c.orig Fri Dec 18 21:39:59 1992 --- ./sbr/formatsbr.c Mon Dec 21 20:04:09 1992 *************** *** 283,289 **** --- 283,390 ---- } #endif + /* patch by hayashi@kuic.kyoto-u.ac.jp & takada@seraph.ntt.jp (92/12/21) */ + /* originally patch by Hiroaki KOJIMA (hkojima@etl.jp) & tetsu@kuis.kyoto-u.ac.jp */ + #ifdef JAPAN + #define ESC '\033' + #define FALSE 0 /* for KANJI */ + #define TRUE 1 /* for KANJI */ + + #undef PUTSF + #undef PUTS + + #define PUTSF(cp, str, wid, fill) {\ + kanji_in = FALSE;\ + ljust = 0;\ + if ((i = (wid)) < 0) {\ + i = -i;\ + ljust++;\ + }\ + if (sp = (str)) {\ + if (ljust) {\ + c = strlen(sp);\ + if (c > i)\ + sp += c - i;\ + else {\ + while( --i >= c && cp < ep)\ + *cp++ = fill;\ + i++;\ + }\ + } else {\ + while ((c = *sp)\ + && (iscntrl(c) || isspace(c))\ + && c != ESC)\ + sp++;\ + }\ + while ((c = *sp++) && --i >= 0 && cp < ep)\ + if (isgraph(c)) {\ + if (kanji_in)\ + *cp++ = (c | 0x0080);\ + else\ + *cp++ = c;\ + } else if (c == ESC) {\ + if ((*sp & 0x00ff) == '$'\ + && ((*(sp+1) & 0x00ff) == '@'\ + || (*(sp+1) & 0x00ff) == 'B')) {\ + kanji_in = TRUE;\ + sp += 2;\ + } else if ((*sp & 0x00ff) == '('\ + && ((*(sp+1) & 0x00ff) == 'J'\ + || (*(sp+1) & 0x00ff) == 'B')) {\ + kanji_in = FALSE;\ + sp += 2;\ + } else\ + *cp++ = c;\ + } else {\ + while ((c = *sp)\ + && (iscntrl(c) || isspace(c))\ + && c != ESC)\ + sp++;\ + *cp++ = ' ';\ + }\ + }\ + if (!ljust)\ + while( --i >= 0 && cp < ep)\ + *cp++ = fill;\ + } + #define PUTS(cp, str) {\ + if (sp = (str)) {\ + while ((c = *sp & 0x00ff)\ + && (iscntrl(c) || isspace(c))\ + && c != ESC)\ + sp++;\ + while( (c = *sp++) && cp < ep)\ + if (isgraph(c)) {\ + if (kanji_in)\ + *cp++ = (c | 0x0080);\ + else\ + *cp++ = c;\ + } else if (c == ESC) {\ + if ((*sp & 0x00ff) == '$'\ + && ((*(sp+1) & 0x00ff) == '@'\ + || (*(sp+1) & 0x00ff) == 'B')) {\ + kanji_in = TRUE;\ + sp += 2;\ + } else if ((*sp & 0x00ff) == '('\ + && ((*(sp+1) & 0x00ff) == 'J'\ + || (*(sp+1) & 0x00ff) == 'B')) {\ + kanji_in = FALSE;\ + sp += 2;\ + } else\ + *cp++ = c;\ + } else {\ + while ((c = *sp & 0x00ff)\ + && (iscntrl(c) || isspace(c))\ + && c != ESC)\ + sp++;\ + *cp++ = ' ';\ + }\ + }\ + } + #endif /* JAPAN */ + /* end of patch */ + static char *lmonth[] = { "January", "February","March", "April", "May", "June", "July", "August", "September","October", "November","December" }; *************** *** 359,364 **** --- 460,469 ---- char *savestr; char buffer[BUFSIZ]; + #ifdef JAPAN + int kanji_in = FALSE; + #endif /* JAPAN */ + while (cp < ep) { switch (fmt->f_type) { *************** *** 371,377 **** --- 476,486 ---- case FT_LIT: sp = fmt->f_text; + #ifdef JAPAN + while( (c = *sp++ & 0x00ff) && cp < ep) + #else /* JAPAN */ while( (c = *sp++) && cp < ep) + #endif /* JAPAN */ *cp++ = c; break; case FT_LITF: *************** *** 791,797 **** --- 900,910 ---- sp = fmt->f_text; indent = strlen (sp); wid -= indent; + #ifdef JAPAN + while( (c = *sp++ & 0x00ff) && cp < ep) + #else /* JAPAN */ while( (c = *sp++) && cp < ep) + #endif /* JAPAN */ *cp++ = c; while (len > wid) { /* try to break at a comma; failing that, break at a *************** *** 798,804 **** --- 911,921 ---- * space, failing that, just split the line. */ lastb = 0; sp = lp + wid; + #ifdef JAPAN + while (sp > lp && (c = *--sp & 0x00ff) != ',') { + #else /* JAPAN */ while (sp > lp && (c = *--sp) != ',') { + #endif /* JAPAN */ if (! lastb && isspace(c)) lastb = sp - 1; } *************** *** 890,892 **** --- 1007,1061 ---- #endif /* JLR */ } + + + /* patch by hayashi@kuic.kyoto-u.ac.jp & takada@seraph.ntt.jp (92/12/21) */ + /* originally patch by Hiroaki KOJIMA (hkojima@etl.jp) & tetsu@kuis.kyoto-u.ac.jp */ + #ifdef JAPAN + void + eucfputs(scanlk, stream) + char *scanlk; + FILE *stream; + { + int kanji_in = 0; + + while(*scanlk) { + if (kanji_in) { + if (*scanlk & 0x80) { + if (kanji_in == 1) { + kanji_in = 2; + putc(*scanlk++ & 0x7F, stream); + } else { + if (*(scanlk+1) & 0x80) { + kanji_in = 1; + putc(*scanlk++ & 0x7F, stream); + } else { + kanji_in = 0; + fprintf(stream, "\033(J"); + scanlk++; + } + } + } else { + kanji_in = 0; + fprintf(stream, "\033(J"); + putc(*scanlk++, stream); + } + } else { + if (*scanlk & 0x80) { + if (*(scanlk+1) & 0x80) { + kanji_in = 1; + fprintf(stream, "\033$B"); + putc(*scanlk++ & 0x7F, stream); + } else { + kanji_in = 0; + putc(' ', stream); + scanlk++; + } + } else { + putc(*scanlk++, stream); + } + } + } + } + #endif /* JAPAN */ + /* end of patch */ *** ./sbr/m_getfld.c.orig Wed Dec 16 01:55:18 1992 --- ./sbr/m_getfld.c Mon Dec 21 17:31:18 1992 *************** *** 379,385 **** --- 379,389 ---- * (excluding the first and last), we do only one test. */ ep = bp + c - 1; + #ifdef JAPAN + if (sp = pat_map[*ep & 0x00ff]) { + #else /* JAPAN */ if (sp = pat_map[*ep]) { + #endif /* JAPAN */ do { cp = sp; while (*--ep == *--cp) *** ./uip/scansbr.c.orig Fri Dec 18 21:40:06 1992 --- ./uip/scansbr.c Mon Dec 21 17:59:47 1992 *************** *** 318,324 **** --- 318,328 ---- bodycomp->c_text = saved_c_text; } if (noisy) + #ifdef JAPAN + eucfputs (scanl, stdout); /* for KANJI */ + #else /* JAPAN */ (void) fputs (scanl, stdout); + #endif /* JAPAN */ FINDCOMP (cptr, "encrypted"); encrypted = cptr && cptr -> c_text; *** ./uip/ap.c.orig Wed Dec 16 01:55:53 1992 --- ./uip/ap.c Mon Dec 21 17:59:53 1992 *************** *** 205,211 **** --- 205,215 ---- cptr -> c_text = p -> pq_error; (void) fmtscan (fmt, buffer, length, dat); + #ifdef JAPAN + eucfputs (buffer, stdout); /* for KANJI */ + #else /* JAPAN */ (void) fputs (buffer, stdout); + #endif /* JAPAN */ free (p -> pq_text); if (p -> pq_error) *** ./uip/dp.c.orig Wed Dec 16 01:55:55 1992 --- ./uip/dp.c Mon Dec 21 17:59:52 1992 *************** *** 155,161 **** --- 155,165 ---- if (cptr) cptr -> c_text = date; (void) fmtscan (fmt, buffer, length, dat); + #ifdef JAPAN + eucfputs (buffer, stdout); /* for KANJI */ + #else /* JAPAN */ (void) fputs (buffer, stdout); + #endif /* JAPAN */ return status; } *** ./uip/forw.c.orig Wed Dec 16 01:55:56 1992 --- ./uip/forw.c Mon Dec 21 17:59:51 1992 *************** *** 675,681 **** --- 675,685 ---- if ((line = malloc ((unsigned) fmtsize)) == NULLCP) adios (NULLCP, "unable to allocate format line storage"); (void) fmtscan (fmt, line, fmtsize, dat); + #ifdef JAPAN + eucfputs (line, tmp); /* for KANJI */ + #else /* JAPAN */ (void) fputs (line, tmp); + #endif /* JAPAN */ (void) free (line); if (fclose (tmp)) adios (tmpfil, "error writing"); *** ./uip/inc.c.orig Wed Dec 16 01:55:57 1992 --- ./uip/inc.c Mon Dec 21 17:55:13 1992 *************** *** 624,633 **** --- 624,641 ---- case SCNENC: default: if (aud) + #ifdef JAPAN + eucfputs (scanl, aud); /* for KANJI */ + #else /* JAPAN */ fputs (scanl, aud); + #endif /* JAPAN */ #ifdef MHE if (mhe) + #ifdef JAPAN + eucfputs (scanl, mhe); /* for KANJI */ + #else /* JAPAN */ fputs (scanl, mhe); + #endif /* JAPAN */ #endif /* MHE */ if (noisy) (void) fflush (stdout); *************** *** 708,714 **** --- 716,726 ---- case SCNERR: if (aud) + #ifdef JAPAN + eucfputs ("inc aborted!\n", aud); /* for KANJI */ + #else /* JAPAN */ fputs ("inc aborted!\n", aud); + #endif /* JAPAN */ advise (NULLCP, "aborted!"); /* doesn't clean up locks! */ break; *************** *** 725,734 **** --- 737,754 ---- case SCNMSG: case SCNENC: if (aud) + #ifdef JAPAN + eucfputs (scanl, aud); /* for KANJI */ + #else /* JAPAN */ fputs (scanl, aud); + #endif /* JAPAN */ #ifdef MHE if (mhe) + #ifdef JAPAN + eucfputs (scanl, mhe); /* for KANJI */ + #else /* JAPAN */ fputs (scanl, mhe); + #endif /* JAPAN */ #endif /* MHE */ if (noisy) (void) fflush (stdout); *** ./uip/rcvdist.c.orig Wed Dec 16 01:56:03 1992 --- ./uip/rcvdist.c Mon Dec 21 17:59:50 1992 *************** *** 273,279 **** --- 273,283 ---- dat[0] = dat[1] = dat[2] = dat[4] = 0; dat[3] = outputlinelen; (void) fmtscan (fmt, scanl, i, dat); + #ifdef JAPAN + eucfputs (scanl, out); /* for KANJI */ + #else /* JAPAN */ fputs (scanl, out); + #endif /* JAPAN */ if (ferror (out)) adios (drft, "error writing"); *** ./uip/replsbr.c.orig Wed Dec 16 01:56:04 1992 --- ./uip/replsbr.c Mon Dec 21 17:59:49 1992 *************** *** 225,231 **** --- 225,235 ---- dat[0] = dat[1] = dat[2] = dat[4] = 0; dat[3] = outputlinelen; (void) fmtscan (fmt, scanl, i, dat); + #ifdef JAPAN + eucfputs (scanl, out); /* for KANJI */ + #else /* JAPAN */ fputs (scanl, out); + #endif /* JAPAN */ if (badaddrs) { fputs ("\nrepl: bad addresses:\n", out); fputs ( badaddrs, out); *** ./zotnet/tws/dtime.c.orig Mon Dec 21 11:49:32 1992 --- ./zotnet/tws/dtime.c Mon Dec 21 20:06:12 1992 *************** *** 71,76 **** --- 71,81 ---- "CST", "CDT", -6, "MST", "MDT", -7, "PST", "PDT", -8, + /* patch by takada@seraph.ntt.jp & hayashi@kuic.kyoto-u.ac.jp (92/12/21) */ + /* originally patch by tetsu@kuis.kyoto-u.ac.jp */ + #ifdef JAPAN + "JST", NULL, 9, + #endif /* JAPAN */ #ifdef notdef /* RFC1123 specifies do not use military TZs */ "A", NULL, -1, "B", NULL, -2, *** ./zotnet/tws/dtimep.lex.orig Mon Dec 21 11:50:02 1992 --- ./zotnet/tws/dtimep.lex Mon Dec 21 20:06:35 1992 *************** *** 346,352 **** } "-"?ut ZONE(0 * 60); "-"?gmt ZONE(0 * 60); ! "-"?jst ZONE(2 * 60); "-"?jdt ZONED(2 * 60); "-"?est ZONE(-5 * 60); "-"?edt ZONED(-5 * 60); --- 346,360 ---- } "-"?ut ZONE(0 * 60); "-"?gmt ZONE(0 * 60); ! "-"?jst { ! /* patch by takada@seraph.ntt.jp & hayashi@kuic.kyoto-u.ac.jp (92/12/21) */ ! /* originally patch by tetsu@kuis.kyoto-u.ac.jp */ ! #ifdef JAPAN ! ZONE(9 * 60); ! #else /* JAPAN */ ! ZONE(2 * 60); ! #endif /* JAPAN */ ! } "-"?jdt ZONED(2 * 60); "-"?est ZONE(-5 * 60); "-"?edt ZONED(-5 * 60);