home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume12 / kterm / part12 < prev    next >
Text File  |  1991-05-11  |  51KB  |  1,546 lines

  1. Path: uunet!cs.utexas.edu!sun-barr!newstop!jethro!exodus!NMSU.Edu!mleisher
  2. From: mleisher@NMSU.Edu
  3. Newsgroups: comp.sources.x
  4. Subject: v12i093: kterm  - kanji xterm, Part12/18
  5. Message-ID: <13145@exodus.Eng.Sun.COM>
  6. Date: 11 May 91 00:51:10 GMT
  7. References: <csx-12i082:kterm@uunet.UU.NET>
  8. Sender: news@exodus.Eng.Sun.COM
  9. Lines: 1534
  10. Approved: argv@sun.com
  11.  
  12. Submitted-by: mleisher@NMSU.Edu
  13. Posting-number: Volume 12, Issue 93
  14. Archive-name: kterm/part12
  15.  
  16. #!/bin/sh
  17. # this is kt412.12 (part 12 of kterm-4.1.2)
  18. # do not concatenate these parts, unpack them in order with /bin/sh
  19. # file kterm-4.1.2/input.c continued
  20. #
  21. if test ! -r _shar_seq_.tmp; then
  22.     echo 'Please unpack part 1 first!'
  23.     exit 1
  24. fi
  25. (read Scheck
  26.  if test "$Scheck" != 12; then
  27.     echo Please unpack part "$Scheck" next!
  28.     exit 1
  29.  else
  30.     exit 0
  31.  fi
  32. ) < _shar_seq_.tmp || exit 1
  33. if test ! -f _shar_wnt_.tmp; then
  34.     echo 'x - still skipping kterm-4.1.2/input.c'
  35. else
  36. echo 'x - continuing file kterm-4.1.2/input.c'
  37. sed 's/^X//' << 'SHAR_EOF' >> 'kterm-4.1.2/input.c' &&
  38. X    if (term->flags & EUC_KANJI && keysym>>8 == 4 && keysym & 0x80) {
  39. X        strbuf[1] = strbuf[0];
  40. X        strbuf[0] = SS2;
  41. X        nbytes = 2;
  42. X    }
  43. # endif /* KTERM_KANJI */
  44. #else /* !KTERM */
  45. X    nbytes = XLookupString ((XKeyEvent *)event, strbuf, STRBUFSIZE, 
  46. X        &keysym, &compose_status);
  47. #endif /* !KTERM */
  48. X
  49. X    string = &strbuf[0];
  50. X    reply.a_pintro = 0;
  51. X    reply.a_final = 0;
  52. X    reply.a_nparam = 0;
  53. X    reply.a_inters = 0;
  54. X
  55. X    if (IsPFKey(keysym)) {
  56. X        reply.a_type = SS3;
  57. X        unparseseq(&reply, pty);
  58. X        unparseputc((char)(keysym-XK_KP_F1+'P'), pty);
  59. X        key = TRUE;
  60. X    } else if (IsKeypadKey(keysym)) {
  61. X          if (keyboard->flags & KYPD_APL)    {
  62. X            reply.a_type   = SS3;
  63. X            unparseseq(&reply, pty);
  64. X            unparseputc(kypd_apl[keysym-XK_KP_Space], pty);
  65. X        } else
  66. X            unparseputc(kypd_num[keysym-XK_KP_Space], pty);
  67. X        key = TRUE;
  68. X        } else if (IsCursorKey(keysym) &&
  69. X            keysym != XK_Prior && keysym != XK_Next) {
  70. X               if (keyboard->flags & CURSOR_APL) {
  71. X            reply.a_type = SS3;
  72. X            unparseseq(&reply, pty);
  73. X            unparseputc(cur[keysym-XK_Left], pty);
  74. X        } else {
  75. X            reply.a_type = CSI;
  76. X            reply.a_final = cur[keysym-XK_Left];
  77. X            unparseseq(&reply, pty);
  78. X        }
  79. X        key = TRUE;
  80. X     } else if (IsFunctionKey(keysym) || IsMiscFunctionKey(keysym) ||
  81. X         keysym == XK_Prior || keysym == XK_Next ||
  82. X         keysym == DXK_Remove) {
  83. X        reply.a_type = CSI;
  84. X        reply.a_nparam = 1;
  85. X        if (sunFunctionKeys) {
  86. X            reply.a_param[0] = sunfuncvalue (keysym);
  87. X            reply.a_final = 'z';
  88. X        } else {
  89. X            reply.a_param[0] = funcvalue (keysym);
  90. X            reply.a_final = '~';
  91. X        }
  92. X        if (reply.a_param[0] > 0)
  93. X            unparseseq(&reply, pty);
  94. X        key = TRUE;
  95. X    } else if (nbytes > 0) {
  96. X        if(screen->TekGIN) {
  97. X            TekEnqMouse(*string++);
  98. X            TekGINoff();
  99. X            nbytes--;
  100. X        }
  101. X        if ((nbytes == 1) && eightbit) {
  102. X            if (screen->eight_bits)
  103. X              *string |= 0x80;    /* turn on eighth bit */
  104. X            else
  105. X              unparseputc (033, pty);  /* escape */
  106. X        }
  107. X        while (nbytes-- > 0)
  108. X            unparseputc(*string++, pty);
  109. X        key = TRUE;
  110. X    }
  111. X    if(key && !screen->TekEmu)
  112. X            AdjustAfterInput(screen);
  113. #ifdef ENABLE_PRINT
  114. X    if (keysym == XK_F2) TekPrint();
  115. #endif
  116. X    return;
  117. }
  118. X
  119. StringInput (screen, string)
  120. register TScreen    *screen;
  121. register char *string;
  122. {
  123. X    int    pty    = screen->respond;
  124. X    int    nbytes;
  125. X
  126. X    nbytes = strlen(string);
  127. X    if(nbytes && screen->TekGIN) {
  128. X        TekEnqMouse(*string++);
  129. X        TekGINoff();
  130. X        nbytes--;
  131. X    }
  132. X    while (nbytes-- > 0)
  133. X        unparseputc(*string++, pty);
  134. X    if(!screen->TekEmu)
  135. X            AdjustAfterInput(screen);
  136. }
  137. X
  138. static int funcvalue (keycode)
  139. X    int keycode;
  140. {
  141. X    switch (keycode) {
  142. X        case XK_F1:    return(11);
  143. X        case XK_F2:    return(12);
  144. X        case XK_F3:    return(13);
  145. X        case XK_F4:    return(14);
  146. X        case XK_F5:    return(15);
  147. X        case XK_F6:    return(17);
  148. X        case XK_F7:    return(18);
  149. X        case XK_F8:    return(19);
  150. X        case XK_F9:    return(20);
  151. X        case XK_F10:    return(21);
  152. X        case XK_F11:    return(23);
  153. X        case XK_F12:    return(24);
  154. X        case XK_F13:    return(25);
  155. X        case XK_F14:    return(26);
  156. X        case XK_F15:    return(28);
  157. X        case XK_Help:    return(28);
  158. X        case XK_F16:    return(29);
  159. X        case XK_Menu:    return(29);
  160. X        case XK_F17:    return(31);
  161. X        case XK_F18:    return(32);
  162. X        case XK_F19:    return(33);
  163. X        case XK_F20:    return(34);
  164. X
  165. X        case XK_Find :    return(1);
  166. X        case XK_Insert:    return(2);
  167. X        case XK_Delete:    return(3);
  168. X        case DXK_Remove: return(3);
  169. X        case XK_Select:    return(4);
  170. X        case XK_Prior:    return(5);
  171. X        case XK_Next:    return(6);
  172. X        default:    return(-1);
  173. X    }
  174. }
  175. X
  176. X
  177. static int sunfuncvalue (keycode)
  178. X    int keycode;
  179. X  {
  180. X      switch (keycode) {
  181. X        case XK_F1:    return(224);
  182. X        case XK_F2:    return(225);
  183. X        case XK_F3:    return(226);
  184. X        case XK_F4:    return(227);
  185. X        case XK_F5:    return(228);
  186. X        case XK_F6:    return(229);
  187. X        case XK_F7:    return(230);
  188. X        case XK_F8:    return(231);
  189. X        case XK_F9:    return(232);
  190. X        case XK_F10:    return(233);
  191. X        case XK_F11:    return(192);
  192. X        case XK_F12:    return(193);
  193. X        case XK_F13:    return(194);
  194. X        case XK_F14:    return(195);
  195. X        case XK_F15:    return(196);
  196. X        case XK_Help:    return(196);
  197. X        case XK_F16:    return(197);
  198. X        case XK_Menu:    return(197);
  199. X        case XK_F17:    return(198);
  200. X        case XK_F18:    return(199);
  201. X        case XK_F19:    return(200);
  202. X        case XK_F20:    return(201);
  203. X
  204. X        case XK_R1:    return(208);
  205. X        case XK_R2:    return(209);
  206. X        case XK_R3:    return(210);
  207. X        case XK_R4:    return(211);
  208. X        case XK_R5:    return(212);
  209. X        case XK_R6:    return(213);
  210. X        case XK_R7:    return(214);
  211. X        case XK_R8:    return(215);
  212. X        case XK_R9:    return(216);
  213. X        case XK_R10:    return(217);
  214. X        case XK_R11:    return(218);
  215. X        case XK_R12:    return(219);
  216. X        case XK_R13:    return(220);
  217. X        case XK_R14:    return(221);
  218. X        case XK_R15:    return(222);
  219. X  
  220. X        case XK_Find :    return(1);
  221. X        case XK_Insert:    return(2);
  222. X        case XK_Delete:    return(3);
  223. X        case DXK_Remove: return(3);
  224. X        case XK_Select:    return(4);
  225. X        case XK_Prior:    return(5);
  226. X        case XK_Next:    return(6);
  227. X        default:    return(-1);
  228. X    }
  229. }
  230. X
  231. SHAR_EOF
  232. echo 'File kterm-4.1.2/input.c is complete' &&
  233. chmod 0664 kterm-4.1.2/input.c ||
  234. echo 'restore of kterm-4.1.2/input.c failed'
  235. Wc_c="`wc -c < 'kterm-4.1.2/input.c'`"
  236. test 7832 -eq "$Wc_c" ||
  237.     echo 'kterm-4.1.2/input.c: original size 7832, current size' "$Wc_c"
  238. rm -f _shar_wnt_.tmp
  239. fi
  240. # ============= kterm-4.1.2/kconvert.c ==============
  241. if test -f 'kterm-4.1.2/kconvert.c' -a X"$1" != X"-c"; then
  242.     echo 'x - skipping kterm-4.1.2/kconvert.c (File already exists)'
  243.     rm -f _shar_wnt_.tmp
  244. else
  245. > _shar_wnt_.tmp
  246. echo 'x - extracting kterm-4.1.2/kconvert.c (Text)'
  247. sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/kconvert.c' &&
  248. /*
  249. X *    $Kagotani: /usr/src.yoshi/X/KTerm/4.1.0/RCS/kconvert.c,v 1.1 90/06/27 09:39:06 kagotani Rel $
  250. X *
  251. X * $Header: /usr/local/src/X11/contrib/clients/kterm-4.1.2/RCS/kconvert.c,v 1.3 1991/01/16 07:07:31 mleisher Exp $
  252. X */
  253. X
  254. /*
  255. X * Modified for Hanzi support:
  256. X * Mark Leisher mleisher@nmsu.edu Fri Nov  9 09:22:33 1990
  257. X */
  258. X
  259. /*
  260. X * Copyright (c) 1989  Software Research Associates, Inc.
  261. X *
  262. X * Permission to use, copy, modify, and distribute this software and its
  263. X * documentation for any purpose and without fee is hereby granted, provided
  264. X * that the above copyright notice appear in all copies and that both that
  265. X * copyright notice and this permission notice appear in supporting
  266. X * documentation, and that the name of Software Research Associates not be
  267. X * used in advertising or publicity pertaining to distribution of the
  268. X * software without specific, written prior permission.  Software Research
  269. X * Associates makes no representations about the suitability of this software
  270. X * for any purpose.  It is provided "as is" without express or implied
  271. X * warranty.
  272. X *
  273. X * Author:  Makoto Ishisone, Software Research Associates, Inc., Japan
  274. X *        ishisone@sra.co.jp
  275. X */
  276. X
  277. #include <X11/Xos.h>
  278. #include <X11/Xlib.h>
  279. #include <X11/Xatom.h>
  280. #include <X11/Xmu/Xmu.h>
  281. #include <stdio.h>
  282. #include <setjmp.h>
  283. #include <ctype.h>
  284. #include <X11/Intrinsic.h>
  285. #include "ptyx.h"
  286. #include "data.h"
  287. X
  288. #ifdef KTERM_KCONV
  289. X
  290. #ifdef KTERM_HANZI
  291. extern int    convCStoGB();
  292. extern int    convCStoSGB();
  293. extern int    convCStoBIG5();
  294. #endif /* KTERM_HANZI */
  295. #ifdef KTERM_HANGUL
  296. extern int    convCStoKS();
  297. #endif /* KTERM_HANGUL */
  298. extern void    _beginConversion();
  299. extern int    convCTtoCS();
  300. extern int    convCStoEUC();
  301. extern int    convCStoSJIS();
  302. extern int    convCStoJIS();
  303. X
  304. #ifdef KTERM_HANZI
  305. static Atom    chinese_conversion_atom;    /* CHINESE_CONVERSION */
  306. #endif /* KTERM_HANZI */
  307. static Atom    japanese_conversion_atom;    /* JAPANESE_CONVERSION */
  308. #ifdef KTERM_HANGUL
  309. static Atom    korean_conversion_atom;        /* KOREAN_CONVERSION */
  310. #endif /* KTERM_HANGUL */
  311. static Atom    compound_text_atom;        /* COMPOUND_TEXT */
  312. static int    atominitialized;
  313. X
  314. /* ARGSUSED */
  315. static void
  316. inputString(w, selection, type, format, size, str, client_data)
  317. Widget        w;
  318. Atom        selection;
  319. Atom        type;
  320. int        format;
  321. unsigned long    size;
  322. unsigned char    *str;
  323. caddr_t        client_data;
  324. {
  325. X    unsigned char    lbuf[256 + 1];
  326. X    unsigned char    *lstr, *p, *lp;
  327. X    int        n;
  328. X    int        (*convfunc)();
  329. X    int        pty = ((XtermWidget)w)->screen.respond;
  330. X
  331. X    if (str == NULL)
  332. X        return;
  333. X
  334. X    if (type == compound_text_atom && format == 8) {
  335. X        Ichr        cbuf[256 + 1];
  336. X        Ichr        *cs;
  337. X        n = convCTtoCS(str, size, NULL);
  338. X        cs = (n > 256) ? (Ichr *)XtMalloc((n+1) * sizeof(Ichr))
  339. X                   : cbuf;
  340. X        (void)convCTtoCS(str, size, cs);
  341. X        if (term->flags & EUC_KANJI)
  342. X            convfunc = convCStoEUC;
  343. X        else if (term->flags & SJIS_KANJI)
  344. X            convfunc = convCStoSJIS;
  345. X                else if (term->flags & JIS_KANJI)
  346. X                  convfunc = convCStoJIS;
  347. #ifdef KTERM_HANZI
  348. X                else if (term->flags & GUOBIAO_HANZI)
  349. X                  convfunc = convCStoGB;
  350. X                else if (term->flags & SGB_HANZI)
  351. X                  convfunc = convCStoSGB;
  352. X                else if (term->flags & BIG5_HANZI)
  353. X                  convfunc = convCStoBIG5;
  354. #endif /* KTERM_HANZI */
  355. #ifdef KTERM_HANGUL
  356. X                else if (term->flags & KS_HANGUL)
  357. X                  convfunc = convCStoKS;
  358. #endif /* KTERM_HANGUL */
  359. X        else
  360. X            convfunc = convCStoJIS;
  361. X
  362. X        n = (*convfunc)(cs, NULL);
  363. X        lstr = (n > 256) ? (unsigned char *)XtMalloc(n + 1) : lbuf;
  364. X        (void)(*convfunc)(cs, lstr);
  365. X        if (cs != cbuf) XtFree(cs);
  366. X    } else {
  367. X        /* ignore unknown type */
  368. X        XtFree(str);
  369. X        return;
  370. X    }
  371. X
  372. X    /*
  373. X     * Hack: (since Compound Text can't send carriage return)
  374. X     * change each newline into carriage return.
  375. X     */
  376. X    for (p = lp = lstr; *p; p++)    {
  377. X        if (*p != '\n' || *p != '\r')
  378. X            continue;
  379. X        *p = '\r';
  380. X        v_write(pty, lp, p - lp + 1);
  381. X        lp = p + 1;
  382. X    }
  383. X    if (lp != p)
  384. X        v_write(pty, lp, p - lp);
  385. X
  386. X    XtFree(str);
  387. X    if (lstr != lbuf) XtFree(lstr);
  388. }
  389. X
  390. /* ARGSUSED */
  391. void
  392. BeginConversion(w, event, params, nparams)
  393. Widget    w;
  394. XXEvent    *event;
  395. String    *params;
  396. Cardinal    *nparams;
  397. {
  398. X    Atom    catom;
  399. X
  400. X    if (!atominitialized) {
  401. #ifdef KTERM_HANZI
  402. X        chinese_conversion_atom =
  403. X            XInternAtom(XtDisplay(w), "CHINESE_CONVERSION", False);
  404. #endif /* KTERM_HANZI */
  405. X        japanese_conversion_atom =
  406. X            XInternAtom(XtDisplay(w), "JAPANESE_CONVERSION", False);
  407. #ifdef KTERM_HANGUL
  408. X                korean_conversion_atom =
  409. X            XInternAtom(XtDisplay(w), "KOREAN_CONVERSION", False);
  410. #endif /* KTERM_HANGUL */
  411. X        compound_text_atom =
  412. X            XInternAtom(XtDisplay(w), "COMPOUND_TEXT", False);
  413. X        atominitialized = 1;
  414. X    }
  415. X
  416. X    if (*nparams != 1) {
  417. #ifdef KTERM_HANZI
  418. X            if (term->flags & (GUOBIAO_HANZI|SGB_HANZI|BIG5_HANZI))
  419. X              catom = chinese_conversion_atom;
  420. X            else
  421. #endif /* KTERM_HANZI */
  422. #ifdef KTERM_HANGUL
  423. X              if (term->flags & KS_HANGUL)
  424. X                catom = korean_conversion_atom;
  425. X            else
  426. #endif /* KTERM_HANGUL */
  427. X              catom = japanese_conversion_atom;
  428. X    } else {
  429. X        XmuInternStrings(XtDisplay(w), params, 1, &catom);
  430. X    }
  431. X
  432. X    _beginConversion(w, catom, compound_text_atom, inputString, NULL);
  433. }
  434. #endif    /* KTERM_KCONV */
  435. SHAR_EOF
  436. chmod 0664 kterm-4.1.2/kconvert.c ||
  437. echo 'restore of kterm-4.1.2/kconvert.c failed'
  438. Wc_c="`wc -c < 'kterm-4.1.2/kconvert.c'`"
  439. test 5187 -eq "$Wc_c" ||
  440.     echo 'kterm-4.1.2/kconvert.c: original size 5187, current size' "$Wc_c"
  441. rm -f _shar_wnt_.tmp
  442. fi
  443. # ============= kterm-4.1.2/kterm.h ==============
  444. if test -f 'kterm-4.1.2/kterm.h' -a X"$1" != X"-c"; then
  445.     echo 'x - skipping kterm-4.1.2/kterm.h (File already exists)'
  446.     rm -f _shar_wnt_.tmp
  447. else
  448. > _shar_wnt_.tmp
  449. echo 'x - extracting kterm-4.1.2/kterm.h (Text)'
  450. sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/kterm.h' &&
  451. /*
  452. X *    $Kagotani: /usr/src.yoshi/X/KTerm/4.1.0/RCS/kterm.h,v 1.1 90/06/27 09:39:07 kagotani Rel $
  453. X *
  454. X * $Header: /usr/local/src/X11/contrib/clients/kterm-4.1.2/RCS/kterm.h,v 1.4 1991/03/15 09:31:33 mleisher Exp $
  455. X */
  456. X
  457. /*
  458. X * Modified for Hanzi support:
  459. X * Mark Leisher mleisher@nmsu.edu Fri Nov  9 09:22:33 1990
  460. X */
  461. X
  462. /*
  463. X * Copyright 1988, 1989 and 1990 XXI working group in Japan Unix Society(XXI).
  464. X *
  465. X * Permission to use, copy, modify, distribute, and sell this software
  466. X * and its documentation for any purpose is hereby granted without fee,
  467. X * provided that the above copyright notice appear in all copies and that
  468. X * both that copyright notice and this permission notice appear in
  469. X * supporting documentation, and that the name of XXI not be used in
  470. X * advertising or publicity pertaining to distribution of the software
  471. X * without specific, written prior permission.  XXI makes no representations
  472. X * about the suitability of this software for any purpose.
  473. X * It is provided "as is" without express or implied warranty.
  474. X * 
  475. X * XXI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  476. X * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
  477. X * SHALL XXI.  BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
  478. X * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
  479. X * OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  480. X * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  481. X * PERFORMANCE OF THIS SOFTWARE.
  482. X * 
  483. X * Author:
  484. X *     Hiroto Kagotani
  485. X *     Dept. of Computer Science
  486. X *    Tokyo Institute of Technology
  487. X *     2-12-2 Ookayama, Meguro-ku Tokyo 152 Japan
  488. X * 
  489. X *     kagotani@cs.titech.ac.jp
  490. X *     
  491. X */ 
  492. #ifndef _KTERM_H_
  493. #define _KTERM_H_
  494. X
  495. #ifdef KTERM
  496. # define KTERM_VERSION "4.1.2"
  497. # define KTERM_KANJI /* deal with KANJI/HANZI/HANGUL sequence for the
  498. X                        child process */
  499. # define KTERM_KCONV /* talk with {ROMAJI,KANA}->KANJI converter
  500. X                        talk with {PINYIN,5STROKE?}->HANZI converter
  501. X                        talk with ROMAN->HANGUL converter */
  502. #endif /* KTERM */
  503. X
  504. #if defined(KTERM_KCONV) && !defined(KTERM_KANJI)
  505. #  define KTERM_KANJI
  506. #endif
  507. #if defined(KTERM_KANJI) && !defined(KTERM)
  508. #  define KTERM
  509. #endif
  510. X
  511. #if defined(KTERM) && defined(KTERM_KANJI)
  512. X
  513. #define KTERM_DEFAULT_LANG "japanese"
  514. #define KTERM_DEFAULT_MODE "euc"
  515. X
  516. #define KTERM_HANZI  /* GB 2312 Hanzi support */
  517. #define KTERM_HANGUL /* KS C5601 Hangul support */
  518. X
  519. #endif
  520. X
  521. #define KTERM_CTEXT  /* X11 Compound Text support */
  522. X
  523. /* gset field */
  524. #define CS96        0x80
  525. #define MBCS        0x40
  526. #define MBC2        0x7f /* second byte of a mbcs character set */
  527. #define GSET(c)        ((c) - '0')
  528. #define TESG(i)        (((i) & ~(MBCS|CS96)) + '0')
  529. /* code field */
  530. #define NEEDMAP        0x80
  531. typedef struct {
  532. X    unsigned char gset;
  533. X    unsigned char code;
  534. } Ichr; /* char for interchanging */
  535. X
  536. #define GSET_GRAPH    GSET('0')
  537. #define GSET_UK        GSET('A')
  538. #define GSET_ASCII    GSET('B')
  539. #define GSET_JISROMAN    GSET('J')
  540. #define GSET_KANA    GSET('I')
  541. #define GSET_LATIN1R    (CS96|GSET('A'))
  542. #ifdef KTERM_CTEXT
  543. #define GSET_LATIN2R    (CS96|GSET('B'))
  544. #define GSET_LATIN3R    (CS96|GSET('C'))
  545. #define GSET_LATIN4R    (CS96|GSET('D'))
  546. #define GSET_LATIN7R    (CS96|GSET('F'))
  547. #define GSET_LATIN6R    (CS96|GSET('G'))
  548. #define GSET_LATIN8R    (CS96|GSET('H'))
  549. #define GSET_LATIN5R    (CS96|GSET('L'))
  550. #define GSET_LATIN9R    (CS96|GSET('M'))
  551. #endif /* KTERM_CTEXT */
  552. #define GSET_KANJI    (MBCS|GSET('B'))
  553. #define GSET_OLDKANJI    (MBCS|GSET('@'))
  554. #ifdef KTERM_HANZI
  555. #define GSET_HANZI      (MBCS|GSET('A'))
  556. #endif /* KTERM_HANZI */
  557. #ifdef KTERM_HANGUL
  558. #define GSET_HANGUL     (MBCS|GSET('C'))
  559. #endif /* KTERM_HANGUL */
  560. #endif /* !_KTERM_H_ */
  561. SHAR_EOF
  562. chmod 0664 kterm-4.1.2/kterm.h ||
  563. echo 'restore of kterm-4.1.2/kterm.h failed'
  564. Wc_c="`wc -c < 'kterm-4.1.2/kterm.h'`"
  565. test 3627 -eq "$Wc_c" ||
  566.     echo 'kterm-4.1.2/kterm.h: original size 3627, current size' "$Wc_c"
  567. rm -f _shar_wnt_.tmp
  568. fi
  569. # ============= kterm-4.1.2/kterm.jman ==============
  570. if test -f 'kterm-4.1.2/kterm.jman' -a X"$1" != X"-c"; then
  571.     echo 'x - skipping kterm-4.1.2/kterm.jman (File already exists)'
  572.     rm -f _shar_wnt_.tmp
  573. else
  574. > _shar_wnt_.tmp
  575. echo 'x - extracting kterm-4.1.2/kterm.jman (Text)'
  576. sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/kterm.jman' &&
  577. .TH KTERM 1 "11 June 1989" "X Version 11"
  578. .SH NAME
  579. kterm \- X $B$N4A;zC<Kv%(%_%e%l!<%?(B
  580. .SH SYNOPSIS
  581. .B kterm
  582. [-\fItoolkitoption\fP ...] [-option ...]
  583. .SH DESCRIPTION
  584. \fIkterm\fP $B$O(B X $B%&%#%s%I%&%7%9%F%`MQ$NF|K\8l!"Cf9q8l!"$^$?$O4Z9q8lC<Kv$N(B
  585. X$B%(%_%e%l!<%?$G!"%&%#%s%I%&%7%9%F%`$rD>@\MxMQ$G$-$J$$%W%m%0%i%`$N$?$a$K!"(B
  586. DEC VT102 $B$H(B Tektronix 4014 $B$K%3%s%Q%A%V%k$JC<Kv$NBe$o$j$r$7$^$9!#(B
  587. \fIkterm\fP $B$O!"(BX $B%&%#%s%I%&%7%9%F%`$N%3%"%W%m%0%i%`$K4^$^$l$k(B
  588. \fIxterm\fP $B$r85$K:n$i$l$F$$$^$9!#(B
  589. X$B$[$H$s$I$N5!G=$O85$N(B \fIxterm\fP $B$HF1$8$G$9$,!"(B
  590. X$B%3%s%Q%$%k;~$K(B -DKTERM $B%*%W%7%g%s$r$D$1$F%3%s%Q%$%k$9$k$H!"(B
  591. X$B4A;z$rI=<($7$?$j!"(B\fIkinput\fP $B%W%m%0%i%`$N=u$1$r<Z$j$FF|K\8l$rF~NO$7$?$j$9$k(B
  592. X$BG=NO$r;}$A$^$9!#(B
  593. X$B8=:_!"4Z9q8l$HCf9q8lF~NO$N%5%]!<%H$7$^$;$s!#(B
  594. X$B$^$?(B \fIkterm\fP $B$O!"(B-DSTATUSLINE $B%*%W%7%g%s$D$-$G%3%s%Q%$%k$9$k$H!"(B
  595. X$B%9%F!<%?%9%i%$%s$r07$&$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B
  596. .PP
  597. .SH OPTIONS
  598. \fIkterm\fP $BC<Kv%(%_%e%l!<%?(B $B$O!"(B
  599. X$BI8=`E*$J(B \fIxterm\fP $B$N%3%^%s%I%i%$%s%*%W%7%g%s$K2C$(!"(B
  600. X$B0J2<$K<($9$h$&$J%*%W%7%g%s$r<u$1IU$1$^$9(B
  601. ($B%*%W%7%g%s$,(B
  602. .RB ` \- ',
  603. X$B$N$+$o$j$K!"(B
  604. .RB ` + '
  605. X$B$G;O$^$k$H!"%G%U%)%k%HCM$KLa$5$l$^$9(B):
  606. .TP 8
  607. .BI \-version
  608. X$BC1$K(B \fIkterm\fP $B$N%P!<%8%g%s$rI=<($7$^$9!#(B
  609. .TP 8
  610. .BI \-fl " fontlist"
  611. X$B%U%)%s%H$N%j%9%H$r;XDj$7$^$9!#(B
  612. \fIfontlist\fP $B$OC10l$N0z?t$G!"G$0U$N%o%$%k%I%+!<%I$r4^$`(B XLFD $B$GI=$7$^$9!#(B
  613. \fIkterm\fP $B$O!"F|K\8l$N>l9g$@$H%U%)%s%HL>$N=*$j$K(B "-iso8859-1" $B$d(B
  614. "-jisx0201.1976-0" $B$d(B "-jisx0208.1983-0" $B$,Mh$k$h$&$J!";0$D$N%U%)%s%H$r(B
  615. X$BMQ$$$^$9!#Cf9q8l$N>l9g$@$H!"(B"-iso8859-1" $B$d(B "-gb2312.1980-0" $B$rMQ$$$^$9!#(B
  616. X$B4Z9q8l$N>l9g$@$H!"(B"-iso8859-1" $B$d(B "-ksc5601.1987-0" $B$rMQ$$$^$9!#(B
  617. .TP 8
  618. .BI \-fn " iso8859/1-font"
  619. Latin-1 (ASCII $B$r4^$`(B) $B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k!"(B
  620. X$BDL>o$N(B ISO8859/1 $B$N%U%)%s%H$r;XDj$7$^$9!#(B
  621. X$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B
  622. .TP 8
  623. .BI \-fr " roman-kana-font"
  624. X$BDL>o$N(B JISX0201 $B$N%U%)%s%H$r;XDj$7$^$9!#(B
  625. X$B$3$N%U%)%s%H$O(B
  626. ``ESC ( J'' $B$,=PNO%7!<%1%s%9$K8=$l$k$H(B
  627. JIS Roman $B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$i$l$^$9!#(B
  628. X$B$^$?!"(BJIS $B%b!<%I$K$*$$$F(B ``ESC ( I'' $B$,=PNO%7!<%1%s%9$K8=$l$k$+!"(B
  629. X$B$"$k$$$O(B EUC $B%b!<%I$K$*$$$F(B SS2 (0x8e) $B$,8=$l$k$H!"(B($BH>3Q(B)$BJR2>L>(B
  630. X$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$i$l$^$9!#(B
  631. X$B$?$@$7!"(B($BH>3Q(B)$BJR2>L>$O!"IaDL$NF|K\8l$N%F%-%9%H$G$O$a$C$?$K;H$o$l$^$;$s!#(B
  632. X$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B
  633. .TP 8
  634. .BI \-fk " kanji-font"
  635. X$BF|K\8l$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k!"(B
  636. X$BDL>o$N(B JISX0208 $B$N%U%)%s%H$r;XDj$7$^$9!#(B
  637. X$B$3$N%U%)%s%H$N(B height $B$O(B ISO8859/1 $B$N$HF1$8$/!"(B
  638. width $B$O(B ISO8859/1 $B$N(B width $B$NFsG\$G$J$1$l$P$J$j$^$;$s!#(B
  639. X$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B
  640. .TP 8
  641. .BI \-fhg " hangul-font"
  642. X$B4Z9q8l$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k!"(B
  643. X$BDL>o$N(B KS C5601 $B$N%U%)%s%H$r;XDj$7$^$9!#(B
  644. X$B$3$N%U%)%s%H$N(B height $B$O(B ISO8859/1 $B$N$HF1$8$/!"(B
  645. width $B$O(B ISO8859/1 $B$N(B width $B$NFsG\$G$J$1$l$P$J$j$^$;$s!#(B
  646. X$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B
  647. .TP 8
  648. .BI \-fhz " hanzi-font"
  649. X$BCf9q8l$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k!"(B
  650. X$BDL>o$N(B GB 2312 $B$+(B Big5 $B$N%U%)%s%H$r;XDj$7$^$9!#(B
  651. X$B$3$N%U%)%s%H$N(B height $B$O(B ISO8859/1 $B$N$HF1$8$/!"(B
  652. width $B$O(B ISO8859/1 $B$N(B width $B$NFsG\$G$J$1$l$P$J$j$^$;$s!#(B
  653. X$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B
  654. .TP 8
  655. .BI \-flb " bold-fontlist"
  656. .BI \-fb " bold-font"
  657. .BI \-frb " roman-kana-bold-font"
  658. .BI \-fkb " kanji-bold-font"
  659. .BI \-fhg " hangul-bold-font"
  660. .BI \-fhz " hanzi-bold-font"
  661. X$B%\!<%k%I%U%)%s%H$r;XDj$7$^$9!#(B
  662. .TP 8
  663. .BI \-lsp " dots"
  664. X$B4A;z%U%)%s%H$O%5%$%:$,Bg$-$$$?$a!"$9$Y$F$N%f!<%6$,<+J,$NL\$K$d$5$7$$(B
  665. X$B%U%)%s%H$r<+J,MQ$KMQ0U$G$-$J$$$3$H$,$"$j$^$9!#(B
  666. X$B$3$N%*%W%7%g%s$O3F9T$N4V$KA^F~$9$k%9%Z!<%9$N%I%C%H?t$r;XDj$7$^$9!#(B
  667. .TP 8
  668. .BI \-ka
  669. \fIkterm\fP $B$,(B X $B%5!<%P$H$N%=%1%C%H@\B3$K(B KEEPALIVE $B%*%W%7%g%s$rMQ$$$k$3$H$r(B
  670. X$B;X<($7$^$9!#(B
  671. X$B%5!<%P$,EE8;$r$7$P$7$P@Z$k(B X $BC<Kv$G$"$k$h$&$J;~$KM-MQ$G$9!#(B
  672. \fIkterm\fP $B$,(B -DKEEPALIVE $B$N%*%W%7%g%s$D$-$G(B
  673. X$B%3%s%Q%$%k$5$l$F$$$k;~$KMxMQ$G$-$^$9!#(B
  674. .BI \-lang " language"
  675. X$BI=<($9$k%F%-%9%H$N(B``language''$B$r;XDj$9$k!#(B
  676. ``chinese''$B$N>l9g!"Cf9q8l$G$"$k$H2>Dj$7$^$9!#(B
  677. ``japanese''$B$N>l9g!"F|K\8l$G$"$k$H2>Dj$7$^$9!#(B
  678. ``korean''$B$N>l9g!"4Z9q8l$G$"$k$H2>Dj$7$^$9!#(B
  679. .TP 8
  680. .BI \-km " kanji-mode"
  681. pty $B$+$i$N=PNO$N%3!<%I$r;XDj$7$^$9!#(B
  682. X$B%b!<%I$,(B ``euc'' $B$N>l9g!"F~=PNO$O(B EUC $B%3!<%I$G$"$k$H2>Dj$7$^$9!#(B
  683. ``sjis'' $B$N>l9g!"(BShift-JIS $B%3!<%I(B($B%^%$%/%m%=%U%H4A;z%3!<%I(B)$B$G$"$k$H2>Dj$7$^$9!#(B
  684. ``jis''$B$N>l9g!"(BJIS $B%3!<%I$G$"$k$H2>Dj$7$^$9!#(B
  685. .TP 8
  686. .BI \-hzm " hanzi-mode"
  687. pty $B$+$i$N=PNO$N%3!<%I$r;XDj$7$^$9!#(B
  688. X$B%b!<%I$,(B ``guobiao'' $B$N>l9g!"F~=PNO$O(B GuoBiao $B%3!<%I$G$"$k$H2>Dj$7$^$9!#(B
  689. ``big5'' $B$N>l9g!"F~=PNO$O(B Big5 $B%3!<%I$G$"$k$H2>Dj$7$^$9!#(B
  690. ``shift-guobiao'' $B$N>l9g!"F~=PNO$O(B Shift-GuoBiao $B%3!<%I$G$"$k$H2>Dj$7$^$9!#(B
  691. .TP 8
  692. .BI \-hgm " hangul-mode"
  693. pty $B$+$i$N=PNO$N%3!<%I$r;XDj$7$^$9!#(B
  694. X$B%b!<%I$,(B ``ks-8bit'' $B$N>l9g!"F~=PNO$O(B KS C5601-1987 $B%3!<%I$G$"$k$H2>Dj$7$^$9!#(B
  695. ``n-byte'' $B$N>l9g!"F~=PNO$O(B N-byte $B=g=x$G$"$k$H2>Dj$7$^$9!#(B
  696. .TP 8
  697. .B \-sn
  698. X$B%G%U%)%k%H$G$O!"%9%F!<%?%9%i%$%s$O(B($B%&%$%s%I%&$NB>$NItJ,$KBP$7$FAjBPE*$K(B)
  699. X$BH?E>$7$^$9!#(B
  700. X$B$3$N%*%W%7%g%s$O%9%F!<%?%9%i%$%s$rH?E>$7$J$/$7$^$9(B($B$7$+$7!"H"$G0O$^$l$^$9(B)$B!#(B
  701. .TP 8
  702. .B \-st
  703. X$B%9%F!<%?%9%i%$%s$,%9%?!<%H;~$KI=<($5$l$k$h$&$K$7$^$9!#(B
  704. .SH "X DEFAULTS"
  705. X$B$3$N%W%m%0%i%`$O!"%3%"$K$"$k(B \fIxterm\fP $B$N$9$Y$F$N%j%=!<%9L>$H%/%i%9$HF1$8$/(B
  706. X$B0J2<$N$b$N$b2r<a$7$^$9!#(B
  707. .TP 8
  708. .B "fontList (\fPclass\fB FontList)"
  709. X$B%U%)%s%HL>$N%j%9%H$r;XDj$7$^$9!#(B
  710. X$B%G%U%)%k%H$O(B ``-*-fixed-medium-r-normal--14-*'' $B$G$9!#(B
  711. .TP 8
  712. .B "boldFontList (\fPclass\fB FontList)"
  713. X$B%\!<%k%I%U%)%s%HL>$N%j%9%H$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  714. .TP 8
  715. .B "font (\fPclass\fB Font)"
  716. Latin-1 $B$N%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  717. .TP 8
  718. .B "boldFont (\fPclass\fB Font)"
  719. Latin-1 $B$N%\!<%k%I%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  720. .TP 8
  721. .B "romanKanaFont (\fPclass\fB RomanKanaFont)"
  722. JIS-Roman $B$HJR2>L>$N%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  723. .TP 8
  724. .B "romanKanaBoldFont (\fPclass\fB RomanKanaFont)"
  725. JIS-Roman $B$HJR2>L>$N%\!<%k%I%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  726. .TP 8
  727. .B "kanjiFont (\fPclass\fB KanjiFont)"
  728. X$BF|K\8l$N%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  729. .TP 8
  730. .B "hanziFont (\fPclass\fB HanziFont)"
  731. X$BCf9q8l$N%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  732. .TP 8
  733. .B "hangulFont (\fPclass\fB HangulFont)"
  734. X$B4Z9q8l$N%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  735. .TP 8
  736. .B "kanjiBoldFont (\fPclass\fB KanjiFont)"
  737. .B "hanziBoldFont (\fPclass\fB HanziFont)"
  738. .B "hangulBoldFont (\fPclass\fB HangulFont)"
  739. X$B%\!<%k%I%U%)%s%HL>$r;XDj$7$^$9!#%G%U%)%k%H$G$O;XDj$7$^$;$s!#(B
  740. .TP 8
  741. .B "kanjiMode (\fPclass\fB KanjiMode)"
  742. pty $B$N=PNO$N%3!<%I$r;XDj$7$^$9!#%G%U%)%k%H$O(B ``jis'' $B$G$9!#(B
  743. .TP 8
  744. .B "hangulMode (\fPclass\fB HangulMode)"
  745. pty $B$N=PNO$N%3!<%I$r;XDj$7$^$9!#%G%U%)%k%H$O(B ``ks-8bit'' $B$G$9!#(B
  746. .TP 8
  747. .B "hangulNtoKSTable (\fPclass\fB HangulNtoKSTable)"
  748. N-byte $B$+$i(B KS code $B$K$NJ8;z%^%C%T%s%0$r7hDj$9$k%F!<%V%k$N%Q%9L>$r;XDj$7$^$9!#(B
  749. X$B%G%#%U%)%k%H$O!"%"%W%j%1!<%7%g%s%G%#%U%)%k%H%U%!%$%k$K;XDj$5$l$^$9!#(B
  750. .TP 8
  751. .B "hanziMode (\fPclass\fB HanziMode)"
  752. pty $B$N=PNO$N%3!<%I$r;XDj$7$^$9!#%G%U%)%k%H$O(B ``guobiao'' $B$G$9!#(B
  753. .TP 8
  754. .B "hanziGbToBigTable (\fPclass\fB HanziGbToBigTable)"
  755. GuoBiao $B$+$i(B Big5 $B$K$NJ8;z%^%C%T%s%0$r7hDj$9$k%F!<%V%k$N%Q%9L>$r;XDj$7$^$9!#(B
  756. X$B%G%#%U%)%k%H$O!"%"%W%j%1!<%7%g%s%G%#%U%)%k%H%U%!%$%k$K;XDj$5$l$^$9!#(B
  757. .TP 8
  758. .B "hanziBigToGbTable (\fPclass\fB HanziBigToGbTable)"
  759. Big5 $B$+$i(B GuoBiao $B$K$NJ8;z%^%C%T%s%0$r7hDj$9$k%F!<%V%k$N%Q%9L>$r;XDj$7$^$9!#(B
  760. X$B%G%#%U%)%k%H$O!"%"%W%j%1!<%7%g%s%G%#%U%)%k%H%U%!%$%k$K;XDj$5$l$^$9!#(B
  761. .TP 8
  762. .B "language" (\fPclass\fB Language)"
  763. X$BI=<($9$k%F%-%9%H$N(B``language''$B$r;XDj$9$k!#(B
  764. ``chinese''$B!"(B``japanese'' $B!"$*$h$S(B ``korean'' $B$OBEEv$G$9!#(B
  765. X$B%G%#%U%)%k%H$O(B``japanese''$B$G$9!#(B
  766. .TP 8
  767. .B "color0 (\fPclass\fB Color0)"
  768. ANSI $B$NH,?'$N(B 0 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``Black'' $B$G$9!#(B
  769. .TP 8
  770. .B "color1 (\fPclass\fB Color1)"
  771. ANSI $B$NH,?'$N(B 1 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``Blue'' $B$G$9!#(B
  772. .TP 8
  773. .B "color2 (\fPclass\fB Color2)"
  774. ANSI $B$NH,?'$N(B 2 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``Red'' $B$G$9!#(B
  775. .TP 8
  776. .B "color3 (\fPclass\fB Color3)"
  777. ANSI $B$NH,?'$N(B 3 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``Magenta'' $B$G$9!#(B
  778. .TP 8
  779. .B "color4 (\fPclass\fB Color4)"
  780. ANSI $B$NH,?'$N(B 4 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``Green'' $B$G$9!#(B
  781. .TP 8
  782. .B "color5 (\fPclass\fB Color5)"
  783. ANSI $B$NH,?'$N(B 5 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``Cyan'' $B$G$9!#(B
  784. .TP 8
  785. .B "color6 (\fPclass\fB Color6)"
  786. ANSI $B$NH,?'$N(B 6 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``Yellow'' $B$G$9!#(B
  787. .TP 8
  788. .B "color7 (\fPclass\fB Color7)"
  789. ANSI $B$NH,?'$N(B 7 $BHV$r;XDj$9$k!#%G%#%U%)%k%H$G$O(B ``White'' $B$G$9!#(B
  790. .TP 8
  791. .B "lineSpace (\fPclass\fB LineSpace)"
  792. X$B3F9T$N4V$KA^F~$9$k%9%Z!<%9NL$r;XDj$7$^$9!#%G%U%)%k%H$O(B ``0'' $B$G$9!#(B
  793. .TP 8
  794. .B "keepAlive (\fPclass\fB KeepAlive)"
  795. \fIkterm\fP $B$,(B X $B%5!<%P$H$N%=%1%C%H@\B3$K(B
  796. KEEPALIVE $B%*%W%7%g%s$rMQ$$$k$+$I$&$+;XDj$7$^$9!#(B
  797. X$B%G%U%)%k%H$O(B ``false'' $B$G$9!#(B
  798. .TP 8
  799. .B "statusLine (\fPclass\fB StatusLine)"
  800. X$B%9%F!<%?%9%i%$%s$r%9%?!<%H;~$KI=<($7$^$9!#%G%U%)%k%H$O(B ``false'' $B$G$9!#(B
  801. .TP 8
  802. .B "statusNormal (\fPclass\fB StatusNormal)"
  803. X$B%9%F!<%?%9%i%$%s$,H?E>$7$J$$$3$H$r;XDj$7$^$9!#%G%U%)%k%H$O(B ``false'' $B$G$9!#(B
  804. .SH EMULATIONS
  805. VT102 $B$N%(%_%e%l!<%H$O$[$H$s$I40A4$G$9$,!"(B
  806. X$BJ8;z$N%V%j%s%/B0@-$HJ8;z$N3HBg$O%5%]!<%H$7$F$$$^$;$s!#(B
  807. .I kterm
  808. X$B$,MQ$$$k(B
  809. .IR termcap (5)
  810. X$B$N%(%s%H%j$K$O(B
  811. ``kterm'', ``xterm'', ``vt102'', ``vt100'' $B$*$h$S(B ``ansi'' $B$,$"$j!"(B
  812. .I kterm
  813. X$B$O<+F0E*$K$3$N=g$G(B termcap $B%U%!%$%k$rC5$7!"(B
  814. ``TERM'' $B$H(B ``TERMCAP'' $B$N4D6-JQ?t$r%;%C%H$7$^$9!#(B
  815. .SH "KANJI INPUT"
  816. X$BF|K\8l$N4A;zJ8;zNs$O(B \fIkinput\fP $B%3%^%s%I(B($B$3$l$O4A;zJQ49%5!<%P$NLr3d$r$9$k(B)
  817. X$B$rMQ$$$FF~NO$9$k$3$H$,$G$-$^$9!#(B
  818. X$B%G%U%)%k%H$G$O!"(Bcontrol-Kanji $B%-!<$r2!$9$HJQ49$,;O$^$j$^$9!#(B
  819. X$B$=$NA0$KJQ49%5!<%P$rAv$i$;$J$$$H!"(B
  820. `Conversion Server not found' $B$H$$$&7Y9p%a%C%;!<%8$,8=$l$^$9!#(B
  821. translation $B%F!<%V%k$rJQ99$9$k$3$H$G!"(B
  822. X$B$3$NF0:n$r$9$k%-!<$r:F3dEv$9$k$3$H$,2DG=$G$9!#(B
  823. X$B%G%U%)%k%H$NJQ493+;O$N3dEv$O<!$N$h$&$K$J$j$^$9!#(B
  824. .nf
  825. .sp
  826. X    Ctrl<Key>Kanji:    begin-conversion(JAPANESE_CONVERSION)
  827. .sp
  828. .fi
  829. X$BCf9q8l$NJQ49%5!<%P$,$"$l$P!"<!$N$h$&$K$J$j$^$9!#(B
  830. .nf
  831. .sp
  832. X    Ctrl<Key>Space:    begin-conversion(CHINESE_CONVERSION)
  833. .sp
  834. .fi
  835. X$B4Z9q8l$NJQ49%5!<%P$,$"$l$P!"<!$N$h$&$K$J$j$^$9!#(B
  836. .nf
  837. .sp
  838. X    Ctrl<Key>Space:    begin-conversion(KOREAN_CONVERSION)
  839. .sp
  840. .fi
  841. X$B$5$i$K>\$7$$>pJs(B($B%F%-%9%H$NF~NO(B/$BJQ49(B/$B=$@5$J$I(B)$B$O(B
  842. X$BJQ49%5!<%P$N%I%-%e%a%s%H$r8+$F2<$5$$!#(B
  843. .SH "SEE ALSO"
  844. xterm(1), resize(1), X(1), kinput(1), pty(4), tty(4)
  845. .br
  846. .I ``Xterm Control Sequences''
  847. .SH BUGS
  848. \fIkterm\fP $B$O4A;zEy$NJ8;z$,(B ASCII $BJ8;z$NFsG\$NI}$r;}$C$F$$$k$b$N$H2>Dj$7$^$9!#(B
  849. X$BITDjI}$N%U%)%s%H$O(B \fIxterm\fP $BF1MM07$&$3$H$,$G$-$^$;$s!#(B
  850. .PP
  851. X$BK\%P!<%8%g%s$G$O(B
  852. JIS $B%b!<%I$G%Z!<%9%H$9$k;~(B ``ESC $ B'' $B$r4A;zJ8;z%;%C%H$N3dEv$KMQ$$$F!"(B
  853. GuoBiao $B%b!<%I$G%Z!<%9%H$9$k;~(B ``ESC $ A'' $B$r4A;zJ8;z%;%C%H$N3dEv$KMQ$$$F!"(B
  854. KS $B%b!<%I$G%Z!<%9%H$9$k;~(B ``ESC $ C'' $B$r4A;zJ8;z%;%C%H$N3dEv$KMQ$$$^$9!#(B
  855. Compound Text $B=g=x(B ``ESC ( $ {A,B,C}'' $B$bG'$a$^$9!#(B
  856. .sp
  857. X$BK\%P!<%8%g%s$G$O(B selection $B$N%?%V$d2~9T$r29B8$7$^$9!#(B
  858. X$B2~9T$O!"A*Br$5$l$?%F%-%9%H$N$7$+F~$j$^$;$s!#(B
  859. Wrap $B$5$l$k9T$K$O2~9T$,F~$j$^$;$s!#(B
  860. .sp
  861. X$BK\%P!<%8%g%s$G$O!"%^%k%A%P%$%HJ8;z=89g$O$b$A$m$s(B Latin $BJ8;z=89g$b%5%]!<%H(B
  862. X$B$7$^$9!#(B
  863. .SH COPYRIGHT
  864. Copyright 1988, 1989 and 1990, $BF|K\(B UNIX $B%f!<%62q(B XXI $B%o!<%-%s%0%0%k!<%W(B
  865. .br
  866. X$B8"Mx$H5v2D$NA4J8$O(B \fIX(1)\fP $B$r$4$i$s2<$5$$!#(B
  867. .SH AUTHORS
  868. X$B0J2<$r4^$`B?$/$N?M!9(B:
  869. .sp
  870. X$B:4Ln>!Li(B ($B3t<02q<REl<G(B),
  871. X$BF~9>1QIW(B ($B%=%K!<3t<02q<R(B),
  872. X$B2CF#O/(B ($B7DXf5A=NBg3X(B),
  873. X$BM-:BF;=U(B ($B3t<02q<R(B SRA),
  874. X$B@PA>:,?.(B ($B3t<02q<R(B SRA),
  875. X$BdFC+M5?M(B ($BEl5~9)6HBg3X(B)
  876. .sp
  877. X$BCf9q8l$N%5%]!<%H$O(B 1990 $BG/$N(B 10-11$B7n!"4Z9q8l$N%5%]!<%H$O(B 1991 $BG/$N(B 1-3$B7n!"(B
  878. Mark Leisher mleisher@nmsu.edu $B$,2C$($^$7$?!#(B
  879. .sp
  880. X$B%P%0%l%]!<%H$O(B kterm $B$N%P!<%8%g%s$r$=$($F!"F|K\8l$K4X$9$k%P%0$O(B
  881. kagotani@cs.titech.ac.jp $B$^$G!"Cf9q8l!"$^$?$O4Z9q8l$K4X$9$k%P%0$O(B
  882. mleisher@nmsu.edu $B$^$G$*Aw$j2<$5$$!#(B
  883. SHAR_EOF
  884. chmod 0664 kterm-4.1.2/kterm.jman ||
  885. echo 'restore of kterm-4.1.2/kterm.jman failed'
  886. Wc_c="`wc -c < 'kterm-4.1.2/kterm.jman'`"
  887. test 13070 -eq "$Wc_c" ||
  888.     echo 'kterm-4.1.2/kterm.jman: original size 13070, current size' "$Wc_c"
  889. rm -f _shar_wnt_.tmp
  890. fi
  891. # ============= kterm-4.1.2/kterm.man ==============
  892. if test -f 'kterm-4.1.2/kterm.man' -a X"$1" != X"-c"; then
  893.     echo 'x - skipping kterm-4.1.2/kterm.man (File already exists)'
  894.     rm -f _shar_wnt_.tmp
  895. else
  896. > _shar_wnt_.tmp
  897. echo 'x - extracting kterm-4.1.2/kterm.man (Text)'
  898. sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/kterm.man' &&
  899. .TH KTERM 1 "4 May 1991" "X Version 11"
  900. .SH NAME
  901. kterm \- Kanji, Hangul, or Hanzi terminal emulator for X
  902. .SH SYNOPSIS
  903. .B kterm
  904. [-\fItoolkitoption\fP ...] [-option ...]
  905. .SH DESCRIPTION
  906. The \fIkterm\fP program is a Kanji, Hangul, or Hanzi terminal emulator
  907. for the X Window System.  It provides DEC VT102 and Tektronix 4014
  908. compatible terminals for programs that can't use the window system
  909. directly.  It comes from \fIxterm\fP in the core programs of the
  910. distribution of the X Window System.  The most of the functions are
  911. the same as original \fIxterm\fP's, however, it has capabilities of
  912. displaying Kanji, Hangul, or Hanzi strings and input of Kanji strings
  913. with the \fIkinput\fP program if compiled with -DKTERM compile time
  914. option.  Currently there are no programs that allow input of Hangul or
  915. Hanzi strings, but if a program is written, it should conform to the
  916. specifications set out in the \fBX11 Input Conversion\fP protocol.
  917. Also \fIkterm\fP supports handling of the status line if compiled with
  918. -DSTATUSLINE option.
  919. .PP
  920. .SH OPTIONS
  921. The \fIkterm\fP terminal emulator accepts all of the standard
  922. \fIxterm\fP command line options along with the additional options
  923. listed below (if the option begins with a
  924. .RB ` + '
  925. instead of a
  926. .RB ` \- ',
  927. the option is restored to its default value):
  928. .TP 8
  929. .BI \-version
  930. Just displays the \fIkterm\fP version.
  931. .TP 8
  932. .BI \-fl " fontlist"
  933. This option specifies fonts to be used.  \fIfontlist\fP is a argument
  934. expressed by XLFD compliant font name with arbitrary wild-card
  935. characters.  \fIkterm\fP uses three fonts whose names have
  936. "-iso8859-1", "-jisx0201.1976-0" and "-jisx0208.1983-0" as their tail
  937. if Kanji is being displayed, or two fonts whose names have
  938. "-iso8859-1" and "-gb2312.1980-0" as their tail if Hanzi is being
  939. displayed, or "-iso8859-1" and "-ksc5601.1987-0" if Hangul is being
  940. displayed.
  941. .TP 8
  942. .BI \-fn " iso8859/1-font"
  943. This option specifies a normal ISO8859/1 font to be used when
  944. displaying Latin-1 (including ASCII) text.  If it is not specified,
  945. search \fIfontlist\fP for it.
  946. .TP 8
  947. .BI \-fr " roman-kana-font"
  948. This option specifies a normal JIS X0201 font.  This font is used as
  949. JIS-Roman font if ``ESC ( J'' appears, and used as Kana font if ``ESC
  950. ( I'' appears in JIS Kanji mode, SS2 (0x8e) appears in EUC Kanji mode,
  951. though Kana is not used so frequntly in normal Japanese text.  This
  952. font must have same height and width as the ISO8859/1 font.  If it is
  953. not specified, search \fIfontlist\fP for it.
  954. .TP 8
  955. .BI \-fk " kanji-font"
  956. This option specifies a normal JIS X0208 font to be used when
  957. displaying Kanji text.  This font must have same height and twice
  958. width as the ISO8859/1 font.  If it is not specified, search
  959. \fIfontlist\fP for it.
  960. .TP 8
  961. .BI \-fhg " hangul-font"
  962. This option specifies a normal KS C5601 font to be used when
  963. displaying Hangul text.  This font must have same height and twice
  964. width as the ISO8859/1 font.  If it is not specified, search
  965. \fIfontlist\fP for it.
  966. .TP 8
  967. .BI \-fhz " hanzi-font"
  968. This option specifies a normal GB 2312 or Big5 font to be used when
  969. displaying Hanzi text.  This font must have same height and twice
  970. width as the ISO8859/1 font.  If it is not specified, search
  971. \fIfontlist\fP for it.
  972. .TP
  973. .BI \-flb " bold-fontlist"
  974. .TP
  975. .BI \-fb " bold-font"
  976. .TP
  977. .BI \-frb " roman-kana-bold-font"
  978. .TP
  979. .BI \-fkb " kanji-bold-font"
  980. .TP 8
  981. .BI \-fhzb " hanzi-bold-font"
  982. .TP 8
  983. .BI \-fhgb " hangul-bold-font"
  984. These options specify bold fonts.
  985. .TP 8
  986. .BI \-lsp " dots"
  987. Because of large sizes of the Kanji fonts, every user may not be
  988. allowed to have his own eye-friendly fonts.  This option specifies how
  989. much space to insert between every two lines.
  990. .TP 8
  991. .BI \-ka
  992. This option indicates that \fIkterm\fP should connect to the X server
  993. with KEEPALIVE socket option. It is usefull when the server is a X
  994. terminal that is frequently powered off. This option is accepted only
  995. if \fIkterm\fP has been compiled with -DKEEPALIVE compile option.
  996. .TP 8
  997. .BI \+ka
  998. This option indicates that \fIkterm\fP should connect to the X server
  999. without KEEPALIVE socket option.
  1000. .TP 8
  1001. .BI \-lang " language"
  1002. This option sets the language of the text being displayed.
  1003. .br
  1004. If language is ``chinese'', then the Hanzi fonts and encoding
  1005. functions are used for displaying text.
  1006. .br
  1007. If language is ``japanese'', then the Kanji fonts and encoding
  1008. functions are used for displaying text.
  1009. .br
  1010. If language is ``korean'', then the Hangul fonts and encoding
  1011. functions are used for displaying text.
  1012. .TP 8
  1013. .BI \-km " kanji-mode"
  1014. This option specifies the Kanji code from the pty output.
  1015. .br
  1016. If kanji-mode is ``euc'', then it assumes the input/output is coded by EUC.
  1017. .br
  1018. If kanji-mode is ``sjis'', then it assumes the input/output is coded by
  1019. Shift-JIS code (which is the same as MicroSoft Kanji code).
  1020. .br
  1021. If kanji-mode is ``jis'', then it assumes the input/output is coded by
  1022. JIS.
  1023. .TP 8
  1024. .BI \-hzm " hanzi-mode"
  1025. This option specifies the Hanzi code from the pty output.
  1026. .br
  1027. If hanzi-mode is ``guobiao'', then it assumes the input/output is
  1028. coded by GuoBiao.
  1029. .br
  1030. If hanzi-mode is ``big5'', then it assumes the input/output is coded by
  1031. Big5.
  1032. .br
  1033. If hanzi-mode is ``shift-guobiao'', then it assumes the input/output
  1034. is coded by Shift-GuoBiao.
  1035. .TP 8
  1036. .BI \-hgm " hangul-mode"
  1037. This option specifies the Hangul code from the pty output.
  1038. .br
  1039. If hangul-mode is ``ks-8bit'', then it assumes that input/output is
  1040. coded by two-byte KS C5601-1987 code.
  1041. .br
  1042. If hangul-mode is ``n-byte'', then it assumes that input/output is
  1043. coded by N-byte sequences.
  1044. .TP 8
  1045. .B \-sn
  1046. By default, the status line is in reverse-video (relative to the rest
  1047. of the window).  This option causes the status line to be in normal
  1048. video (the status line is still enclosed in a box).
  1049. .TP 8
  1050. .B \-st
  1051. This option causes the status line to be displayed on startup.
  1052. .SH "X DEFAULTS"
  1053. The program understands all of the core \fIxterm\fP resource names and
  1054. classes as well as:
  1055. .TP 8
  1056. .B "fontList (\fPclass\fB FontList)"
  1057. Specifies the name of the fonts.
  1058. The default is ``-*-fixed-medium-r-normal--14-*''.
  1059. .TP 8
  1060. .B "boldFontList (\fPclass\fB FontList)"
  1061. Specifies the name of the bold fonts.
  1062. The default is not specified
  1063. .TP 8
  1064. .B "font (\fPclass\fB Font)"
  1065. Specifies the name of the Latin-1 font.  The default is not specified.
  1066. .TP 8
  1067. .B "boldFont (\fPclass\fB Font)"
  1068. Specifies the name of the bold Latin-1 font.  The default is not specified.
  1069. .TP 8
  1070. .B "romanKanaFont (\fPclass\fB RomanKanaFont)"
  1071. Specifies the name of the Roman-Kana font.  The default is not specified.
  1072. .TP 8
  1073. .B "romanKanaBoldFont (\fPclass\fB RomanKanaFont)"
  1074. Specifies the name of the bold font.  The default is not specified.
  1075. .TP 8
  1076. .B "kanjiFont (\fPclass\fB KanjiFont)"
  1077. Specifies the name of the Kanji font.  The default is not specified.
  1078. .TP 8
  1079. .B "hanziFont (\fPclass\fB HanziFont)"
  1080. Specifies the name of the Hanzi font.  The default is not specified.
  1081. .TP 8
  1082. .B "hangulFont (\fPclass\fB HangulFont)"
  1083. Specifies the name of the Hangul font.  The default is not specified.
  1084. .TP 8
  1085. .B "kanjiBoldFont (\fPclass\fB KanjiFont)"
  1086. Specifies the name of the bold Kanji font.  The default is not specified.
  1087. .TP 8
  1088. .B "hanziBoldFont (\fPclass\fB HanziFont)"
  1089. Specifies the name of the bold Hanzi font.  The default is not specified.
  1090. .TP 8
  1091. .B "hangulBoldFont (\fPclass\fB HangulFont)"
  1092. Specifies the name of the bold Hangul font.  The default is not specified.
  1093. .TP 8
  1094. .B "kanjiMode (\fPclass\fB KanjiMode)"
  1095. Specifies the Kanji code of pty output. The default is ``jis''.
  1096. .TP 8
  1097. .B "hangulMode (\fPclass\fB HangulMode)"
  1098. Specifies the Hangul code of pty output. The default is ``ks-8bit''.
  1099. .TP 8
  1100. .B "hangulNtoKSTable (\fPclass\fB HangulNtoKSTable)"
  1101. Specifies the full path name of the table describing the N-byte to
  1102. KS code mapping table.  Default is set in the application defaults file.
  1103. .TP 8
  1104. .B "hanziMode (\fPclass\fB HanziMode)"
  1105. Specifies the Hanzi code of pty output. The default is ``guobiao''.
  1106. .TP 8
  1107. .B "hanziGbToBigTable (\fPclass\fB HanziGbToBigTable)"
  1108. Specifies the full path name of the table describing the GuoBiao to
  1109. Big5 character mapping.  Default is set in the application defaults file.
  1110. .TP 8
  1111. .B "hanziBigToGbTable (\fPclass\fB HanziBigToGbTable)"
  1112. Specifies the full path name of the table describing the Big5 to
  1113. GuoBiao character mapping.  Default is set in the application defaults file.
  1114. .TP 8
  1115. .B "language" (\fPclass\fB Language)"
  1116. Specifies which language the text to be displayed will be in.
  1117. The valid languages are ``chinese'', ``japanese'', and ``korean''.
  1118. The default is ``japanese''.
  1119. .TP 8
  1120. .B "color0 (\fPclass\fB Color0)"
  1121. Specifies color 0 of the 8 ANSI colors.  The default is ``Black''.
  1122. .TP 8
  1123. .B "color1 (\fPclass\fB Color1)"
  1124. Specifies color 1 of the 8 ANSI colors.  The default is ``Blue''.
  1125. .TP 8
  1126. .B "color2 (\fPclass\fB Color2)"
  1127. Specifies color 2 of the 8 ANSI colors.  The default is ``Red''.
  1128. .TP 8
  1129. .B "color3 (\fPclass\fB Color3)"
  1130. Specifies color 3 of the 8 ANSI colors.  The default is ``Magenta''.
  1131. .TP 8
  1132. .B "color4 (\fPclass\fB Color4)"
  1133. Specifies color 4 of the 8 ANSI colors.  The default is ``Green''.
  1134. .TP 8
  1135. .B "color5 (\fPclass\fB Color5)"
  1136. Specifies color 5 of the 8 ANSI colors.  The default is ``Cyan''.
  1137. .TP 8
  1138. .B "color0 (\fPclass\fB Color6)"
  1139. Specifies color 6 of the 8 ANSI colors.  The default is ``Yellow''.
  1140. .TP 8
  1141. .B "color7 (\fPclass\fB Color7)"
  1142. Specifies color 7 of the 8 ANSI colors.  The default is ``White''.
  1143. .TP 8
  1144. .B "lineSpace (\fPclass\fB LineSpace)"
  1145. Specifies the space to insert between every two lines.
  1146. The default is ``0''.
  1147. .TP 8
  1148. .B "keepAlive (\fPclass\fB KeepAlive)"
  1149. Specifies whether or not \fIkterm\fP should connection to the X server
  1150. with KEEPALIVE socket option. The default is ``false.''
  1151. .TP 8
  1152. .B "statusLine (\fPclass\fB StatusLine)"
  1153. Causes the status line to be displayed on startup. The default is ``false.''
  1154. .TP 8
  1155. .B "statusNormal (\fPclass\fB StatusNormal)"
  1156. Specifies whether or not the status line should be in normal video.
  1157. The default is ``false.''
  1158. .SH EMULATIONS
  1159. The VT102 emulation is fairly complete, but does not support the blinking
  1160. character attribute nor the double-wide and double-size character sets.
  1161. .IR Termcap (5)
  1162. entries that work with
  1163. .I kterm
  1164. include ``kterm'', ``xterm'', ``vt102'', ``vt100'' and ``ansi'', and
  1165. .I kterm
  1166. automatically searches the termcap file in this order for these
  1167. entries and then sets the ``TERM'' and the ``TERMCAP'' environment
  1168. variables.
  1169. .SH "KANJI INPUT"
  1170. Kanji strings can be input with \fIkinput\fP command, which acts as a
  1171. Kanji conversion server.  By default, pressing control-Kanji key
  1172. starts Kanji conversion.  You must run conversion server before this,
  1173. or you will see `Conversion Server not found' warning message.  It is
  1174. possible to rebind other keys to this action by changing the
  1175. translation table.
  1176. The default binding to begin conversion is:
  1177. .nf
  1178. .sp
  1179. X    Ctrl<Key>Kanji:    begin-conversion(JAPANESE_CONVERSION)
  1180. .sp
  1181. .fi
  1182. If a program to do Chinese conversions is available, the binding to begin
  1183. conversion would be something like:
  1184. .nf
  1185. .sp
  1186. X    Ctrl<Key>Space:    begin-conversion(CHINESE_CONVERSION)
  1187. .sp
  1188. .fi
  1189. If a program to do Korean conversions is available, the binding to begin
  1190. conversion would be something like:
  1191. .nf
  1192. .sp
  1193. X    Ctrl<Key>Space:    begin-conversion(KOREAN_CONVERSION)
  1194. .sp
  1195. .fi
  1196. For further information (how to input/convert/correct text, etc.),
  1197. see the conversion server's document.
  1198. .SH "SEE ALSO"
  1199. xterm(1), resize(1), X(1), kinput(1), pty(4), tty(4)
  1200. .br
  1201. .I ``Xterm Control Sequences''
  1202. .SH BUGS
  1203. \fIKterm\fP assumes that the width of Kanji, Hanzi, and Hangul
  1204. characters are twice as large as that of ASCII characters. Of course
  1205. variable-width fonts are not handled by \fIkterm\fP.
  1206. .SH "COMPOUND TEXT AND OTHER ESCAPE SEQUENCES"
  1207. This version of
  1208. .I kterm
  1209. can recognize ``ESC $ B'' designating the Kanji character set in tty
  1210. output when JIS mode is selected, ``ESC $ A'' designating the Hanzi
  1211. character set in tty output when GuoBiao mode is selected, and ``ESC $
  1212. C'' designating the Hangul character set in tty output when KS mode is
  1213. selected.  The Compound Text sequences of ``ESC ( $ {A,B,C}'' are also
  1214. reconized.
  1215. .SH "TAB AND NEWLINE PRESERVATION"
  1216. This version of kterm now preserves tabs and new lines in selections.
  1217. New lines will only be used in selections where they appear in the
  1218. original text.  Lines that wrap at the edge of the kterm screen no
  1219. longer have new lines inserted where the line is broken.
  1220. .SH "MBCS WORD SELECTION"
  1221. This version of kterm supports simple word selection for multi-byte
  1222. character sets as well as Latin character sets.
  1223. .SH COPYRIGHT
  1224. Copyright 1988, 1989 and 1990, XXI working group in Japan Unix Society Japan.
  1225. .br
  1226. See \fIX(1)\fP for a full statement of rights and permissions.
  1227. .SH AUTHORS
  1228. Far too many people, including:
  1229. .sp
  1230. Katsuya Sano (Toshiba Corp.),
  1231. Michael Irie (Sony Corp.),
  1232. Akira Kato (Keio Univ.),
  1233. Michiharu Ariza (Software Research Associates, Inc.),
  1234. Makoto Ishisone (Software Research Associates, Inc.),
  1235. Hiroto Kagotani (Tokyo Inst. of Tech.)
  1236. .sp
  1237. Modified for Chinese support by Mark Leisher mleisher@nmsu.edu
  1238. October/November 1990 and Korean support January/March 1991.
  1239. .sp
  1240. Send Kanji usage bugs to kagotani@cs.titech.ac.jp with the kterm
  1241. version, please.
  1242. .sp
  1243. Send Hangul and Hanzi usage bugs to mleisher@nmsu.edu with the kterm
  1244. version, please.
  1245. SHAR_EOF
  1246. chmod 0664 kterm-4.1.2/kterm.man ||
  1247. echo 'restore of kterm-4.1.2/kterm.man failed'
  1248. Wc_c="`wc -c < 'kterm-4.1.2/kterm.man'`"
  1249. test 13156 -eq "$Wc_c" ||
  1250.     echo 'kterm-4.1.2/kterm.man: original size 13156, current size' "$Wc_c"
  1251. rm -f _shar_wnt_.tmp
  1252. fi
  1253. # ============= kterm-4.1.2/main.c ==============
  1254. if test -f 'kterm-4.1.2/main.c' -a X"$1" != X"-c"; then
  1255.     echo 'x - skipping kterm-4.1.2/main.c (File already exists)'
  1256.     rm -f _shar_wnt_.tmp
  1257. else
  1258. > _shar_wnt_.tmp
  1259. echo 'x - extracting kterm-4.1.2/main.c (Text)'
  1260. sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/main.c' &&
  1261. #ifndef lint
  1262. static char rcs_id[] = "$XConsortium: main.c,v 1.145 90/01/11 14:22:31 jim Exp $";
  1263. static char kterm_id[] = "$Kagotani: /usr/src.yoshi/X/KTerm/4.1.0/RCS/main.c,v 1.1 90/06/27 09:39:15 kagotani Rel $";
  1264. static char nmsu_crl_rcs_id[] =
  1265. X  "$Header: /usr/local/src/X11/contrib/clients/kterm-4.1.2/RCS/main.c,v 1.6 1991/03/18 00:00:47 mleisher Exp $";
  1266. #endif    /* lint */
  1267. X
  1268. /*
  1269. X * Modified for Hanzi support:
  1270. X * Mark Leisher mleisher@nmsu.edu Fri Nov  9 09:22:33 1990
  1271. X */
  1272. X
  1273. /*
  1274. X *                  W A R N I N G
  1275. X * 
  1276. X * If you think you know what all of this code is doing, you are probably
  1277. X * very mistaken.  There be serious and nasty dragons here.
  1278. X *
  1279. X * This client is *not* to be taken as an example of how to write X Toolkit
  1280. X * applications.  It is in need of a substantial rewrite, ideally to create
  1281. X * a generic tty widget with several different parsing widgets so that you 
  1282. X * can plug 'em together any way you want.  Don't hold your breath, though....
  1283. X */
  1284. X
  1285. #include <X11/copyright.h>
  1286. X
  1287. /***********************************************************
  1288. Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  1289. and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
  1290. X
  1291. X                        All Rights Reserved
  1292. X
  1293. Permission to use, copy, modify, and distribute this software and its 
  1294. documentation for any purpose and without fee is hereby granted, 
  1295. provided that the above copyright notice appear in all copies and that
  1296. both that copyright notice and this permission notice appear in 
  1297. supporting documentation, and that the names of Digital or MIT not be
  1298. used in advertising or publicity pertaining to distribution of the
  1299. software without specific, written prior permission.  
  1300. X
  1301. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  1302. ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  1303. DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  1304. ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  1305. WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  1306. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  1307. SOFTWARE.
  1308. X
  1309. ******************************************************************/
  1310. X
  1311. X
  1312. /* main.c */
  1313. X
  1314. #include <X11/Xos.h>
  1315. #include <X11/Xlib.h>
  1316. #include <X11/cursorfont.h>
  1317. #include <pwd.h>
  1318. #include <ctype.h>
  1319. #include "patchlevel.h"
  1320. X
  1321. #ifdef att
  1322. #define USE_USG_PTYS
  1323. #endif
  1324. X
  1325. #ifndef att
  1326. #define USE_HANDSHAKE
  1327. #endif
  1328. X
  1329. #include <sys/ioctl.h>
  1330. X
  1331. #ifdef SYSV
  1332. #include <sys/termio.h>
  1333. #ifdef USE_USG_PTYS            /* AT&T SYSV has no ptyio.h */
  1334. #include <sys/stream.h>            /* get typedef used in ptem.h */
  1335. #include <sys/ptem.h>            /* get struct winsize */
  1336. #include <sys/stropts.h>        /* for I_PUSH */
  1337. #include <poll.h>            /* for POLLIN */
  1338. #endif
  1339. #include <sys/stat.h>
  1340. #define USE_SYSV_TERMIO
  1341. #define USE_SYSV_SIGNALS
  1342. #define    USE_SYSV_PGRP
  1343. #define USE_SYSV_ENVVARS        /* COLUMNS/LINES vs. TERMCAP */
  1344. /*
  1345. X * now get system-specific includes
  1346. X */
  1347. #ifdef CRAY
  1348. #define HAS_UTMP_UT_HOST
  1349. #define HAS_BSD_GROUPS
  1350. #endif
  1351. #ifdef macII
  1352. #define HAS_UTMP_UT_HOST
  1353. #define HAS_BSD_GROUPS
  1354. #include <sys/ttychars.h>
  1355. #undef USE_SYSV_ENVVARS
  1356. #undef FIOCLEX
  1357. #undef FIONCLEX
  1358. #define setpgrp2 setpgrp
  1359. #include <sgtty.h>
  1360. #include <sys/resource.h>
  1361. #endif
  1362. #ifdef hpux
  1363. #define HAS_BSD_GROUPS
  1364. #include <sys/ptyio.h>
  1365. #endif
  1366. #endif /* SYSV */
  1367. X
  1368. #ifndef SYSV                /* BSD systems */
  1369. #include <sgtty.h>
  1370. #include <sys/resource.h>
  1371. #define HAS_UTMP_UT_HOST
  1372. #define HAS_BSD_GROUPS
  1373. #endif    /* !SYSV */
  1374. X
  1375. #include <stdio.h>
  1376. #include <errno.h>
  1377. #include <setjmp.h>
  1378. X
  1379. #ifdef hpux
  1380. #include <sys/utsname.h>
  1381. #endif /* hpux */
  1382. X
  1383. #ifdef apollo
  1384. #define ttyslot() 1
  1385. #endif /* apollo */
  1386. X
  1387. #include <utmp.h>
  1388. #ifdef LASTLOG
  1389. #include <lastlog.h>
  1390. #endif
  1391. #include <sys/param.h>    /* for NOFILE */
  1392. X
  1393. #ifdef  PUCC_PTYD
  1394. #include <local/openpty.h>
  1395. int    Ptyfd;
  1396. #endif /* PUCC_PTYD */
  1397. X
  1398. #ifndef UTMP_FILENAME
  1399. #define UTMP_FILENAME "/etc/utmp"
  1400. #endif
  1401. #ifndef LASTLOG_FILENAME
  1402. #define LASTLOG_FILENAME "/usr/adm/lastlog"  /* only on BSD systems */
  1403. #endif
  1404. #ifndef WTMP_FILENAME
  1405. #if defined(SYSV)
  1406. #define WTMP_FILENAME "/etc/wtmp"
  1407. #else
  1408. #define WTMP_FILENAME "/usr/adm/wtmp"
  1409. #endif
  1410. #endif
  1411. X
  1412. #include "ptyx.h"
  1413. #include "data.h"
  1414. #include "error.h"
  1415. #include "main.h"
  1416. #include "menu.h"
  1417. X
  1418. #ifdef KTERM_HANZI
  1419. #include "hzutil.h"
  1420. #endif /* KTERM_HANZI */
  1421. X
  1422. #ifdef KTERM_HANGUL
  1423. #include "hgutil.h"
  1424. #endif /* KTERM_HANGUL */
  1425. X
  1426. #include <X11/StringDefs.h>
  1427. #include <X11/Shell.h>
  1428. #ifdef SIGTSTP
  1429. #include <sys/wait.h>
  1430. #ifdef hpux
  1431. #include <sys/bsdtty.h>
  1432. #endif
  1433. #endif
  1434. #ifdef KEEPALIVE
  1435. #include <sys/socket.h>
  1436. #endif /* KEEPALIVE */
  1437. X
  1438. #ifdef SIGNALRETURNSINT
  1439. #define SIGNAL_T int
  1440. #define SIGNAL_RETURN return 0
  1441. #else
  1442. #define SIGNAL_T void
  1443. #define SIGNAL_RETURN return
  1444. #endif
  1445. X
  1446. SIGNAL_T Exit();
  1447. extern char *malloc();
  1448. extern char *calloc();
  1449. extern char *realloc();
  1450. extern char *ttyname();
  1451. extern char *getenv();
  1452. extern char *strindex ();
  1453. extern void exit();
  1454. extern void sleep();
  1455. extern void bcopy();
  1456. extern long lseek();
  1457. extern void HandlePopupMenu();
  1458. X
  1459. int switchfb[] = {0, 2, 1, 3};
  1460. X
  1461. static SIGNAL_T reapchild ();
  1462. X
  1463. static Bool added_utmp_entry = False;
  1464. X
  1465. static char **command_to_exec;
  1466. X
  1467. #ifdef USE_SYSV_TERMIO
  1468. /* The following structures are initialized in main() in order
  1469. ** to eliminate any assumptions about the internal order of their
  1470. ** contents.
  1471. */
  1472. static struct termio d_tio;
  1473. #ifdef TIOCSLTC
  1474. static struct ltchars d_ltc;
  1475. #endif    /* TIOCSLTC */
  1476. #ifdef TIOCLSET
  1477. static unsigned int d_lmode;
  1478. #endif    /* TIOCLSET */
  1479. #else /* not USE_SYSV_TERMIO */
  1480. static struct  sgttyb d_sg = {
  1481. X        0, 0, 0177, CKILL, EVENP|ODDP|ECHO|XTABS|CRMOD
  1482. };
  1483. static struct  tchars d_tc = {
  1484. X        CINTR, CQUIT, CSTART,
  1485. X        CSTOP, CEOF, CBRK,
  1486. };
  1487. static struct  ltchars d_ltc = {
  1488. X        CSUSP, CDSUSP, CRPRNT,
  1489. X        CFLUSH, CWERASE, CLNEXT
  1490. };
  1491. static int d_disipline = NTTYDISC;
  1492. #if defined(KTERM) && defined(LPASS8)
  1493. static long int d_lmode = LCRTBS|LCRTERA|LCRTKIL|LCTLECH|LPASS8;
  1494. #else
  1495. static long int d_lmode = LCRTBS|LCRTERA|LCRTKIL|LCTLECH;
  1496. #endif
  1497. #endif /* USE_SYSV_TERMIO */
  1498. X
  1499. static int parse_tty_modes ();
  1500. /*
  1501. X * SYSV has the termio.c_cc[V] and ltchars; BSD has tchars and ltchars
  1502. X */
  1503. static int override_tty_modes = 0;
  1504. struct _xttymodes {
  1505. X    char *name;
  1506. X    int len;
  1507. X    int set;
  1508. X    char value;
  1509. } ttymodelist[] = {
  1510. { "intr", 4, 0, '\0' },            /* tchars.t_intrc ; VINTR */
  1511. #define XTTYMODE_intr 0
  1512. { "quit", 4, 0, '\0' },            /* tchars.t_quitc ; VQUIT */
  1513. #define XTTYMODE_quit 1
  1514. { "erase", 5, 0, '\0' },        /* sgttyb.sg_erase ; VERASE */
  1515. #define XTTYMODE_erase 2
  1516. { "kill", 4, 0, '\0' },            /* sgttyb.sg_kill ; VKILL */
  1517. #define XTTYMODE_kill 3
  1518. { "eof", 3, 0, '\0' },            /* tchars.t_eofc ; VEOF */
  1519. #define XTTYMODE_eof 4
  1520. { "eol", 3, 0, '\0' },            /* VEOL */
  1521. #define XTTYMODE_eol 5
  1522. { "swtch", 5, 0, '\0' },        /* VSWTCH */
  1523. #define XTTYMODE_swtch 6
  1524. { "start", 5, 0, '\0' },        /* tchars.t_startc */
  1525. SHAR_EOF
  1526. true || echo 'restore of kterm-4.1.2/main.c failed'
  1527. fi
  1528. echo 'End of kterm-4.1.2 part 12'
  1529. echo 'File kterm-4.1.2/main.c is continued in part 13'
  1530. echo 13 > _shar_seq_.tmp
  1531. exit 0
  1532.  
  1533.  
  1534. -----------------------------------------------------------------------------
  1535. mleisher@nmsu.edu                      "I laughed.
  1536. Mark Leisher                                I cried.
  1537. Computing Research Lab                          I fell down.
  1538. New Mexico State University                        It changed my life."
  1539. Las Cruces, NM                     - Rich [Cowboy Feng's Space Bar and Grille]
  1540.  
  1541. --
  1542. Dan Heller
  1543. O'Reilly && Associates       Z-Code Software    Comp-sources-x:
  1544. Senior Writer                President          comp-sources.x@uunet.uu.net
  1545. argv@ora.com                 argv@zipcode.com
  1546.