Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!newstop!exodus!NMSU.Edu!mleisher From: mleisher@NMSU.Edu Newsgroups: comp.sources.x Subject: v13i041: kterm - kanji xterm, Patch2, Part01/01 Message-ID: <14224@exodus.Eng.Sun.COM> Date: 30 May 91 17:26:06 GMT References: Sender: news@exodus.Eng.Sun.COM Lines: 890 Approved: argv@sun.com Submitted-by: mleisher@NMSU.Edu Posting-number: Volume 13, Issue 41 Archive-name: kterm/patch2 Patch-To: kterm: Volume 12, Issue 82-89 Patch-To: kterm: Volume 13, Issue 40 (patch 1 5/25/91) Here is patch 2 for kterm 4.1.2, which brings kterm to patchlevel 8. Fixes: o Conflict between tab/newline preservation and color o Missing "Color[0-7]" resource class names Updates: o Tab and newline preservation separated so one or both can be used o Manual page updated w.r.t. tab/newline preservation o Big5->GuoBiao conversion table has a few extra additions Thanks go to Martin Walter of Uni Freiburg for help finding the color problems. ---- Cut Here and feed the following to sh ---- #!/bin/sh # This is a shell archive (produced by shar 3.49) # To extract the files from this archive, save it to a file, remove # everything above the "!/bin/sh" line above, and type "sh file_name". # # made 05/29/1991 09:56 UTC by mleisher@NMSU.Edu # Source directory /tmp_mnt/home/kythera4/src/X11R4/contrib/clients/kterm-4.1.2 # # existing files will NOT be overwritten unless -c is specified # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 28862 -rw-rw-r-- PATCH # 958 -rw-rw-r-- b2g # # ============= PATCH ============== if test -f 'PATCH' -a X"$1" != X"-c"; then echo 'x - skipping PATCH (File already exists)' else echo 'x - extracting PATCH (Text)' sed 's/^X//' << 'SHAR_EOF' > 'PATCH' && *** kterm-4.1.2.7/KTerm.ad.ORIG Sun May 26 21:11:14 1991 --- KTerm.ad Mon May 27 04:32:57 1991 *************** *** 35,41 **** X *vtMenu*cursesemul*Label: Enable Curses Emulation X *vtMenu*visualbell*Label: Enable Visual Bell X *vtMenu*marginbell*Label: Enable Margin Bell ! *vtMenu*tabnlpres*Label: Enable TAB/NL Preservation X *vtMenu*altscreen*Label: Show Alternate Screen X *vtMenu*softreset*Label: Do Soft Reset X *vtMenu*hardreset*Label: Do Full Reset --- 35,42 ---- X *vtMenu*cursesemul*Label: Enable Curses Emulation X *vtMenu*visualbell*Label: Enable Visual Bell X *vtMenu*marginbell*Label: Enable Margin Bell ! *vtMenu*tabpres*Label: Enable TAB Preservation ! *vtMenu*nlpres*Label: Enable NL Preservation X *vtMenu*altscreen*Label: Show Alternate Screen X *vtMenu*softreset*Label: Do Soft Reset X *vtMenu*hardreset*Label: Do Full Reset *************** *** 159,170 **** X *VT100*lineSpace: 0 X X *VT100*Color0: Black ! *VT100*Color1: Blue ! *VT100*Color2: Red ! *VT100*Color3: Magenta ! *VT100*Color4: Green ! *VT100*Color5: Cyan ! *VT100*Color6: Yellow X *VT100*Color7: White X X *tekMenu.Label: Tek Options --- 160,171 ---- X *VT100*lineSpace: 0 X X *VT100*Color0: Black ! *VT100*Color1: Red ! *VT100*Color2: Green ! *VT100*Color3: Yellow ! *VT100*Color4: Blue ! *VT100*Color5: Magenta ! *VT100*Color6: Cyan X *VT100*Color7: White X X *tekMenu.Label: Tek Options *** kterm-4.1.2.7/README.ORIG Sun May 26 23:10:02 1991 --- README Sun May 26 23:12:26 1991 *************** *** 186,193 **** X X Alton Harkcom (for help updating the Japanese manual page) X X ! Sat May 4 14:11:37 1991 X X Internet: mleisher@nmsu.edu X Bitnet : mleisher@nmsu.bitnet --- 186,196 ---- X X Alton Harkcom (for help updating the Japanese manual page) X + Peter Wisnovsky of Sharebase X ! Martin Walter from University of Freiburg ! ! Sun May 26 23:09:44 1991 X X Internet: mleisher@nmsu.edu X Bitnet : mleisher@nmsu.bitnet *** kterm-4.1.2.7/button.c.ORIG Sun May 26 21:39:22 1991 --- button.c Sun May 26 21:39:54 1991 *************** *** 1595,1604 **** X lp = SaveText(screen, crow, ccol, screen->max_col, lp); X X /* ! * Only preserve tabs and newlines if the flag is set, otherwise ! * act in the normal fashion. X */ ! if (screen->tabnlpres != True) { X #ifdef KTERM X lp->code = '\n'; /* put in newline at end of line */ X lp++->gset = GSET_ASCII; --- 1595,1606 ---- X lp = SaveText(screen, crow, ccol, screen->max_col, lp); X X /* ! * Only preserve newlines if the flag is True, otherwise ! * act in the normal fashion. Skip adding newlines here ! * if we want newlines preserved. They will be handled ! * in the SaveText routine. X */ ! if (screen->nlpres != True) { X #ifdef KTERM X lp->code = '\n'; /* put in newline at end of line */ X lp++->gset = GSET_ASCII; *************** *** 1611,1620 **** X lp = SaveText(screen, i, 0, screen->max_col, lp); X X /* ! * Only preserve tabs and newlines if the flag is set, ! * otherwise act in the normal fashion. X */ ! if (screen->tabnlpres != True) { X #ifdef KTERM X lp->code = '\n'; X lp++->gset = GSET_ASCII; --- 1613,1624 ---- X lp = SaveText(screen, i, 0, screen->max_col, lp); X X /* ! * Only preserve newlines if the flag is True, otherwise ! * act in the normal fashion. Skip adding newlines here ! * if we want newlines preserved. They will be handled ! * in the SaveText routine. X */ ! if (screen->nlpres != True) { X #ifdef KTERM X lp->code = '\n'; X lp++->gset = GSET_ASCII; *************** *** 1978,1984 **** X #ifdef KTERM X register Bchr *ch = screen->buf[row + screen->topline]; X register Char g; ! register int tabnlpres = screen->tabnlpres; X # ifdef KTERM_HANZI X /* X * Need to check to see if a Big5 font is in use also. --- 1982,1989 ---- X #ifdef KTERM X register Bchr *ch = screen->buf[row + screen->topline]; X register Char g; ! register int tabpres = screen->tabpres; ! register int nlpres = screen->nlpres; X # ifdef KTERM_HANZI X /* X * Need to check to see if a Big5 font is in use also. *************** *** 1998,2020 **** X * Just hoping that there will always be enough space allocated for X * new lines. X */ ! if (tabnlpres != False && ch[ecol].attr & NL_TAG) X ecol++; X for (i = scol; i < ecol; i++) { X #ifdef KTERM X c = ch[i].code & ~NEEDMAP; X g = ch[i].gset; ! if (tabnlpres != False && ch[i].attr & TAB_TAG) { X lp->code = '\t'; X lp->gset = GSET_ASCII; X i++; X while(i < ecol && ch[i].code == '\0' && ! !(ch[i].attr & (TAB_TAG|NL_TAG))) X i++; X if (i < ecol && ! (ch[i].code != '\0' || ch[i].attr & (TAB_TAG|NL_TAG))) X i--; ! } else if (tabnlpres != False && ch[i].attr & NL_TAG) { X lp->code = '\n'; X lp->gset = GSET_ASCII; X } else if (c < ' ' || c == 0x7f && !(g & CS96)) { --- 2003,2025 ---- X * Just hoping that there will always be enough space allocated for X * new lines. X */ ! if (nlpres != False && ch[ecol].attr & NL_TAG) X ecol++; X for (i = scol; i < ecol; i++) { X #ifdef KTERM X c = ch[i].code & ~NEEDMAP; X g = ch[i].gset; ! if (tabpres != False && ch[i].attr & TAB_TAG) { X lp->code = '\t'; X lp->gset = GSET_ASCII; X i++; X while(i < ecol && ch[i].code == '\0' && ! !(ch[i].attr & TAB_TAG)) X i++; X if (i < ecol && ! (ch[i].code != '\0' || ch[i].attr & TAB_TAG)) X i--; ! } else if (nlpres != False && ch[i].attr & NL_TAG) { X lp->code = '\n'; X lp->gset = GSET_ASCII; X } else if (c < ' ' || c == 0x7f && !(g & CS96)) { *** kterm-4.1.2.7/charproc.c.ORIG Sun May 26 21:28:19 1991 --- charproc.c Mon May 27 04:18:20 1991 *************** *** 119,125 **** X #define XtNlogInhibit "logInhibit" X #define XtNloginShell "loginShell" X #define XtNmarginBell "marginBell" ! #define XtNtabNlPreserve "tabNlPreserve" X #define XtNpointerColor "pointerColor" X #define XtNpointerColorBackground "pointerColorBackground" X #define XtNpointerShape "pointerShape" --- 119,126 ---- X #define XtNlogInhibit "logInhibit" X #define XtNloginShell "loginShell" X #define XtNmarginBell "marginBell" ! #define XtNtabPreserve "tabPreserve" ! #define XtNnlPreserve "nlPreserve" X #define XtNpointerColor "pointerColor" X #define XtNpointerColorBackground "pointerColorBackground" X #define XtNpointerShape "pointerShape" *************** *** 175,180 **** --- 176,191 ---- X #define XtCC132 "C132" X #define XtCCharClass "CharClass" X #define XtCCurses "Curses" + #ifdef COLOR_TEXT /* mukawa */ + #define XtCColor0 "Color0" + #define XtCColor1 "Color1" + #define XtCColor2 "Color2" + #define XtCColor3 "Color3" + #define XtCColor4 "Color4" + #define XtCColor5 "Color5" + #define XtCColor6 "Color6" + #define XtCColor7 "Color7" + #endif /* COLOR_TEXT */ X #define XtCCutNewline "CutNewline" X #define XtCCutToBeginningOfLine "CutToBeginningOfLine" X #define XtCEightBitInput "EightBitInput" *************** *** 184,190 **** X #define XtCLogging "Logging" X #define XtCLogInhibit "LogInhibit" X #define XtCLoginShell "LoginShell" ! #define XtCTabNlPreserve "TabNlPreserve" X #define XtCMarginBell "MarginBell" X #define XtCMultiClickTime "MultiClickTime" X #define XtCMultiScroll "MultiScroll" --- 195,202 ---- X #define XtCLogging "Logging" X #define XtCLogInhibit "LogInhibit" X #define XtCLoginShell "LoginShell" ! #define XtCTabPreserve "TabPreserve" ! #define XtCNlPreserve "NlPreserve" X #define XtCMarginBell "MarginBell" X #define XtCMultiClickTime "MultiClickTime" X #define XtCMultiScroll "MultiScroll" *************** *** 398,404 **** X { "set-allow132", HandleAllow132 }, X { "set-cursesemul", HandleCursesEmul }, X { "set-marginbell", HandleMarginBell }, ! { "set-tabnlpres", HandleTabNlPreserve }, X { "set-altscreen", HandleAltScreen }, X { "soft-reset", HandleSoftReset }, X { "hard-reset", HandleHardReset }, --- 410,417 ---- X { "set-allow132", HandleAllow132 }, X { "set-cursesemul", HandleCursesEmul }, X { "set-marginbell", HandleMarginBell }, ! { "set-tabpres", HandleTabPreserve }, ! { "set-nlpres", HandleNLPreserve }, X { "set-altscreen", HandleAltScreen }, X { "soft-reset", HandleSoftReset }, X { "hard-reset", HandleHardReset }, *************** *** 465,471 **** X * The following two resources need to be set in the default app X * resources file or the users app resources file. They are X * directory and filename info on the Big5 <-> GuoBiao conversion ! * tables X */ X {XtNhanziGbToBigTable, XtCHanziGbToBigTable, XtRString, sizeof(char *), X XtOffset(XtermWidget, misc.hz_gb2big_tbl), XtRString, --- 478,484 ---- X * The following two resources need to be set in the default app X * resources file or the users app resources file. They are X * directory and filename info on the Big5 <-> GuoBiao conversion ! * tables. X */ X {XtNhanziGbToBigTable, XtCHanziGbToBigTable, XtRString, sizeof(char *), X XtOffset(XtermWidget, misc.hz_gb2big_tbl), XtRString, *************** *** 484,489 **** --- 497,508 ---- X {XtNhangulMode, XtCHangulMode, XtRString, sizeof(char *), X XtOffset(XtermWidget, misc.hg_m), XtRString, X (caddr_t) NULL}, + /* + * The following resource needs to be set in the default app + * resources file or the users app resources file. It is + * directory and filename info on the N-byte <-> KS conversion + * table. + */ X {XtNhangulNtoKSTable, XtCHangulNtoKSTable, XtRString, sizeof(char *), X XtOffset(XtermWidget, misc.hg_n2ks_tbl), XtRString, X (caddr_t) NULL}, *************** *** 524,551 **** X XtOffset(XtermWidget, screen.cursorcolor), X XtRString, "XtDefaultForeground"}, X #ifdef COLOR_TEXT /* mukawa */ ! {XtNcolor0, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[0]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor1, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[1]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor2, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[2]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor3, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[3]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor4, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[4]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor5, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[5]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor6, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[6]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor7, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[7]), X XtRString, "XtDefaultForeground"}, X #endif /* COLOR_TEXT */ --- 543,570 ---- X XtOffset(XtermWidget, screen.cursorcolor), X XtRString, "XtDefaultForeground"}, X #ifdef COLOR_TEXT /* mukawa */ ! {XtNcolor0, XtCColor0, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[0]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor1, XtCColor1, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[1]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor2, XtCColor2, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[2]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor3, XtCColor3, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[3]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor4, XtCColor4, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[4]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor5, XtCColor5, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[5]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor6, XtCColor6, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[6]), X XtRString, "XtDefaultForeground"}, ! {XtNcolor7, XtCColor7, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.textcolor[7]), X XtRString, "XtDefaultForeground"}, X #endif /* COLOR_TEXT */ *************** *** 582,589 **** X {XtNmarginBell, XtCMarginBell, XtRBoolean, sizeof(Boolean), X XtOffset(XtermWidget, screen.marginbell), X XtRBoolean, (caddr_t) &defaultFALSE}, ! {XtNtabNlPreserve, XtCTabNlPreserve, XtRBoolean, sizeof(Boolean), ! XtOffset(XtermWidget, screen.tabnlpres), X XtRBoolean, (caddr_t) &defaultFALSE}, X {XtNpointerColor, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.mousecolor), --- 601,611 ---- X {XtNmarginBell, XtCMarginBell, XtRBoolean, sizeof(Boolean), X XtOffset(XtermWidget, screen.marginbell), X XtRBoolean, (caddr_t) &defaultFALSE}, ! {XtNtabPreserve, XtCTabPreserve, XtRBoolean, sizeof(Boolean), ! XtOffset(XtermWidget, screen.tabpres), ! XtRBoolean, (caddr_t) &defaultFALSE}, ! {XtNnlPreserve, XtCNlPreserve, XtRBoolean, sizeof(Boolean), ! XtOffset(XtermWidget, screen.nlpres), X XtRBoolean, (caddr_t) &defaultFALSE}, X {XtNpointerColor, XtCForeground, XtRPixel, sizeof(Pixel), X XtOffset(XtermWidget, screen.mousecolor), *************** *** 3469,3475 **** X new->screen.jumpscroll = request->screen.jumpscroll; X new->screen.logfile = request->screen.logfile; X new->screen.marginbell = request->screen.marginbell; ! new->screen.tabnlpres = request->screen.tabnlpres; X new->screen.mousecolor = request->screen.mousecolor; X new->screen.mousecolorback = request->screen.mousecolorback; X new->screen.multiscroll = request->screen.multiscroll; --- 3491,3498 ---- X new->screen.jumpscroll = request->screen.jumpscroll; X new->screen.logfile = request->screen.logfile; X new->screen.marginbell = request->screen.marginbell; ! new->screen.tabpres = request->screen.tabpres; ! new->screen.nlpres = request->screen.nlpres; X new->screen.mousecolor = request->screen.mousecolor; X new->screen.mousecolorback = request->screen.mousecolorback; X new->screen.multiscroll = request->screen.multiscroll; *** kterm-4.1.2.7/kterm.man.ORIG Sun May 26 22:49:40 1991 --- kterm.man Sun May 26 22:54:01 1991 *************** *** 100,105 **** --- 100,121 ---- X This option indicates that \fIkterm\fP should connect to the X server X without KEEPALIVE socket option. X .TP 8 + .BI \-np + This option indicates that \fIkterm\fP should preserve newlines (^J) + in selections. + .TP 8 + .BI \+np + This option indicates that \fIkterm\fP should not preserve newlines (^J) + in selections. + .TP 8 + .BI \-tp + This option indicates that \fIkterm\fP should preserve tabs (^I) + in selections. + .TP 8 + .BI \+tp + This option indicates that \fIkterm\fP should not preserve tabs (^I) + in selections. + .TP 8 X .BI \-lang " language" X This option sets the language of the text being displayed. X .br *** kterm-4.1.2.7/main.c.ORIG Sun May 26 21:10:37 1991 --- main.c Sun May 26 21:13:25 1991 *************** *** 467,472 **** --- 467,474 ---- X {"-mc", "*multiClickTime", XrmoptionSepArg, (caddr_t) NULL}, X {"-ms", "*pointerColor",XrmoptionSepArg, (caddr_t) NULL}, X {"-nb", "*nMarginBell", XrmoptionSepArg, (caddr_t) NULL}, + {"-np", "*nlPreserve", XrmoptionNoArg, (caddr_t) "on"}, + {"+np", "*nlPreserve", XrmoptionNoArg, (caddr_t) "off"}, X {"-rw", "*reverseWrap", XrmoptionNoArg, (caddr_t) "on"}, X {"+rw", "*reverseWrap", XrmoptionNoArg, (caddr_t) "off"}, X {"-s", "*multiScroll", XrmoptionNoArg, (caddr_t) "on"}, *************** *** 490,497 **** X {"+t", "*tekStartup", XrmoptionNoArg, (caddr_t) "off"}, X {"-tm", "*ttyModes", XrmoptionSepArg, (caddr_t) NULL}, X {"-tn", "*termName", XrmoptionSepArg, (caddr_t) NULL}, ! {"-tnp", "*tabNlPreserve", XrmoptionNoArg, (caddr_t) "on"}, ! {"+tnp", "*tabNlPreserve", XrmoptionNoArg, (caddr_t) "off"}, X {"-ut", "*utmpInhibit", XrmoptionNoArg, (caddr_t) "on"}, X {"+ut", "*utmpInhibit", XrmoptionNoArg, (caddr_t) "off"}, X {"-vb", "*visualBell", XrmoptionNoArg, (caddr_t) "on"}, --- 492,499 ---- X {"+t", "*tekStartup", XrmoptionNoArg, (caddr_t) "off"}, X {"-tm", "*ttyModes", XrmoptionSepArg, (caddr_t) NULL}, X {"-tn", "*termName", XrmoptionSepArg, (caddr_t) NULL}, ! {"-tp", "*tabPreserve", XrmoptionNoArg, (caddr_t) "on"}, ! {"+tp", "*tabPreserve", XrmoptionNoArg, (caddr_t) "off"}, X {"-ut", "*utmpInhibit", XrmoptionNoArg, (caddr_t) "on"}, X {"+ut", "*utmpInhibit", XrmoptionNoArg, (caddr_t) "off"}, X {"-vb", "*visualBell", XrmoptionNoArg, (caddr_t) "on"}, *** kterm-4.1.2.7/menu.c.ORIG Sun May 26 21:17:39 1991 --- menu.c Sun May 26 21:50:20 1991 *************** *** 31,37 **** X do_reversevideo(), do_autowrap(), do_reversewrap(), do_autolinefeed(), X do_appcursor(), do_appkeypad(), do_scrollkey(), do_scrollttyoutput(), X do_allow132(), do_cursesemul(), do_marginbell(), do_tekshow(), ! do_tabnlpres(), X do_altscreen(), do_softreset(), do_hardreset(), do_tekmode(), do_vthide(), X do_tektextlarge(), do_tektext2(), do_tektext3(), do_tektextsmall(), X do_tekpage(), do_tekreset(), do_tekcopy(), do_vtshow(), do_vtmode(), --- 31,37 ---- X do_reversevideo(), do_autowrap(), do_reversewrap(), do_autolinefeed(), X do_appcursor(), do_appkeypad(), do_scrollkey(), do_scrollttyoutput(), X do_allow132(), do_cursesemul(), do_marginbell(), do_tekshow(), ! do_tabpres(), do_nlpres(), X do_altscreen(), do_softreset(), do_hardreset(), do_tekmode(), do_vthide(), X do_tektextlarge(), do_tektext2(), do_tektext3(), do_tektextsmall(), X do_tekpage(), do_tekreset(), do_tekcopy(), do_vtshow(), do_vtmode(), *************** *** 86,102 **** X { "cursesemul", do_cursesemul, NULL }, /* 11 */ X { "visualbell", do_visualbell, NULL }, /* 12 */ X { "marginbell", do_marginbell, NULL }, /* 13 */ ! { "tabnlpres", do_tabnlpres, NULL }, /* 14 */ ! { "altscreen", do_altscreen, NULL }, /* 15 */ ! { "line1", NULL, NULL }, /* 16 */ ! { "softreset", do_softreset, NULL }, /* 17 */ ! { "hardreset", do_hardreset, NULL }, /* 18 */ ! { "line2", NULL, NULL }, /* 19 */ ! { "tekshow", do_tekshow, NULL }, /* 20 */ ! { "tekmode", do_tekmode, NULL }, /* 21 */ X #if defined(STATUSLINE) || defined(KTERM_KANJI) ! { "vthide", do_vthide, NULL }, /* 22 */ ! { "line3", NULL, NULL }, /* 23 */ X #ifdef STATUSLINE X { "statusline", do_statusline, NULL }, X { "reversestatus", do_reversestatus, NULL }, --- 86,103 ---- X { "cursesemul", do_cursesemul, NULL }, /* 11 */ X { "visualbell", do_visualbell, NULL }, /* 12 */ X { "marginbell", do_marginbell, NULL }, /* 13 */ ! { "tabpres", do_tabpres, NULL }, /* 14 */ ! { "nlpres", do_nlpres, NULL }, /* 15 */ ! { "altscreen", do_altscreen, NULL }, /* 16 */ ! { "line1", NULL, NULL }, /* 17 */ ! { "softreset", do_softreset, NULL }, /* 18 */ ! { "hardreset", do_hardreset, NULL }, /* 19 */ ! { "line2", NULL, NULL }, /* 20 */ ! { "tekshow", do_tekshow, NULL }, /* 21 */ ! { "tekmode", do_tekmode, NULL }, /* 22 */ X #if defined(STATUSLINE) || defined(KTERM_KANJI) ! { "vthide", do_vthide, NULL }, /* 23 */ ! { "line3", NULL, NULL }, /* 24 */ X #ifdef STATUSLINE X { "statusline", do_statusline, NULL }, X { "reversestatus", do_reversestatus, NULL }, *************** *** 223,229 **** X update_visualbell(); X #endif X update_marginbell(); ! update_tabnlpres(); X #ifdef STATUSLINE X update_statusline(); X set_reversestatus_sensitivity(); --- 224,231 ---- X update_visualbell(); X #endif X update_marginbell(); ! update_tabpres(); ! update_nlpres(); X #ifdef STATUSLINE X update_statusline(); X set_reversestatus_sensitivity(); *************** *** 685,700 **** X update_marginbell(); X } X ! static void do_tabnlpres (gw, closure, data) X Widget gw; X caddr_t closure, data; X { X register TScreen *screen = &term->screen; X ! screen->tabnlpres = !screen->tabnlpres; ! update_tabnlpres(); X } X X static void handle_tekshow (gw, allowswitch) X Widget gw; X Bool allowswitch; --- 687,712 ---- X update_marginbell(); X } X ! static void do_tabpres (gw, closure, data) X Widget gw; X caddr_t closure, data; X { X register TScreen *screen = &term->screen; X ! screen->tabpres = !screen->tabpres; ! update_tabpres(); X } X + static void do_nlpres (gw, closure, data) + Widget gw; + caddr_t closure, data; + { + register TScreen *screen = &term->screen; + + screen->nlpres = !screen->nlpres; + update_nlpres(); + } + X static void handle_tekshow (gw, allowswitch) X Widget gw; X Bool allowswitch; *************** *** 1362,1374 **** X params, *param_count, w, NULL, NULL); X } X ! void HandleTabNlPreserve(w, event, params, param_count) X Widget w; X XEvent *event; X String *params; X Cardinal *param_count; X { ! handle_toggle (do_tabnlpres, (int) term->screen.tabnlpres, X params, *param_count, w, NULL, NULL); X } X --- 1374,1396 ---- X params, *param_count, w, NULL, NULL); X } X ! void HandleTabPreserve(w, event, params, param_count) ! Widget w; ! XEvent *event; ! String *params; ! Cardinal *param_count; ! { ! handle_toggle (do_tabpres, (int) term->screen.tabpres, ! params, *param_count, w, NULL, NULL); ! } ! ! void HandleNLPreserve(w, event, params, param_count) X Widget w; X XEvent *event; X String *params; X Cardinal *param_count; X { ! handle_toggle (do_nlpres, (int) term->screen.nlpres, X params, *param_count, w, NULL, NULL); X } X *** kterm-4.1.2.7/menu.h.ORIG Sun May 26 21:13:36 1991 --- menu.h Sun May 26 21:17:30 1991 *************** *** 26,32 **** X HandleAutoWrap(), HandleReverseWrap(), HandleAutoLineFeed(), X HandleAppCursor(), HandleAppKeypad(), HandleScrollKey(), X HandleScrollTtyOutput(), HandleAllow132(), HandleCursesEmul(), ! HandleMarginBell(), HandleTabNlPreserve(), HandleAltScreen(), HandleSoftReset(), X HandleHardReset(), HandleSetTerminalType(), HandleVisibility(), X HandleSetTekText(), HandleTekPage(), HandleTekReset(), HandleTekCopy(); X #ifdef STATUSLINE --- 26,33 ---- X HandleAutoWrap(), HandleReverseWrap(), HandleAutoLineFeed(), X HandleAppCursor(), HandleAppKeypad(), HandleScrollKey(), X HandleScrollTtyOutput(), HandleAllow132(), HandleCursesEmul(), ! HandleMarginBell(), HandleTabPreserve(), HandleNLPreserve(), ! HandleAltScreen(), HandleSoftReset(), X HandleHardReset(), HandleSetTerminalType(), HandleVisibility(), X HandleSetTekText(), HandleTekPage(), HandleTekReset(), HandleTekCopy(); X #ifdef STATUSLINE *************** *** 78,94 **** X #define vtMenu_cursesemul 11 X #define vtMenu_visualbell 12 X #define vtMenu_marginbell 13 ! #define vtMenu_tabnlpres 14 ! #define vtMenu_altscreen 15 ! #define vtMenu_line1 16 ! #define vtMenu_softreset 17 ! #define vtMenu_hardreset 18 ! #define vtMenu_line2 19 ! #define vtMenu_tekshow 20 ! #define vtMenu_tekmode 21 ! #define vtMenu_vthide 22 X #if defined(STATUSLINE) || defined(KTERM_KANJI) ! # define vtMenu_line3 23 X #endif /* STATUSLINE || KTERM_KANJI */ X #ifdef STATUSLINE X # define vtMenu_statusline (vtMenu_line3+1) --- 79,96 ---- X #define vtMenu_cursesemul 11 X #define vtMenu_visualbell 12 X #define vtMenu_marginbell 13 ! #define vtMenu_tabpres 14 ! #define vtMenu_nlpres 15 ! #define vtMenu_altscreen 16 ! #define vtMenu_line1 17 ! #define vtMenu_softreset 18 ! #define vtMenu_hardreset 19 ! #define vtMenu_line2 20 ! #define vtMenu_tekshow 21 ! #define vtMenu_tekmode 22 ! #define vtMenu_vthide 23 X #if defined(STATUSLINE) || defined(KTERM_KANJI) ! # define vtMenu_line3 24 X #endif /* STATUSLINE || KTERM_KANJI */ X #ifdef STATUSLINE X # define vtMenu_statusline (vtMenu_line3+1) *************** *** 261,270 **** X vtMenuEntries[vtMenu_marginbell].widget, \ X term->screen.marginbell) X ! #define update_tabnlpres() \ X update_menu_item (term->screen.vtMenu, \ ! vtMenuEntries[vtMenu_tabnlpres].widget, \ ! term->screen.tabnlpres) X X #define update_altscreen() \ X update_menu_item (term->screen.vtMenu, \ --- 263,277 ---- X vtMenuEntries[vtMenu_marginbell].widget, \ X term->screen.marginbell) X ! #define update_tabpres() \ X update_menu_item (term->screen.vtMenu, \ ! vtMenuEntries[vtMenu_tabpres].widget, \ ! term->screen.tabpres) ! ! #define update_nlpres() \ ! update_menu_item (term->screen.vtMenu, \ ! vtMenuEntries[vtMenu_nlpres].widget, \ ! term->screen.nlpres) X X #define update_altscreen() \ X update_menu_item (term->screen.vtMenu, \ *** kterm-4.1.2.7/patchlevel.h.ORIG Sun May 26 23:07:38 1991 --- patchlevel.h Sun May 26 23:07:50 1991 *************** *** 1 **** ! #define patchlevel 7 --- 1 ---- ! #define patchlevel 8 *** kterm-4.1.2.7/ptyx.h.ORIG Sun May 26 20:06:50 1991 --- ptyx.h Sun May 26 21:17:08 1991 *************** *** 390,396 **** X Boolean marginbell; /* true if margin bell on */ X int nmarginbell; /* columns from right margin */ X int bellarmed; /* cursor below bell margin */ ! Boolean tabnlpres; /* true if TAB/NL preserved */ X Boolean multiscroll; /* true if multi-scroll */ X int scrolls; /* outstanding scroll count */ X SavedCursor sc; /* data for restore cursor */ --- 390,397 ---- X Boolean marginbell; /* true if margin bell on */ X int nmarginbell; /* columns from right margin */ X int bellarmed; /* cursor below bell margin */ ! Boolean tabpres; /* true if TAB preserved */ ! Boolean nlpres; /* true if NL preserved */ X Boolean multiscroll; /* true if multi-scroll */ X int scrolls; /* outstanding scroll count */ X SavedCursor sc; /* data for restore cursor */ *************** *** 590,610 **** X #define INVERSE 0x01 /* invert the characters to be output */ X #define UNDERLINE 0x02 /* true if underlining */ X #define BOLD 0x04 ! #define NL_TAG 0x08 ! #define TAB_TAG 0x10 X #ifdef COLOR_TEXT /* mukawa */ X #define COLOR_TEXT_MASK 0x78 /* text color RGB attribute. */ X #define COLOR_TEXT_MASK2 0xf X #define COLOR_TEXT_SHIFT 3 ! #define COLOR_TEXT_ADJUST 3 ! #define COLOR_TEXT0 0x18 ! #define COLOR_TEXT1 0x20 ! #define COLOR_TEXT2 0x28 ! #define COLOR_TEXT3 0x30 ! #define COLOR_TEXT4 0x38 ! #define COLOR_TEXT5 0x40 ! #define COLOR_TEXT6 0x48 ! #define COLOR_TEXT7 0x50 X #define WRAPAROUND 0x80 X #define REVERSE_VIDEO 0x100 /* true if screen white on black */ X #define ORIGIN 0x200 /* true if in origin mode */ --- 591,611 ---- X #define INVERSE 0x01 /* invert the characters to be output */ X #define UNDERLINE 0x02 /* true if underlining */ X #define BOLD 0x04 ! #define NL_TAG 0x10 ! #define TAB_TAG 0x20 X #ifdef COLOR_TEXT /* mukawa */ X #define COLOR_TEXT_MASK 0x78 /* text color RGB attribute. */ X #define COLOR_TEXT_MASK2 0xf X #define COLOR_TEXT_SHIFT 3 ! #define COLOR_TEXT_ADJUST 8 ! #define COLOR_TEXT0 0x40 ! #define COLOR_TEXT1 0x48 ! #define COLOR_TEXT2 0x50 ! #define COLOR_TEXT3 0x58 ! #define COLOR_TEXT4 0x60 ! #define COLOR_TEXT5 0x68 ! #define COLOR_TEXT6 0x70 ! #define COLOR_TEXT7 0x78 X #define WRAPAROUND 0x80 X #define REVERSE_VIDEO 0x100 /* true if screen white on black */ X #define ORIGIN 0x200 /* true if in origin mode */ *** kterm-4.1.2.7/screen.c.ORIG Sun May 26 20:58:13 1991 --- screen.c Mon May 27 04:50:10 1991 *************** *** 1010,1016 **** X X #ifdef COLOR_TEXT /* mukawa */ X if(!cursorstate) { ! if (color & COLOR_TEXT_MASK) { X extern XtermWidget term; X XGCValues xgcv; X int cn; --- 1010,1017 ---- X X #ifdef COLOR_TEXT /* mukawa */ X if(!cursorstate) { ! if ((color & COLOR_TEXT_MASK) && ! ((color >> COLOR_TEXT_SHIFT) & COLOR_TEXT_ADJUST)) { X extern XtermWidget term; X XGCValues xgcv; X int cn; SHAR_EOF chmod 0664 PATCH || echo 'restore of PATCH failed' Wc_c="`wc -c < 'PATCH'`" test 28862 -eq "$Wc_c" || echo 'PATCH: original size 28862, current size' "$Wc_c" fi # ============= b2g ============== if test -f 'b2g' -a X"$1" != X"-c"; then echo 'x - skipping b2g (File already exists)' else echo 'x - extracting b2g (Text)' sed 's/^X//' << 'SHAR_EOF' > 'b2g' && xbtoa Begin ,75Y<#t&WMH#dV3BQP@^+>Gl93%QdE3&rNE3B8c9@X0(cF`(h77P5fWARuu2+Auo`CO%%*AT_m'+:9 >#$7/#17kHnp64+&c0f1R,5qt;e$DF/gXJ)A^USFueY+rV(\td$8TqTAtXeDYfXJ)A`XpUr,UV!;4U VERtU\pmhU\pmhU\pnEU%P,PUSsreUSnNpWMB?crLrnXoqA[bZ_@&coqB*n^S1=ooqAgf\"WI%U%P+ dTs^TeU%P+hTt-liU%P+jTt@#kU%P1ZUT"S-5qtY[+@._K7LGpfU]$mlTsLGqTs(/oTs:AeUS=OAUS jl^USaaX$DI9hm%LAOn=fBGpS%AUntGKFn"K?HoV(rOp7_/Qoa2$l1c7*45r:GU$HW/Q$:-L-5p/HM 2aIe\aU/A@1dNuA5r:kb$Fet$$:-L75p/HM5sYk-`X3&=2)[<75rCPX$Iucr$:-O.3$:LE2`M/gW!W kt2*sSO5rCtp$Hi#K$:-R-0H`Y>2)#B^X9o;#2FTGF5rM.g$FAk%$:-U-7NauU1e%hWn-TLg3'p"U5 r_2!$Gc*;$:.':5p/H]1dMJ[q?dQq6pX3`5t"",$G-'@$:.'H0d&bM688hbjpDG^1.F5G68D"i$J2H g$:6U.7Nb#T2F\%_U'_5o2+0bR68_.t$J+tZ$:6X;2]tFF68o7ulO!tc2aK;D68q1f$G7@68],A XX9o;%1,^j06S^PS$L@Ts$:?U973FrR6:D6sYR1_)2+0>F6T%7i$I?m&$:?^/0H`_@2)#BMmg9Ch7Pl eA6Uimd$G#[6$:HX,6QecP2+%_q^Bsr@ xbtoa End N 710 2c6 E 2c S 11068 R d1d867ef SHAR_EOF chmod 0664 b2g || echo 'restore of b2g failed' Wc_c="`wc -c < 'b2g'`" test 958 -eq "$Wc_c" || echo 'b2g: original size 958, current size' "$Wc_c" fi exit 0 ----------------------------------------------------------------------------- mleisher@nmsu.edu "I laughed. Mark Leisher I cried. Computing Research Lab I fell down. New Mexico State University It changed my life." Las Cruces, NM - Rich [Cowboy Feng's Space Bar and Grille] -- Dan Heller O'Reilly && Associates Z-Code Software Comp-sources-x: Senior Writer President comp-sources-x@uunet.uu.net argv@ora.com argv@zipcode.com