summaryrefslogtreecommitdiff
path: root/language/japanese/ptex/kanji.c
diff options
context:
space:
mode:
Diffstat (limited to 'language/japanese/ptex/kanji.c')
-rw-r--r--language/japanese/ptex/kanji.c233
1 files changed, 0 insertions, 233 deletions
diff --git a/language/japanese/ptex/kanji.c b/language/japanese/ptex/kanji.c
deleted file mode 100644
index c14562fb44..0000000000
--- a/language/japanese/ptex/kanji.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * KANJI Code conversion routines.
- */
-
-#define KANJI_C
-#include "kanji.h"
-
-boolean iskanji1(c)
- unsigned char c;
-{
- c &= 0xff;
- if (prockanjicode == SJIS)
- return((c>=0x81 && c<=0x9f) || (c>=0xe0 && c<=0xfc));
- else
- return(c>=0xa1 && c<=0xfe);
-}
-
-boolean iskanji2(c)
- unsigned char c;
-{
- c &= 0xff;
- if (prockanjicode == SJIS)
- return(c>=0x40 && c<=0xfc && c!=0x7f);
- else
- return(c>=0xa1 && c<=0xfe);
-}
-
-boolean checkkanji(c)
- integer c;
-{
- if(c<0 || c>256)
- return(iskanji1(c>>8) && iskanji2(c & 0xff));
- return(-1);
-}
-
-#ifdef OLDSTYLE
-integer calcpos(c)
-{
- register int c1, c2;
-
- if(c<256) return(c<<1);
- c1 = c>>8;
- c2 = c & 0xff;
- if(c1) {
- if (prockanjicode == SJIS)
- return((c2+(c2<<(c1-0x81)) & 0xff)<<1);
- else
- return((c2+(c2<<(c1-0xa1)) & 0xff)<<1);
- } else
- return(((c2+c2+1) & 0xff)<<1);
-}
-#else /* OLDSTYLE */
-integer calcpos(c)
- integer c;
-{
- register unsigned char c1, c2;
- integer ret;
-
- if(c>=0 && c<=255) return(c);
- c1 = (c >> 8) & 0xff;
- c2 = c & 0xff;
- if(iskanji1(c1)) {
- if (prockanjicode == SJIS) {
- c1 = ((c1 - 0x81) % 4) * 64; /* c1 = 0, 64, 128, 192 */
- c2 = c2 % 64; /* c2 = 0..63 */
- } else {
- c1 = ((c1 - 0xa1) % 4) * 64; /* c1 = 0, 64, 128, 192 */
- c2 = c2 % 64; /* c2 = 0..63 */
- }
- return(c1 + c2); /* ret = 0..255 */
- } else
- return(c2);
-}
-#endif /* OLDSTYLE */
-
-/*
- * EUC to JIS X0208 code conversion
- */
-integer EUCtoJIS(kcode)
- integer kcode;
-{
- return(kcode & 0x7f7f);
-}
-
-/*
- * JIS X0208 to EUC code conversion
- */
-integer JIStoEUC(kcode)
- integer kcode;
-{
- return(kcode | 0x8080);
-}
-
-/*
- * SJIStoJIS : Shift JIS to JIS Kanji code conversion
- */
-integer SJIStoJIS(kcode)
- integer kcode;
-{
- register short byte1, byte2;
-
- byte1 = (kcode>>8) & 0xff;
- byte2 = kcode & 0xff;
- byte1 -= ( byte1>=0xa0 ) ? 0xc1 : 0x81;
- kcode = ((byte1<<1) + 0x21)<<8;
- if( byte2>=0x9f ) {
- kcode += 0x0100;
- kcode |= (byte2 - 0x7e) & 0xff;
- } else {
- kcode |= (byte2 - ((byte2<=0x7e) ? 0x1f : 0x20 )) & 0xff;
- }
- return(kcode);
-}
-
-/*
- * JIS X0208 to Shift JIS code conversion
- */
-integer JIStoSJIS(kcode)
- integer kcode;
-{
- register integer high, low;
- register integer nh, nl;
-
- high = (kcode>>8) & 0xff;
- low = kcode & 0xff;
- nh = ((high-0x21)>>1) + 0x81;
- if (nh>0x9f) nh += 0x40;
- if (high & 1) {
- nl = low + 0x1f;
- if (low>0x5f) nl++;
- } else
- nl = low + 0x7e;
- if(iskanji1(nh) && iskanji2(nl))
- return((nh<<8) | nl);
- else
- return(0x813f);
-}
-
-/*
- * Shift JIS to EUC Kanji code conversion
- */
-integer SJIStoEUC(kcode)
- integer kcode;
-{
- return(SJIStoJIS(kcode) | 0x8080 );
-}
-
-/*
- * EUC to SJIS Kanji code conversion
- */
-integer EUCtoSJIS(kcode)
- integer kcode;
-{
- return(JIStoSJIS(kcode & 0x7f7f));
-}
-
-/*
- * KUTEN to JIS kanji code conversion
- */
-integer kuten2jis(kcode)
- integer kcode;
-{
- register short byte1, byte2;
-
- byte1 = (kcode>>8) & 0xff;
- byte2 = kcode & 0xff;
-
- /* in case of undefined in kuten code table */
- if (byte1 == 0 || byte1 > 95 || byte2 == 0 || byte2 > 95)
- return(-1);
-
- byte1 += 0x20;
- byte2 += 0x20;
-
- return (byte1<<8 | byte2);
-}
-
-/*
- * KUTEN to EUC Kanji code conversion
- */
-integer KUTENtoEUC(kcode)
- integer kcode;
-{
- return(JIStoEUC(kuten2jis(kcode)));
-}
-
-/*
- * KUTENtoSJIS Kanji code conversion
- */
-integer KUTENtoSJIS(kcode)
- integer kcode;
-{
- return(JIStoSJIS(kuten2jis(kcode)));
-}
-
-void putc2(c, fp)
- unsigned char c;
- FILE *fp;
-{
- static integer kanji[NOFILE];
- static unsigned char c1[NOFILE];
- integer jc;
- register fd;
-
- fd = fileno(fp);
- if (kanji[fd] == 1) {
- jc = (c1[fd] << 8) | c;
- if (prockanjicode == JIS) jc = EUCtoJIS(jc);
- (void) putc(jc >> 8, fp);
- (void) putc(jc & 0xff, fp);
- kanji[fd] = 2;
- } else if (iskanji1(c)) {
- if (kanji[fd] == 0) {
- if (prockanjicode == JIS) {
- (void) putc('\033', fp);
- (void) putc('$', fp);
- (void) putc('B', fp);
- }
- }
- c1[fd] = c;
- kanji[fd] = 1;
- } else {
- if (kanji[fd] == 2) {
- if (prockanjicode == JIS) {
- (void) putc('\033', fp);
- (void) putc('(', fp);
- (void) putc('B', fp);
- }
- kanji[fd] = 0;
- }
- (void) putc(c, fp);
- }
-}