mleisher@NMSU.Edu (05/11/91)
Submitted-by: mleisher@NMSU.Edu Posting-number: Volume 12, Issue 91 Archive-name: kterm/part10 #!/bin/sh # this is kt412.10 (part 10 of kterm-4.1.2) # do not concatenate these parts, unpack them in order with /bin/sh # file kterm-4.1.2/convlib.c continued # if test ! -r _shar_seq_.tmp; then echo 'Please unpack part 1 first!' exit 1 fi (read Scheck if test "$Scheck" != 10; then echo Please unpack part "$Scheck" next! exit 1 else exit 0 fi ) < _shar_seq_.tmp || exit 1 if test ! -f _shar_wnt_.tmp; then echo 'x - still skipping kterm-4.1.2/convlib.c' else echo 'x - continuing file kterm-4.1.2/convlib.c' sed 's/^X//' << 'SHAR_EOF' >> 'kterm-4.1.2/convlib.c' && X } X X cap->display = disp; X X /* create atoms */ X cap->reqAtom = XInternAtom(disp, "CONVERSION_REQUEST", False); X cap->notifyAtom = XInternAtom(disp, "CONVERSION_NOTIFY", False); X cap->endAtom = XInternAtom(disp, "CONVERSION_END", False); X cap->endReqAtom = XInternAtom(disp, "CONVERSION_END_REQUEST", False); X X ndisp++; X X return cap; } X static ConversionContext * getConversionContext(w) Widget w; /* gets the context from widget window X * returns NULL if there is no such context X */ { X ConversionContext *context; X X if (XFindContext(XtDisplay(w), XtWindow(w), X convertPrivContext, (caddr_t *)&context)) { X /* error -- maybe the context is not found */ X return NULL; X } else { X return context; X } } X static void recvConvAck(w, closure, ev) Widget w; caddr_t closure; XXEvent *ev; { X XClientMessageEvent *cev = &(ev->xclient); X ConversionAtoms *cap; X ConversionContext *context; X X if (ev->type != ClientMessage) X return; X X cap = getAtoms(w); X context = getConversionContext(w); X X /* check if the event is correct */ X if (cev->window != XtWindow(w) || X cev->message_type != cap->notifyAtom || X cev->data.l[0] != context->convatom) X return; X X /* this event handler is no longer needed. so, remove it */ X XtRemoveEventHandler(w, NoEventMask, True, recvConvAck, closure); X X if (cev->data.l[2] == None) { X XtWarning("selection request failed"); X XDeleteContext(XtDisplay(w), XtWindow(w), convertPrivContext); X XtFree((char *)context); X return; X } X X /* X * add an event handler for PropertyNotify and CONVERSION_END X */ X XtAddEventHandler(w, PropertyChangeMask, True, getConv, closure); X X context->property = cev->data.l[2]; } X static void getConv(w, closure, ev) Widget w; caddr_t closure; XXEvent *ev; /* event handler that deals with PropertyNotify and ClientMessage events */ { X ConversionAtoms *cap; X ConversionContext *context; X X /* check event type */ X if (ev->type != PropertyNotify && X ev->type != ClientMessage) X return; X X cap = getAtoms(w); X context = getConversionContext(w); X X if (ev->type == ClientMessage) { X XClientMessageEvent *cev = &(ev->xclient); X X /* is it really CONVERSION_END event? */ X if (cev->message_type == cap->endAtom && X cev->format == 32 && X cev->data.l[0] == context->convatom) { X /* delete window context */ X XDeleteContext(XtDisplay(w), XtWindow(w), X convertPrivContext); X /* remove this event handler */ X XtRemoveEventHandler(w, PropertyChangeMask, True, X getConv, closure); X XtFree((char *)context); X } X } else { /* PropertyNotify */ X XPropertyEvent *pev = &(ev->xproperty); X Atom proptype; X int propformat; X unsigned long propsize, rest; X unsigned char *propvalue; X X if (context->property == None) X return; X X /* check if the event is what I need */ X if (pev->window != XtWindow(w) || X pev->atom != context->property || X pev->state != PropertyNewValue) { X return; X } X X /* if there is no callback function, we simply X * delete property and return X */ X if (context->inputproc == NULL) { X XDeleteProperty(XtDisplay(w), XtWindow(w), X context->property); X return; X } X X /* get conveted string from property */ X XGetWindowProperty(XtDisplay(w), XtWindow(w), X context->property, X 0, 100000, True, AnyPropertyType, X &proptype, &propformat, &propsize, &rest, X &propvalue); X X if (proptype == None) { X /* property not exist -- but it's not an error */ X return; X } X X /* call callback */ X (*context->inputproc)(w, context->convatom, X proptype, propformat, X propsize, propvalue, X context->closure); X } } X X /* X * public functions X */ X void _beginConversion(w, catom, tatom, inputproc, client_data) Widget w; Atom catom; /* Selection Atom e.g. JAPANESE_CONVERSION */ Atom tatom; /* Property Type Atom e.g. COMPOUND_TEXT */ void (*inputproc)(); /* conversion text callback function */ caddr_t client_data; /* client_data passed to callback function */ /* request conversion-service to conversion-server. X * language is specified by catom. X */ { X Window owner; X XEvent event; X ConversionAtoms *cap; X ConversionContext *context; X X cap = getAtoms(w); X X /* find conversion server */ X if ((owner = XGetSelectionOwner(XtDisplay(w), catom)) == None) { X /* X * No owner X * if I'm in conversion mode, stop it. X */ X XtWarning("Conversion Server not found"); X if ((context = getConversionContext(w)) != NULL) { X XtRemoveEventHandler(w, NoEventMask, True, X recvConvAck, NULL); X XtRemoveEventHandler(w, PropertyChangeMask, True, X getConv, NULL); X XDeleteContext(XtDisplay(w), XtWindow(w), X convertPrivContext); X XtFree((char *)context); X } X return; X } X X /* X * Check if I am in conversion mode. X * If so, return immediately... No, things are not so easy. X * Because, if the conversion server was killed for some reason, X * sometimes the application didn't get CONVERSION_END. X * So, even if in conversion mode, get selection owner and X * compare with the one saved. X * Also I wanna check the time when it becomes the owner, X * but I can't get it by GetSelectionOwber() as ICCCM says. X */ X if ((context = getConversionContext(w)) != NULL) { X Window curOwner; X curOwner = (catom == context->convatom) ? owner : X XGetSelectionOwner(XtDisplay(w), context->convatom); X if (curOwner == context->convowner) { X /* do nothing */ X return; X } X /* X * SelectionOwner has changed. The conversion server X * was crushed. So, stop conversion. X */ X XtRemoveEventHandler(w, NoEventMask, True, recvConvAck, NULL); X XtRemoveEventHandler(w, PropertyChangeMask, True, getConv, NULL); X XDeleteContext(XtDisplay(w), XtWindow(w), convertPrivContext); X XtFree((char *)context); X } X X /* X * register a handler for CONVERSION_NOTIFY X * from the conversion server. X */ X XtAddEventHandler(w, NoEventMask, True, recvConvAck, NULL); X X /* make a new context and save data */ X context = XtNew(ConversionContext); X context->convatom = catom; X context->convowner = owner; X context->property = None; X context->inputproc = inputproc; X context->closure = client_data; X XSaveContext(XtDisplay(w), XtWindow(w), X convertPrivContext, (caddr_t)context); X X /* request conversion by sending ClientMessage event */ X event.xclient.type = ClientMessage; X event.xclient.window = owner; X event.xclient.message_type = cap->reqAtom; X event.xclient.format = 32; X event.xclient.data.l[0] = catom; X event.xclient.data.l[1] = XtWindow(w); X event.xclient.data.l[2] = tatom; X event.xclient.data.l[3] = catom; X event.xclient.data.l[4] = None; X XSendEvent(XtDisplay(w), owner, False, NoEventMask, &event); } X void _endConversion(w, catom, throwaway) Widget w; Atom catom; /* Selection Atom */ Boolean throwaway; /* force to terminate conversion. X * catom is a selection atom that is to be terminated. X * by specifying None to catom, you can terminate current conversion. X * if throwaway is true, all converted text sent after this call are X * discarded. X */ { X XEvent event; X ConversionAtoms *cap; X ConversionContext *context; X X cap = getAtoms(w); X context = getConversionContext(w); X X if (context == NULL || X (catom != None && catom != context->convatom)) X return; X X if (XGetSelectionOwner(XtDisplay(w), context->convatom) != X context->convowner) { X /* conversion server is different, or does not exist */ X XtRemoveEventHandler(w, NoEventMask, True, recvConvAck, NULL); X XtRemoveEventHandler(w, PropertyChangeMask, True, getConv, NULL); X /* delete window context */ X XDeleteContext(XtDisplay(w), XtWindow(w), convertPrivContext); X XtFree((char *)context); X return; X } X X if (throwaway) X context->inputproc = NULL; X X event.xclient.type = ClientMessage; X event.xclient.window = context->convowner; X event.xclient.message_type = cap->endReqAtom; X event.xclient.format = 32; X event.xclient.data.l[0] = context->convatom; X event.xclient.data.l[1] = XtWindow(w); X XSendEvent(XtDisplay(w), context->convowner, False, NoEventMask, &event); } SHAR_EOF echo 'File kterm-4.1.2/convlib.c is complete' && chmod 0664 kterm-4.1.2/convlib.c || echo 'restore of kterm-4.1.2/convlib.c failed' Wc_c="`wc -c < 'kterm-4.1.2/convlib.c'`" test 14017 -eq "$Wc_c" || echo 'kterm-4.1.2/convlib.c: original size 14017, current size' "$Wc_c" rm -f _shar_wnt_.tmp fi # ============= kterm-4.1.2/ctlseqs.ms ============== if test -f 'kterm-4.1.2/ctlseqs.ms' -a X"$1" != X"-c"; then echo 'x - skipping kterm-4.1.2/ctlseqs.ms (File already exists)' rm -f _shar_wnt_.tmp else > _shar_wnt_.tmp echo 'x - extracting kterm-4.1.2/ctlseqs.ms (Text)' sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/ctlseqs.ms' && .\"#! troff -Q -ms $1 .\" This is the "Xterm Control Sequences" document, originally written by .\" Edward Moy, University of California, Berkeley, for the X.V10R4 xterm. .\" Some minor edits have been made to begin to reconcile this document with .\" the current sources, but it still has a long way to go: .\" .\" 1) I don't guarantee that this is 100% correct. I tried most of .\" the things that seemed to be different, and this document .\" reflects what I saw. Stuff that appears to be in the X10R4 .\" document and missing from this document is so because it .\" appears not to be present in the X11 version of "xterm" (e.g., .\" the "Alternate Character ROM" character sets and the Sun TTY .\" emulation). .\" .\" 2) It is definitely not 100% complete; some escape sequences .\" that do something that's either unobservable - at least in .\" the current state of the code - or not useful aren't .\" documented. An example of the former are the Locking Shift .\" sequences that modify the interpretation of the GR .\" characters; at present, it sets a state variable that's .\" unused, but perhaps some future version will use it (perhaps .\" for displaying characters in the range 0200-0377?). An .\" example of the latter is the sequence to set DECANM mode .\" (ANSI/VT52 mode): it doesn't do what it does on a VT100, .\" namely get the terminal to emulate a VT100, it only seems to .\" fiddle the current character set a bit. .\" .\" 3) It doesn't document any of the mouse-related stuff, such as .\" what the "Track Mouse" escape sequence does, or what the .\" different mouse modes (MIT, VT220, "VT220 Hilite") do; I .\" leave that to somebody familiar with that part of the code.... .\" .\" Run this file through troff and use the -ms macro package. .ND .de St .sp .nr PD 0 .nr PI 1.5i .nr VS 16 . .de Ed .nr PD .3v .nr VS 12 . .rm CH .ds LH Xterm Control Sequences .nr s 6*\n(PS/10 .ds L \s\nsBEL\s0 .ds E \s\nsESC\s0 .ds T \s\nsTAB\s0 .ds X \s\nsETX\s0 .ds N \s\nsENQ\s0 .ds e \s\nsETB\s0 .ds C \s\nsCAN\s0 .ds S \s\nsSUB\s0 .nr [W \w'\*L'u .nr w \w'\*E'u .if \nw>\n([W .nr [W \nw .nr w \w'\*T'u .if \nw>\n([W .nr [W \nw .nr w \w'\*X'u .if \nw>\n([W .nr [W \nw .nr w \w'\*N'u .if \nw>\n([W .nr [W \nw .nr w \w'\*e'u .if \nw>\n([W .nr [W \nw .nr w \w'\*C'u .if \nw>\n([W .nr [W \nw .nr w \w'\*S'u .if \nw>\n([W .nr [W \nw .nr [W +\w'\|\|'u .de [] .nr w \w'\\$2' .nr H \\n([Wu-\\nwu .nr h \\nHu/2u .ds \\$1 \(br\v'-1p'\(br\v'1p'\h'\\nhu'\\$2\h'\\nHu-\\nhu'\(br\l'-\\n([Wu\(ul'\v'-1p'\(br\l'-\\n([Wu\(rn'\v'1p'\| . .[] Et \v'-1p'\*X\v'1p' .[] En \v'-1p'\*N\v'1p' .[] Be \v'-1p'\*L\v'1p' .[] Bs \v'-1p'\s\nsBS\s0\v'1p' .[] Ta \v'-1p'\*T\v'1p' .[] Lf \v'-1p'\s\nsLF\s0\v'1p' .[] Vt \v'-1p'\s\nsVT\s0\v'1p' .[] Ff \v'-1p'\s\nsFF\s0\v'1p' .[] Cr \v'-1p'\s\nsCR\s0\v'1p' .[] So \v'-1p'\s\nsSO\s0\v'1p' .[] Si \v'-1p'\s\nsSI\s0\v'1p' .[] Eb \v'-1p'\*e\v'1p' .[] Ca \v'-1p'\*C\v'1p' .[] Su \v'-1p'\*S\v'1p' .[] Es \v'-1p'\*E\v'1p' .[] Fs \v'-1p'\s\nsFS\s0\v'1p' .[] Gs \v'-1p'\s\nsGS\s0\v'1p' .[] Rs \v'-1p'\s\nsRS\s0\v'1p' .[] Us \v'-1p'\s\nsUS\s0\v'1p' .[] # # .[] (( ( .[] ) ) .[] * * .[] + + .[] 0 0 .[] 1 1 .[] 2 2 .[] 3 3 .[] 4 4 .[] 5 5 .[] 6 6 .[] 7 7 .[] 8 8 .[] 9 9 .[] : : .[] ; ; .[] = = .[] > > .[] ? ? .[] @ @ .[] A A .[] cB B .[] C C .[] D D .[] E E .[] F F .[] H H .[] J J .[] K K .[] L L .[] M M .[] N N .[] O O .[] P P .[] R R .[] S S .[] T T .[] Z Z .[] [[ [ .[] ] ] .[] ` \` .[] a a .[] b b .[] c c .[] d d .[] f f .[] g g .[] h h .[] i i .[] j j .[] k k .[] l l .[] m m .[] n n .[] o o .[] p p .[] q q .[] r r .[] s s .[] t t .[] x x .[] | | .[] } } .[] c~ ~ .ds Cc \fIC\fP .ds Ps \fIP\v'.3m'\h'-.2m'\s-2s\s0\v'-.3m'\fP .ds Pm \fIP\v'.3m'\h'-.2m'\s-2m\s0\v'-.3m'\fP .ds Pt \fIP\v'.3m'\h'-.2m'\s-2t\s0\v'-.3m'\fP .ds Ix \fIx\fP .ds Iy \fIy\fP .ds Iw \fIw\fP .ds Ih \fIh\fP .ds Ir \fIr\fP .ds Ic \fIc\fP .nr LL 6.5i .TL XXterm Control Sequences .am NP .ds CF % . .SH Definitions .IP \*(Cc A single (required) character. .IP \*(Ps A single (usually optional) numeric parameter, composed of one of more digits. .IP \*(Pm A multiple numeric parameter composed of any number of single numeric parameters, separated by \*; character(s). .IP \*(Pt A text parameter composed of printable characters. .SH VT102 Mode .ds RH VT102 Mode .LP Most of these control sequences are standard VT102 control sequences. There are, however, additional ones to provide control of .I xterm dependent functions, like the scrollbar or window size. .St .IP \\*(Be Bell (Ctrl-G) .IP \\*(Bs Backspace (Ctrl-H) .IP \\*(Ta Horizontal Tab (Ctrl-I) .IP \\*(Lf Line Feed or New Line (Ctrl-J) .IP \\*(Vt Vertical Tab (Ctrl-K) .IP \\*(Ff Form Feed or New Page (Ctrl-L) .IP \\*(Cr Carriage Return (Ctrl-M) .IP \\*(So Shift Out (Ctrl-N) \(-> Switch to Alternate Character Set .IP \\*(Si Shift In (Ctrl-O) \(-> Switch to Standard Character Set .IP \\*(Es\\*#\\*8 DEC Screen Alignment Test (DECALN) .IP \\*(Es\\*(((\\*(Cc Select G0 Character Set (SCS) X \*(Cc = \*0 \(-> Special Character and Line Drawing Set X \*(Cc = \*A \(-> United Kingdom (UK) X \*(Cc = \*(cB \(-> United States (USASCII) .IP \\*(Es\\*)\\*(Cc Select G1 Character Set (SCS) X \*(Cc = \*0 \(-> Special Character and Line Drawing Set X \*(Cc = \*A \(-> United Kingdom (UK) X \*(Cc = \*(cB \(-> United States (USASCII) .IP \\*(Es\\**\\*(Cc Select G2 Character Set (SCS) X \*(Cc = \*0 \(-> Special Character and Line Drawing Set X \*(Cc = \*A \(-> United Kingdom (UK) X \*(Cc = \*(cB \(-> United States (USASCII) .IP \\*(Es\\*+\\*(Cc Select G3 Character Set (SCS) X \*(Cc = \*0 \(-> Special Character and Line Drawing Set X \*(Cc = \*A \(-> United Kingdom (UK) X \*(Cc = \*(cB \(-> United States (USASCII) .IP \\*(Es\\*7 Save Cursor (DECSC) .IP \\*(Es\\*8 Restore Cursor (DECRC) .IP \\*(Es\\*= Application Keypad (DECPAM) .IP \\*(Es\\*> Normal Keypad (DECPNM) .IP \\*(Es\\*D Index (IND) .IP \\*(Es\\*E Next Line (NEL) .IP \\*(Es\\*H Tab Set (HTS) .IP \\*(Es\\*M Reverse Index (RI) .IP \\*(Es\\*N Single Shift Select of G2 Character Set (SS2) .IP \\*(Es\\*O Single Shift Select of G3 Character Set (SS3) .IP \\*(Es\\*Z Return Terminal ID (DECID) .IP \\*(Es\\*([[\\*(Ps\|\\*@ Insert \*(Ps (Blank) Character(s) (default = 1) (ICH) .IP \\*(Es\\*([[\\*(Ps\|\\*A Cursor Up \*(Ps Times (default = 1) (CUU) .IP \\*(Es\\*([[\\*(Ps\|\\*(cB Cursor Down \*(Ps Times (default = 1) (CUD) .IP \\*(Es\\*([[\\*(Ps\|\\*C Cursor Forward \*(Ps Times (default = 1) (CUF) .IP \\*(Es\\*([[\\*(Ps\|\\*D Cursor Backward \*(Ps Times (default = 1) (CUB) .IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*H Cursor Position [row;column] (default = [1,1]) (CUP) .IP \\*(Es\\*([[\\*(Ps\|\\*J Erase in Display (ED) X \*(Ps = \*0 \(-> Clear Below (default) X \*(Ps = \*1 \(-> Clear Above X \*(Ps = \*2 \(-> Clear All .IP \\*(Es\\*([[\\*(Ps\|\\*K Erase in Line (EL) X \*(Ps = \*0 \(-> Clear to Right (default) X \*(Ps = \*1 \(-> Clear to Left X \*(Ps = \*2 \(-> Clear All .IP \\*(Es\\*([[\\*(Ps\|\\*L Insert \*(Ps Line(s) (default = 1) (IL) .IP \\*(Es\\*([[\\*(Ps\|\\*M Delete \*(Ps Line(s) (default = 1) (DL) .IP \\*(Es\\*([[\\*(Ps\|\\*P Delete \*(Ps Character(s) (default = 1) (DCH) .IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*;\\*(Ps\|\\*;\\*(Ps\|\\*;\\*(Ps\|\\*T Track Mouse [func;startcol;startrow;firstrow;lastrow] XXX - describe .IP \\*(Es\\*([[\\*(Ps\|\\*c Device Attributes (default 0) (DA) .IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*f Horizontal and Vertical Position [row;column] (default = [1,1]) (HVP) .IP \\*(Es\\*([[\\*(Ps\|\\*g Tab Clear X \*(Ps = \*0 \(-> Clear Current Column (default) X \*(Ps = \*3 \(-> Clear All .IP \\*(Es\\*([[\\*(Ps\|\\*h Mode Set (SET) X \*(Ps = \*4 \(-> Insert Mode (IRM) X \*(Ps = \*2\*0 \(-> Automatic Linefeed (LNM) .IP \\*(Es\\*([[\\*(Ps\|\\*l Mode Reset (RST) X \*(Ps = \*4 \(-> Insert Mode (IRM) X \*(Ps = \*2\*0 \(-> Automatic Linefeed (LNM) .IP \\*(Es\\*([[\\*(Ps\|\\*m Character Attributes (SGR) X \*(Ps = \*0 \(-> Normal (default) X \*(Ps = \*1 \(-> Blink (appears as Bold) X \*(Ps = \*4 \(-> Underscore X \*(Ps = \*5 \(-> Bold X \*(Ps = \*7 \(-> Inverse X \*(Ps = \*30 \(-> Black Foreground X \*(Ps = \*31 \(-> Red Foreground X \*(Ps = \*32 \(-> Green Foreground X \*(Ps = \*33 \(-> Yellow Foreground X \*(Ps = \*34 \(-> Blue Foreground X \*(Ps = \*35 \(-> Magenta Foreground X \*(Ps = \*36 \(-> Cyan Foreground X \*(Ps = \*37 \(-> White Foreground X \*(Ps = \*40 \(-> Black Background X \*(Ps = \*41 \(-> Red Background X \*(Ps = \*42 \(-> Green Background X \*(Ps = \*43 \(-> Yellow Background X \*(Ps = \*44 \(-> Blue Background X \*(Ps = \*45 \(-> Magenta Background X \*(Ps = \*46 \(-> Cyan Background X \*(Ps = \*47 \(-> White Background .IP \\*(Es\\*([[\\*(Ps\|\\*n Device Status Report (DSR) X \*(Ps = 5 \(-> Status Report \*(Es\*([[\*0\*n \(-> OK X \*(Ps = 6 \(-> Report Cursor Position (CPR) [row;column] as \*(Es\*([[\*(Ir\|\*;\*(Ic\|\*R .IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*r Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM) .IP \\*(Es\\*([[\\*(Ps\|\\*x Request Terminal Parameters (DECREQTPARM) .IP \\*(Es\\*([[\\*?\\*(Ps\|\\*h DEC Private Mode Set (DECSET) X \*(Ps = \*1 \(-> Application Cursor Keys (DECCKM) X \*(Ps = \*3 \(-> 132 Column Mode (DECCOLM) X \*(Ps = \*4 \(-> Smooth (Slow) Scroll (DECSCLM) X \*(Ps = \*5 \(-> Reverse Video (DECSCNM) X \*(Ps = \*6 \(-> Origin Mode (DECOM) X \*(Ps = \*7 \(-> Wraparound Mode (DECAWM) X \*(Ps = \*8 \(-> Auto-repeat Keys (DECARM) X \*(Ps = \*9 \(-> Send MIT Mouse Row & Column on Button Press X \*(Ps = \*3\*8 \(-> Enter Tektronix Mode (DECTEK) X \*(Ps = \*4\*0 \(-> Allow 80 \z\(<-\(-> 132 Mode X \*(Ps = \*4\*1 \(-> \fIcurses\fP(5) fix X \*(Ps = \*4\*4 \(-> Turn On Margin Bell X \*(Ps = \*4\*5 \(-> Reverse-wraparound Mode X \*(Ps = \*4\*6 \(-> Start Logging X \*(Ps = \*4\*7 \(-> Use Alternate Screen Buffer X \*(Ps = \*1\*0\*0\*0 \(-> Send VT200 Mouse Row & Column on Button Press X \*(Ps = \*1\*0\*0\*3 \(-> Send VT200 Hilite Mouse Row & Column on Button Press .IP \\*(Es\\*([[\\*?\\*(Ps\|\\*l DEC Private Mode Reset (DECRST) X \*(Ps = \*1 \(-> Normal Cursor Keys (DECCKM) X \*(Ps = \*3 \(-> 80 Column Mode (DECCOLM) X \*(Ps = \*4 \(-> Jump (Fast) Scroll (DECSCLM) X \*(Ps = \*5 \(-> Normal Video (DECSCNM) X \*(Ps = \*6 \(-> Normal Cursor Mode (DECOM) X \*(Ps = \*7 \(-> No Wraparound Mode (DECAWM) X \*(Ps = \*8 \(-> No Auto-repeat Keys (DECARM) X \*(Ps = \*9 \(-> Don't Send Mouse Row & Column on Button Press X \*(Ps = \*4\*0 \(-> Disallow 80 \z\(<-\(-> 132 Mode X \*(Ps = \*4\*1 \(-> No \fIcurses\fP(5) fix X \*(Ps = \*4\*4 \(-> Turn Off Margin Bell X \*(Ps = \*4\*5 \(-> No Reverse-wraparound Mode X \*(Ps = \*4\*6 \(-> Stop Logging X \*(Ps = \*4\*7 \(-> Use Normal Screen Buffer X \*(Ps = \*1\*0\*0\*0 \(-> Don't Send Mouse Row & Column on Button Press X \*(Ps = \*1\*0\*0\*3 \(-> Don't Send Mouse Row & Column on Button Press .IP \\*(Es\\*([[\\*?\\*(Ps\|\\*r Restore DEC Private Mode X \*(Ps = \*1 \(-> Normal/Application Cursor Keys (DECCKM) X \*(Ps = \*3 \(-> 80/132 Column Mode (DECCOLM) X \*(Ps = \*4 \(-> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) X \*(Ps = \*5 \(-> Normal/Reverse Video (DECSCNM) X \*(Ps = \*6 \(-> Normal/Origin Cursor Mode (DECOM) X \*(Ps = \*7 \(-> No Wraparound/Wraparound Mode (DECAWM) X \*(Ps = \*8 \(-> Auto-repeat/No Auto-repeat Keys (DECARM) X \*(Ps = \*9 \(-> Don't Send/Send MIT Mouse Row & Column on Button Press X \*(Ps = \*4\*0 \(-> Disallow/Allow 80 \z\(<-\(-> 132 Mode X \*(Ps = \*4\*1 \(-> Off/On \fIcurses\fP(5) fix X \*(Ps = \*4\*4 \(-> Turn Off/On Margin Bell X \*(Ps = \*4\*5 \(-> No Reverse-wraparound/Reverse-wraparound Mode X \*(Ps = \*4\*6 \(-> Stop/Start Logging X \*(Ps = \*4\*7 \(-> Use Normal/Alternate Screen Buffer X \*(Ps = \*1\*0\*0\*0 \(-> Don't Send/Send VT220 Mouse Row & Column on Button Press X \*(Ps = \*1\*0\*0\*3 \(-> Don't Send/Send VT220 Hilite Mouse Row & Column on Button Press .IP \\*(Es\\*([[\\*?\\*(Ps\|\\*s Save DEC Private Mode X \*(Ps = \*1 \(-> Normal/Application Cursor Keys (DECCKM) X \*(Ps = \*3 \(-> 80/132 Column Mode (DECCOLM) X \*(Ps = \*4 \(-> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) X \*(Ps = \*5 \(-> Normal/Reverse Video (DECSCNM) X \*(Ps = \*6 \(-> Normal/Origin Cursor Mode (DECOM) X \*(Ps = \*7 \(-> No Wraparound/Wraparound Mode (DECAWM) X \*(Ps = \*8 \(-> Auto-repeat/No Auto-repeat Keys (DECARM) X \*(Ps = \*9 \(-> Don't Send/Send MIT Mouse Row & Column on Button Press X \*(Ps = \*4\*0 \(-> Disallow/Allow 80 \z\(<-\(-> 132 Mode X \*(Ps = \*4\*1 \(-> Off/On \fIcurses\fP(5) fix X \*(Ps = \*4\*4 \(-> Turn Off/On Margin Bell X \*(Ps = \*4\*5 \(-> No Reverse-wraparound/Reverse-wraparound Mode X \*(Ps = \*4\*6 \(-> Stop/Start Logging X \*(Ps = \*4\*7 \(-> Use Normal/Alternate Screen Buffer X \*(Ps = \*1\*0\*0\*0 \(-> Don't Send/Send VT220 Mouse Row & Column on Button Press X \*(Ps = \*1\*0\*0\*3 \(-> Don't Send/Send VT220 Hilite Mouse Row & Column on Button Press .IP \\*(Es\\*]\\*(Ps\|\\*;\\*(Pt\|\\*(Be Set Text Parameters X \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt X \*(Ps = \*1 \(-> Change Icon Name to \*(Pt X \*(Ps = \*2 \(-> Change Window Title to \*(Pt X \*(Ps = \*1\*0 \(-> Change VT102 Foreground color to \*(Pt X \*(Ps = \*1\*1 \(-> Change VT102 Background color to \*(Pt X \*(Ps = \*1\*2 \(-> Change VT102 Text Cursor color to \*(Pt X \*(Ps = \*1\*3 \(-> Change VT102 Mouse Foreground color to \*(Pt X \*(Ps = \*1\*4 \(-> Change VT102 Mouse Background color to \*(Pt X \*(Ps = \*1\*5 \(-> Change Tektronix Foreground color to \*(Pt X \*(Ps = \*1\*6 \(-> Change Tektronix Background color to \*(Pt X \*(Ps = \*4\*6 \(-> Change Log File to \*(Pt .LP The string arguments to the Change color sequences may be any legal X color specification -- either name or numeric specification. The index value for the Change Color sequences is the starting index of the colors to change. You may change any number of sequential colors in a single sequence. For example: .br \\*(Es\\*]10;White\!\\*;Firebrick\!\\*;#ffff00\\*(Be .br Sets the VT102 primary rendition foreground color to White, the the primary rendition backtround color to Firebrick and the Text Cursor color to a bright yellow color. .IP \\*(Es\\*c Full Reset (RIS) .IP \\*(Es\\*n Locking Shift Select of G2 Character Set (LS2) .IP \\*(Es\\*o Locking Shift Select of G3 Character Set (LS3) .Ed .SH Tektronix 4015 Mode .ds RH Tektronix 4015 Mode .LP Most of these sequences are standard Tektronix 4015 control sequences. The major features missing are the alternate (APL) character set and the write-thru and defocused modes. .St .IP \\*(Be Bell (Ctrl-G) .IP \\*(Bs Backspace (Ctrl-H) .IP \\*(Ta Horizontal Tab (Ctrl-I) .IP \\*(Lf Line Feed or New Line (Ctrl-J) .IP \\*(Vt Vertical Tab (Ctrl-K) .IP \\*(Ff Form Feed or New Page (Ctrl-L) .IP \\*(Cr Carriage Return (Ctrl-M) .IP \\*(Es\\*(Et Switch to VT102 Mode .IP \\*(Es\\*(En Return Terminal Status .IP \\*(Es\\*(Lf PAGE (Clear Screen) .IP \\*(Es\\*(Eb COPY (Save Tektronix Codes to File) .IP \\*(Es\\*(Ca Bypass Condition .IP \\*(Es\\*(Su GIN mode .IP \\*(Es\\*(Fs Special Point Plot Mode .IP \\*(Es\\*(Gs Graph Mode (same as \*(Gs) .IP \\*(Es\\*(Rs Incremental Plot Mode (same as \*(Rs) .IP \\*(Es\\*(Us Alpha Mode (same as \*(Us) .IP \\*(Es\\*8 Select Large Character Set .IP \\*(Es\\*9 Select #2 Character Set .IP \\*(Es\\*: Select #3 Character Set .IP \\*(Es\\*; Select Small Character Set .IP \\*(Es\\*]\\*(Ps\|\\*;\\*(Pt\|\\*(Be Set Text Parameters X \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt X \*(Ps = \*1 \(-> Change Icon Name to \*(Pt X \*(Ps = \*2 \(-> Change Window Title to \*(Pt X \*(Ps = \*4\*6 \(-> Change Log File to \*(Pt .IP \\*(Es\\*` Normal Z Axis and Normal (solid) Vectors .IP \\*(Es\\*a Normal Z Axis and Dotted Line Vectors .IP \\*(Es\\*b Normal Z Axis and Dot-Dashed Vectors .IP \\*(Es\\*c Normal Z Axis and Short-Dashed Vectors .IP \\*(Es\\*d Normal Z Axis and Long-Dashed Vectors .IP \\*(Es\\*h Defocused Z Axis and Normal (solid) Vectors .IP \\*(Es\\*i Defocused Z Axis and Dotted Line Vectors .IP \\*(Es\\*j Defocused Z Axis and Dot-Dashed Vectors .IP \\*(Es\\*k Defocused Z Axis and Short-Dashed Vectors .IP \\*(Es\\*l Defocused Z Axis and Long-Dashed Vectors .IP \\*(Es\\*p Write-Thru Mode and Normal (solid) Vectors .IP \\*(Es\\*q Write-Thru Mode and Dotted Line Vectors .IP \\*(Es\\*r Write-Thru Mode and Dot-Dashed Vectors .IP \\*(Es\\*s Write-Thru Mode and Short-Dashed Vectors .IP \\*(Es\\*t Write-Thru Mode and Long-Dashed Vectors .IP \\*(Fs Point Plot Mode .IP \\*(Gs Graph Mode .IP \\*(Rs Incremental Plot Mode .IP \\*(Us Alpha Mode .Ed SHAR_EOF chmod 0664 kterm-4.1.2/ctlseqs.ms || echo 'restore of kterm-4.1.2/ctlseqs.ms failed' Wc_c="`wc -c < 'kterm-4.1.2/ctlseqs.ms'`" test 16552 -eq "$Wc_c" || echo 'kterm-4.1.2/ctlseqs.ms: original size 16552, current size' "$Wc_c" rm -f _shar_wnt_.tmp fi # ============= kterm-4.1.2/cursor.c ============== if test -f 'kterm-4.1.2/cursor.c' -a X"$1" != X"-c"; then echo 'x - skipping kterm-4.1.2/cursor.c (File already exists)' rm -f _shar_wnt_.tmp else > _shar_wnt_.tmp echo 'x - extracting kterm-4.1.2/cursor.c (Text)' sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/cursor.c' && /* X * $XConsortium: cursor.c,v 1.7 89/05/26 11:38:54 jim Exp $ X * $Header: /usr/src.yoshi/X/KTerm/4.1.0/RCS/cursor.c,v 1.1 90/06/27 09:39:02 kagotani Rel $ X */ X #ifndef lint static char *rcsid_cursor_c = "$XConsortium: cursor.c,v 1.7 89/05/26 11:38:54 jim Exp $"; #endif /* lint */ X #include <X11/copyright.h> X /* X * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. X * X * All Rights Reserved X * X * Permission to use, copy, modify, and distribute this software and its X * documentation for any purpose and without fee is hereby granted, X * provided that the above copyright notice appear in all copies and that X * both that copyright notice and this permission notice appear in X * supporting documentation, and that the name of Digital Equipment X * Corporation not be used in advertising or publicity pertaining to X * distribution of the software without specific, written prior permission. X * X * X * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING X * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL X * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR X * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, X * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, X * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS X * SOFTWARE. X */ X /* cursor.c */ X X #ifndef lint static char rcs_id[] = "$XConsortium: cursor.c,v 1.7 89/05/26 11:38:54 jim Exp $"; #endif /* lint */ X #include <X11/Xlib.h> #include <stdio.h> #include <sys/ioctl.h> #include "ptyx.h" X extern void bcopy(); X static void _CheckSelection(screen) register TScreen *screen; { #ifdef ENBUG /* kagotani */ X extern XtermWidget term; /* %%% gross */ X #endif X if (screen->cur_row > screen->endHRow || X (screen->cur_row == screen->endHRow && X screen->cur_col >= screen->endHCol)) {} X else #ifdef ENBUG /* kagotani */ X DisownSelection(term); #else X TrackText(0, 0, 0, 0); #endif } X X X /* X * Moves the cursor to the specified position, checking for bounds. X * (this includes scrolling regions) X * The origin is considered to be 0, 0 for this procedure. X */ CursorSet(screen, row, col, flags) register TScreen *screen; register int row, col; unsigned flags; { X register int maxr; X X col = (col < 0 ? 0 : col); X screen->cur_col = (col <= screen->max_col ? col : screen->max_col); X maxr = screen->max_row; X if (flags & ORIGIN) { X row += screen->top_marg; X maxr = screen->bot_marg; X } X row = (row < 0 ? 0 : row); X screen->cur_row = (row <= maxr ? row : maxr); X screen->do_wrap = 0; X _CheckSelection(screen); } X /* X * moves the cursor left n, no wrap around X */ CursorBack(screen, n) register TScreen *screen; int n; { X register int i, j, k, rev; X extern XtermWidget term; X X if((rev = (term->flags & (REVERSEWRAP | WRAPAROUND)) == X (REVERSEWRAP | WRAPAROUND)) && screen->do_wrap) X n--; X if ((screen->cur_col -= n) < 0) { X if(rev) { X if((i = (j = screen->max_col + 1) * screen->cur_row + X screen->cur_col) < 0) { X k = j * (screen->max_row + 1); X i += ((-i) / k + 1) * k; X } X screen->cur_row = i / j; X screen->cur_col = i % j; X } else X screen->cur_col = 0; X } X screen->do_wrap = 0; X _CheckSelection(screen); } X /* X * moves the cursor forward n, no wraparound X */ CursorForward(screen, n) register TScreen *screen; int n; { X screen->cur_col += n; X if (screen->cur_col > screen->max_col) X screen->cur_col = screen->max_col; X screen->do_wrap = 0; X _CheckSelection(screen); } X /* X * moves the cursor down n, no scrolling. X * Won't pass bottom margin or bottom of screen. X */ CursorDown(screen, n) register TScreen *screen; int n; { X register int max; X X max = (screen->cur_row > screen->bot_marg ? X screen->max_row : screen->bot_marg); X X screen->cur_row += n; X if (screen->cur_row > max) X screen->cur_row = max; X screen->do_wrap = 0; X _CheckSelection(screen); } X /* X * moves the cursor up n, no linestarving. X * Won't pass top margin or top of screen. X */ CursorUp(screen, n) register TScreen *screen; int n; { X register int min; X X min = (screen->cur_row < screen->top_marg ? X 0 : screen->top_marg); X X screen->cur_row -= n; X if (screen->cur_row < min) X screen->cur_row = min; X screen->do_wrap = 0; X _CheckSelection(screen); } X /* X * Moves cursor down amount lines, scrolls if necessary. X * Won't leave scrolling region. No carriage return. X */ Index(screen, amount) register TScreen *screen; register int amount; { X register int j; X X /* X * indexing when below scrolling region is cursor down. X * if cursor high enough, no scrolling necessary. X */ X if (screen->cur_row > screen->bot_marg X || screen->cur_row + amount <= screen->bot_marg) { X CursorDown(screen, amount); X return; X } X X CursorDown(screen, j = screen->bot_marg - screen->cur_row); X Scroll(screen, amount - j); } X /* X * Moves cursor up amount lines, reverse scrolls if necessary. X * Won't leave scrolling region. No carriage return. X */ RevIndex(screen, amount) register TScreen *screen; register int amount; { X /* X * reverse indexing when above scrolling region is cursor up. X * if cursor low enough, no reverse indexing needed X */ X if (screen->cur_row < screen->top_marg X || screen->cur_row-amount >= screen->top_marg) { X CursorUp(screen, amount); X return; X } X X RevScroll(screen, amount - (screen->cur_row - screen->top_marg)); X CursorUp(screen, screen->cur_row - screen->top_marg); } X /* X * Moves Cursor To First Column In Line X */ CarriageReturn(screen) register TScreen *screen; { X screen->cur_col = 0; X screen->do_wrap = 0; X _CheckSelection(screen); } X /* X * Save Cursor and Attributes X */ CursorSave(term, sc) register XtermWidget term; register SavedCursor *sc; { X register TScreen *screen = &term->screen; X X sc->row = screen->cur_row; X sc->col = screen->cur_col; X sc->flags = term->flags; X sc->curgl = screen->curgl; X sc->curgr = screen->curgr; X bcopy(screen->gsets, sc->gsets, sizeof(screen->gsets)); } X /* X * Restore Cursor and Attributes X */ CursorRestore(term, sc) register XtermWidget term; register SavedCursor *sc; { X register TScreen *screen = &term->screen; X X bcopy(sc->gsets, screen->gsets, sizeof(screen->gsets)); X screen->curgl = sc->curgl; X screen->curgr = sc->curgr; X term->flags &= ~(BOLD|INVERSE|UNDERLINE|ORIGIN); X term->flags |= sc->flags & (BOLD|INVERSE|UNDERLINE|ORIGIN); X CursorSet (screen, (term->flags & ORIGIN) ? sc->row - screen->top_marg X : sc->row, sc->col, term->flags); } SHAR_EOF chmod 0664 kterm-4.1.2/cursor.c || echo 'restore of kterm-4.1.2/cursor.c failed' Wc_c="`wc -c < 'kterm-4.1.2/cursor.c'`" test 6443 -eq "$Wc_c" || echo 'kterm-4.1.2/cursor.c: original size 6443, current size' "$Wc_c" rm -f _shar_wnt_.tmp fi # ============= kterm-4.1.2/data.c ============== if test -f 'kterm-4.1.2/data.c' -a X"$1" != X"-c"; then echo 'x - skipping kterm-4.1.2/data.c (File already exists)' rm -f _shar_wnt_.tmp else > _shar_wnt_.tmp echo 'x - extracting kterm-4.1.2/data.c (Text)' sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/data.c' && /* X * $XConsortium: data.c,v 1.8 89/05/26 18:10:43 jim Exp $ X * $Header: /usr/src.yoshi/X/KTerm/4.1.0/RCS/data.c,v 1.1 90/06/27 09:39:03 kagotani Rel $ X */ X #include <X11/copyright.h> X /* X * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. X * X * All Rights Reserved X * X * Permission to use, copy, modify, and distribute this software and its X * documentation for any purpose and without fee is hereby granted, X * provided that the above copyright notice appear in all copies and that X * both that copyright notice and this permission notice appear in X * supporting documentation, and that the name of Digital Equipment X * Corporation not be used in advertising or publicity pertaining to X * distribution of the software without specific, written prior permission. X * X * X * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING X * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL X * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR X * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, X * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, X * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS X * SOFTWARE. X */ X #include <setjmp.h> #include <X11/Xlib.h> #include <X11/Intrinsic.h> #include "ptyx.h" #include "data.h" X #ifndef lint static char rcs_id[] = "$XConsortium: data.c,v 1.8 89/05/26 18:10:43 jim Exp $"; #endif /* lint */ X XXPoint T_boxlarge[NBOX] = { X {0, 0}, X {8, 0}, X {0, 14}, X {-8, 0}, X {0, -14}, }; XXPoint T_box2[NBOX] = { X {0, 0}, X {7, 0}, X {0, 12}, X {-7, 0}, X {0, -12}, }; XXPoint T_box3[NBOX] = { X {0, 0}, X {5, 0}, X {0, 12}, X {-5, 0}, X {0, -12}, }; XXPoint T_boxsmall[NBOX] = { X {0, 0}, X {5, 0}, X {0, 9}, X {-5, 0}, X {0, -9}, }; jmp_buf Tekend; int Tbcnt = 0; Char *Tbuffer; Char *Tbptr; TekLink *TekRefresh; Char *Tpushb; Char *Tpushback; int Ttoggled = 0; int bcnt = 0; #ifdef KTERM_KANJI X /* X * buffer[-1] is reserved for pending_byte in two-byte character. X */ static Char Vbuffer[BUF_SIZE + 1]; Char *buffer = Vbuffer + 1; Char *bptr; #else /* !KTERM_KANJI */ Char buffer[BUF_SIZE]; Char *bptr = buffer; #endif /* !KTERM_KANJI */ jmp_buf VTend; XXPoint VTbox[NBOX] = { X {0, 0}, X {0, 0}, X {0, 0}, X {0, 0}, X {0, 0}, }; #ifdef KTERM_KANJI XXPoint VTwbox[NBOX] = { X {0, 0}, X {0, 0}, X {0, 0}, X {0, 0}, X {0, 0}, }; #endif /* KTERM_KANJI */ #ifdef STATUSLINE XXPoint status_box[NBOX] = { X {0, 0}, X {0, 0}, X {0, 0}, X {0, 0}, X {0, 0}, }; #endif /* STATUSLINE */ X #ifdef DEBUG int debug = 0; /* true causes error messages to be displayed */ #endif /* DEBUG */ XXtermWidget term; /* master data structure for client */ char *xterm_name; /* argv[0] */ int am_slave = 0; /* set to 1 if running as a slave process */ int max_plus1; int pty_mask; int Select_mask; int X_mask; char *ptydev; char *ttydev; #ifdef KTERM char log_def_name[] = "KtermLog.XXXXX"; #else /* !KTERM */ char log_def_name[] = "XtermLog.XXXXX"; #endif /* !KTERM */ int T_lastx = -1; int T_lasty = -1; X int waitingForTrackInfo = 0; EventMode eventMode = NORMAL; X GC visualBellGC; X int VTgcFontMask = GCFont; int TEKgcFontMask = GCFont; X TekWidget tekWidget; SHAR_EOF chmod 0664 kterm-4.1.2/data.c || echo 'restore of kterm-4.1.2/data.c failed' Wc_c="`wc -c < 'kterm-4.1.2/data.c'`" test 3198 -eq "$Wc_c" || echo 'kterm-4.1.2/data.c: original size 3198, current size' "$Wc_c" rm -f _shar_wnt_.tmp fi # ============= kterm-4.1.2/data.h ============== if test -f 'kterm-4.1.2/data.h' -a X"$1" != X"-c"; then echo 'x - skipping kterm-4.1.2/data.h (File already exists)' rm -f _shar_wnt_.tmp else > _shar_wnt_.tmp echo 'x - extracting kterm-4.1.2/data.h (Text)' sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/data.h' && /* X * $XConsortium: data.h,v 1.7 89/05/26 18:10:45 jim Exp $ X * $Header: /usr/src.yoshi/X/KTerm/4.1.0/RCS/data.h,v 1.1 90/06/27 09:39:04 kagotani Rel $ X */ X X #include <X11/copyright.h> X /* X * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. X * X * All Rights Reserved X * X * Permission to use, copy, modify, and distribute this software and its X * documentation for any purpose and without fee is hereby granted, X * provided that the above copyright notice appear in all copies and that X * both that copyright notice and this permission notice appear in X * supporting documentation, and that the name of Digital Equipment X * Corporation not be used in advertising or publicity pertaining to X * distribution of the software without specific, written prior permission. X * X * X * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING X * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL X * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR X * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, X * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, X * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS X * SOFTWARE. X */ X /* @(#)data.h\tX10/6.6\t11/10/86 */ X #include <X11/Intrinsic.h> X extern TekLink *TekRefresh; extern XPoint T_box2[]; extern XPoint T_box3[]; extern XPoint T_boxlarge[]; extern XPoint T_boxsmall[]; extern XPoint VTbox[]; #ifdef KTERM_KANJI extern XPoint VTwbox[]; #endif /* KTERM_KANJI */ #ifdef STATUSLINE extern XPoint status_box[]; #endif /* STATUSLINE */ extern Char *Tbptr; extern Char *Tbuffer; extern Char *Tpushb; extern Char *Tpushback; extern Char *bptr; extern char log_def_name[]; extern char *ptydev; extern char *ttydev; extern char *xterm_name; #ifdef KTERM_KANJI extern Char *buffer; #else /* !KTERM_KANJI */ extern Char buffer[]; #endif /* !KTERM_KANJI */ extern int Select_mask; extern int T_lastx; extern int T_lasty; extern int Tbcnt; extern int Ttoggled; extern int X_mask; extern int am_slave; extern int bcnt; #ifdef DEBUG extern int debug; #endif /* DEBUG */ extern int errno; extern int max_plus1; extern int pty_mask; extern int switchfb[]; extern jmp_buf Tekend; extern jmp_buf VTend; X extern int waitingForTrackInfo; X extern EventMode eventMode; X extern GC visualBellGC; X extern int VTgcFontMask; extern int TEKgcFontMask; X extern XtermWidget term; extern TekWidget tekWidget; SHAR_EOF chmod 0664 kterm-4.1.2/data.h || echo 'restore of kterm-4.1.2/data.h failed' Wc_c="`wc -c < 'kterm-4.1.2/data.h'`" test 2484 -eq "$Wc_c" || echo 'kterm-4.1.2/data.h: original size 2484, current size' "$Wc_c" rm -f _shar_wnt_.tmp fi # ============= kterm-4.1.2/error.h ============== if test -f 'kterm-4.1.2/error.h' -a X"$1" != X"-c"; then echo 'x - skipping kterm-4.1.2/error.h (File already exists)' rm -f _shar_wnt_.tmp else > _shar_wnt_.tmp echo 'x - extracting kterm-4.1.2/error.h (Text)' sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/error.h' && /* X * $XConsortium: error.h,v 1.6 89/05/26 13:34:16 jim Exp $ X */ X X #include <X11/copyright.h> X /* X * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. X * X * All Rights Reserved X * X * Permission to use, copy, modify, and distribute this software and its X * documentation for any purpose and without fee is hereby granted, X * provided that the above copyright notice appear in all copies and that X * both that copyright notice and this permission notice appear in X * supporting documentation, and that the name of Digital Equipment X * Corporation not be used in advertising or publicity pertaining to X * distribution of the software without specific, written prior permission. X * X * X * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING X * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL X * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR X * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, X * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, X * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS X * SOFTWARE. X */ X /* @(#)error.h X10/6.6 11/6/86 */ /* main.c */ #define ERROR_KMALLOC 10 /* main: malloc() failed for keyboardtype */ #define ERROR_FIONBIO 11 /* main: ioctl() failed on FIONBIO */ X X #define ERROR_OPDEVTTY 14 /* spawn: open() failed on /dev/tty */ #define ERROR_TIOCGETP 15 /* spawn: ioctl() failed on TIOCGETP */ #define ERROR_TIOCGETC 16 /* spawn: ioctl() failed on TIOCGETC */ #define ERROR_TIOCGETD 17 /* spawn: ioctl() failed on TIOCGETD */ #define ERROR_TIOCGLTC 18 /* spawn: ioctl() failed on TIOCGLTC */ #define ERROR_TIOCLGET 19 /* spawn: ioctl() failed on TIOCLGET */ #define ERROR_TIOCCONS 20 /* spawn: ioctl() failed on TIOCCONS */ #define ERROR_OPDEVTTY2 21 /* spawn: second open() failed on /dev/tty */ #define ERROR_NOTTY 22 /* spawn: ioctl() failed on TIOCNOTTY */ #define ERROR_TIOCSETP 23 /* spawn: ioctl() failed on TIOCSETP */ #define ERROR_TIOCSETC 24 /* spawn: ioctl() failed on TIOCSETC */ #define ERROR_TIOCSETD 25 /* spawn: ioctl() failed on TIOCSETD */ #define ERROR_TIOCSLTC 26 /* spawn: ioctl() failed on TIOCSLTC */ #define ERROR_TIOCLSET 27 /* spawn: ioctl() failed on TIOCLSET */ X #define ERROR_FORK 29 /* spawn: fork() failed */ #define ERROR_EXEC 30 /* spawn: exec() failed */ #define ERROR_OPDEVTTY3 31 /* spawn: third open() failed on /dev/tty */ #define ERROR_PTYS 32 /* get_pty: not enough ptys */ #define ERROR_NOX 33 /* get_terminal: can't connect to server */ #define ERROR_PTY_EXEC 34 /* waiting for initial map */ X #define ERROR_INIT 36 /* spawn: can't initialize window */ #define ERROR_NOCO 37 /* resize: no `co' in termcap */ #define ERROR_NOLI 38 /* resize: no `li' in termcap */ #define ERROR_BORDER 39 /* get_terminal: can't make border tile */ #define ERROR_BACK 40 /* get_terminal: can't make background tile */ #define ERROR_NOX3 43 /* get_terminal: bad pty from display server */ /* charproc.c */ #define ERROR_SELECT 50 /* in_put: select() failed */ #define ERROR_VINIT 54 /* VTInit: can't initialize window */ #define ERROR_CNMALLOC1 55 /* Changename: malloc failed */ #define ERROR_CNMALLOC2 56 /* Changename: malloc failed */ /* Tekproc.c */ #define ERROR_TSELECT 60 /* Tinput: select() failed */ #define ERROR_TINIT 64 /* TekInit: can't initialize window */ #define ERROR_TBACK 65 /* TekBackground: can't make background */ /* button.c */ #define ERROR_BMALLOC2 71 /* SaltTextAway: malloc() failed */ X /* misc.c */ #define ERROR_LOGEXEC 80 /* StartLog: exec() failed */ #define ERROR_XERROR 83 /* xerror: XError event */ #define ERROR_XIOERROR 84 /* xioerror: X I/O error */ #define ERROR_WINNAME 85 /* get_terminal: malloc failed */ /* screen.c */ #define ERROR_SCALLOC 90 /* Alloc: calloc() failed on base */ #define ERROR_SCALLOC2 91 /* Alloc: calloc() failed on rows */ #define ERROR_SREALLOC 92 /* ScreenResize: realloc() failed on alt base */ #define ERROR_SREALLOC2 93 /* ScreenResize: realloc() failed on alt rows */ #define ERROR_SREALLOC3 94 /* ScreenResize: realloc() failed on rows */ #define ERROR_SREALLOC4 95 /* ScreenResize: realloc() failed on rows */ #define ERROR_RESIZE 96 /* ScreenResize: malloc() or realloc() failed */ #define ERROR_RESIZE2 97 /* ScreenResize: malloc() or realloc() failed */ #define ERROR_RESIZROW 98 /* ScreenResize: realloc() failed on alt char */ #define ERROR_RESIZROW2 99 /* ScreenResize: realloc() failed on alt attr */ #define ERROR_RESIZROW3 100 /* ScreenResize: realloc() failed on attr */ #define ERROR_RESIZROW4 101 /* ScreenResize: realloc() failed on attr */ /* scrollbar.c */ #define ERROR_SBRALLOC 110 /* ScrollBarOn: realloc() failed on base */ #define ERROR_SBRALLOC2 111 /* ScrollBarOn: realloc() failed on rows */ /* util.c */ #define ERROR_UBACK 120 /* ReverseVideo: can't make background */ SHAR_EOF chmod 0664 kterm-4.1.2/error.h || echo 'restore of kterm-4.1.2/error.h failed' Wc_c="`wc -c < 'kterm-4.1.2/error.h'`" test 4916 -eq "$Wc_c" || echo 'kterm-4.1.2/error.h: original size 4916, current size' "$Wc_c" rm -f _shar_wnt_.tmp fi # ============= kterm-4.1.2/g2b ============== if test -f 'kterm-4.1.2/g2b' -a X"$1" != X"-c"; then echo 'x - skipping kterm-4.1.2/g2b (File already exists)' rm -f _shar_wnt_.tmp else > _shar_wnt_.tmp echo 'x - extracting kterm-4.1.2/g2b (Text)' sed 's/^X//' << 'SHAR_EOF' > 'kterm-4.1.2/g2b' && xbtoa Begin ,75Y<#t&WMH#dV3BQP@^+>Gl93%QdE3&rNE3B8c9@X0(cF`(h77P5fWARuu2+Auo`CO%%*AT_m'+:9 >#$7/2//NuKm7g]Sh0gRN:5qtht$DB_Y:8(%K]V339]V/#mZD"q*GG4&jr1QcWV4janTr4T_Tk0p0T lHcHTl$K@Tlm&PTm<>XTtI)3TkU38$DGqBd@o!^8#&hQ]VAK%;k`<HjIs5[]V3iK]V3!3k6doqU%=u EU$\Q0TtI)STtI)3U"Z3QTtI)OU"Q-oU$`8]n"K9Fn=j$YXJ)Yg8to"Q]V7li8"mShZ(\h(\=pG?Ts LH"Tsp`,Tt@#2TtR/-TsgZ!U%b8SU%G&OU8/,'5r(_\+@.bP71,a$TtI)3TtI)3TtI)3TtI)3TtI)3 TtI)3TtI)3$DG,+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]F(@FTtI)3TtI)3TtI)3TtI)3TtI )3TtI)3TtI)3TtC`+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V2tFTtI)3TtI)3TtI)3TtI)3T tI)3TtI)3TtI)3TtI)3$DG,,\Y?[0]:us4]qW68^S8N<_4nf?]V3!3]V2tF$:-I60d&b<7R[ZX<2$= cXeJ4X8>32[XJ'4!AtdMDc_4(,d%O7/rX,C'U9LAsU9^N"U9pZ&U:-f*U:?mpTi%M'U">uYTi2;m8Y XXP*d%\p^d\>3be=tKfetUcjfV7&ng7m>rgnNU3U>DX%U>Vd)U>hp-U?&'1U?835U?J;`U-PEbTlZpG $DFMpl([I;l_<a?m@s$Cn"T<GnY5TKo:klOoqM/SpBmYiUA:P[UAL\_UA^hcUHkS?UI(_CTja[?Tjj _4$49'U5qsKJ1e'n@TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtC`+]V3!3]V3!3]V3!3]V3!3] V3!3]V3!3]V3!3]V2tFTtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3$DG,+]V3!3]V3!3]V3! 3]V3!3]V3!3]V3!3]V3!3]F(@FTtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtC`+]V3!3]V3!3]V 3!3]V3!3]V3!3]V3!3]V3!3]F#!32*ir>5rD,#$DG,+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V2tF TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3$DG,+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V3 !3]F(@FTtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtC`+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3] V3!3]V2tFTtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtC^>5rM"`+@.nT71,eXUICqIUIV(MUIh4 QUJ%@UUJ7LYUJIX]UJ[da$DUOp<23Hg<hi`k=JK#o>,,;q]V3!3]V3!3]V3!3]F(@FUKjR"UL'^&UL 9j*ULL!.UL^-2ULp96UM-E:UM:.2CSP^@D52!DDkh9HEMIQLF.p7?]V3!3]V3!3]V2tFTtI)3TtI)3 TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3$DG,+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V2tF$:-U:0d& b@7R[ZX]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]F(@FTtI)3TtI)3TtI)3TtI)3TtI)3TtI)3T tI)3TtC`+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V2tFTtI)3TtI)3TtI)3TtI)3TtI)3TtI) 3TtI)3TtI)3$DG,+]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]F(@FTtI)3TtI)3TtI)3TtI)3Tt I)3TtI)3TtI)3$49'Y5qsKJ3(?=DTtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtC`+]V3!3]V3!3 ]V3!3]V3!3]V3!3]V3!3]V3!3]V2tFTtI)3TtI)3TtI.BUNN>TUN`JXUNrV\UO/b`UOAnd$DX;iU8+ KYUnac]VPC&aW2$>eWhZViXJ;nmY+r1qYR7/1UU$Z$UU6f(UUHr,UU[)0UUm/3TtI)3TtI)3TtC`+] V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]V3!3]F#!33C,AB5rhD'$DG,+]V3!4GG2[DGbMdD]V3!3]V3! 3]V3!3]V2tFU3`NGTtI)3U3iTHTtI)3U3rZITtI)3U4&`JTtI)3$DM[:]V3!3]V3!3]V3!3]V9MA]V 3!3]V3!3]V3!3]F(BSTtI)3TtI)3TtI)3TtI+?TtI)3TtI)3TtI)3TtC`,EM:%=]V3!3]V3!3]V3!3 ]V3!3]V3!3]V3!3]V2tFTtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtI)3TtC^>681\[+@7bO71-9QWr0 "lY/./]Xo,5@]h6*9`2C+8VW5Ro[o0bN$GKuPntpW5c)^QIFK)(bBs-("lDaT_F/;sCcFihbX9uki[ `5cN^='baWnjhqV7*4HVdZd>Ue@f6UtVg)[Ta*LG,O?'d`(dr;8%CXW28%GAu<_f>c?2XdAuorqm<[ :Y?JDKVrk2K\U1>PWi;o]WR[m9_ka,<^[/8MW4B^J$F098?+WY;C:):";m8a.l*J=E]rbeH9r2./a0 "S5$:6I50d&e;7R[[#Tt,3E:UBl-Tu:<;lEg8uafo$cC;Y@t9t4!+A.#:.V-gq4X\#Ij^0%MPY?&!L ^<X,WZVd]2X_+EAZGHsR=i"FGa/l/TgTYS+8%\Agn[lTEVl@>?dGr?^Wj8K/^r=W5\b)f@\+I#.Z-B iUV6[Ws^;.R-_:Pob_a)-#$GCMh;lfMj9?#\^bJ3A^8&Tec9t\iZ6bTFumDZg$GRC?E_l'bUfm1J[^ t?9"m-(?@VF%@lV#IC3]B63"$49*T5qsKK1.F\>Y@aY[XMM<o]Y1teZJ)<mZdl*l[qWB\]&]bUWN?N 5mBYfb9=45hH+W=D\"lp(pUJ>Ln>)hUXJeJ'YHso0WQ)`gZ>m;EVt[!9Y[+b*^%/2sZ#-o2]s>FYYg LGd$FJX#7_2+*l+:B=[B85nahks0hSE:+dBVc9o<_]/V@'Q?V,ao!]P-n4[%X:,e$H7RXCU>X[qE8> Vo,ZZ\C(_`m]PTS>Jt*a<Pm##@E&5an\aXtUVt*i\>f5.Es`7@1I3`<68M)"$FBE9_6ICJpqV'_HG" @,YI[oAgTAo4=/Xf]EjW[j]Loj$Z!XDHWhZMqVs(]d[!0(Z\uXHKVV7uQ\^7V?$E)FQ8[GV/=N.5O[ CY%lYeKM%W2F4/]X<+(B>!35gBsq/ZZs=cYHOg+\+ZluYg'&\^[S+p\YH=%^8@j\Ut?$QWis[D\A(\ 5;Q*KjjKVV#A?"S!;o>HN6b$:.<5`tfUpIZ,ioHo/YN2_MV-(WR]PtdD^/MoFhGLMP\"O-968Ut_+@ 7nS71-o/^j*imh0R#FZU2$nUi`^,h;#HZZL5'TVWtic$FQS?Co>CloWuoBC9"):W57\uX/ntMcb<#S 6F'%`_@"6V_H4>;ZE(2-]$J"C_rJ4%ZD"](VR`Yk^#u9&_/B[o[AS5F?EnLe:UKDmb.^Qc9WM"c:VV 1lX1D36>.2Q\YM?VW]'6M4]0W@iVK8PO]i)MU[plVQY/%gJ[q<0?$FQnI7&@8dC8YO:n(:[V\ZoSEE 2?=<<O5]+h6pl%$:6U90d&e?7R[Zbjfd1JiM<?Wk3,q/\A<Ed\[:=mrOf/98A3?^FUGHI\*^o]`6uE 3^r`BH[r9+0Ximke_lLMnW9h3)Z)%f<7(%*KGHl(d]#3C>:UP)JV83#>\\:V@p8:9hGHH9#]Yq+nW+ NWF]0j-cWT^=fVI@!3ZG`flVp)cc]kkVQ$Irk"^UQqR8Z:ad;7Y2eEMiT2CoO\EIC&perO92E9a[_9 ^e1`iUe\2-VGX[u^"'PtY>VsY]t1>>^XC)K$49*X5qsKK2F^+BUdD"tV/<G[Zb*cI^\+RMX`:2rW^` gc\?iuXYf[<[aihE!n?(ZNIB^Sdh5'2;I]00NEj]\hUUU6(El3;4^K8CSYk5Fj^#Z*e_;V>>X4O`AV SHAR_EOF true || echo 'restore of kterm-4.1.2/g2b failed' fi echo 'End of kterm-4.1.2 part 10' echo 'File kterm-4.1.2/g2b is continued in part 11' echo 11 > _shar_seq_.tmp 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