xterm - 1996/1/6 - patch #1 - T.Dickey This is my first cleanup patch for xterm. It addresses all of the gcc warnings for -Wall, -Wmissing-prototypes and -Wstrict-prototypes that I can change without modifying the object code. (I'm compiling this with gcc 2.7.0 for an aout target, which makes it simple to compare objects. When I do ELF-only, I've got a tool that compares that sort of thing as well). Briefly, this patch adds (and uses) two header files in the xterm directory: proto.h xterm.h I expect this to be the biggest patch by far. However (barring a misplaced prototype), it shouldn't break anything, since the intent of the patch is to provide missing declarations. -------------------------------------------------------------------------------- Tekproc.c | 62 +++++++++++-------- button.c | 71 ++++++++++++--------- charproc.c | 148 +++++++++++++++++++++++++-------------------- cursor.c | 14 ++++ input.c | 9 ++ main.c | 68 +++++++++++++------- menu.c | 183 ++++++++++++++++++++++++++++++++++++-------------------- menu.h | 72 ++++++++++++---------- misc.c | 57 ++++++++++++----- proto.h | 29 ++++++++ ptyx.h | 5 - resize.c | 34 ++++++---- screen.c | 26 +++++-- scrollbar.c | 30 +++++++-- tabs.c | 7 ++ util.c | 44 ++++++++----- xterm.h | 189 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17 files changed, 748 insertions, 300 deletions -------------------------------------------------------------------------------- Index: Tekproc.c --- xterm-original/Tekproc.c Sat Sep 23 03:09:22 1995 +++ xterm-patched/Tekproc.c Sat Jan 6 18:10:07 1996 @@ -114,6 +114,8 @@ extern long time(); /* included in by Xos.h */ #endif +#include "xterm.h" + #define TekColormap DefaultColormap( screen->display, \ DefaultScreen(screen->display) ) #define DefaultGCID XGContextFromGC(DefaultGC(screen->display, DefaultScreen(screen->display))) @@ -190,19 +192,6 @@ static int *curstate = Talptable; static int *Tparsestate = Talptable; -static void TekEnq(); - -/* event handlers */ -extern void HandleKeyPressed(), HandleEightBitKeyPressed(); -extern void HandleStringEvent(); -extern void HandleEnterWindow(); -extern void HandleLeaveWindow(); -extern void HandleFocusChange(); -extern void HandleBellPropertyChange(); -extern void HandleSecure(); -extern void HandleGINInput(); -extern void HandleCreateMenu(), HandlePopupMenu(); - static char defaultTranslations[] = "\ ~Meta: insert-seven-bit() \n\ Meta: insert-eight-bit()\n\ @@ -299,12 +288,24 @@ XtRString, GIN_TERM_NONE_STR}, }; -static void TekInitialize(), TekRealize(), TekConfigure(); -static int getpoint(); -static int Tinput(); - -void TekExpose(); -void TekSetFontSize(); +extern void TCursorBack PROTO((void)); +extern void TCursorDown PROTO((void)); +extern void TCursorForward PROTO((void)); +extern void TCursorUp PROTO((void)); +extern void TekBackground PROTO((TScreen *screen)); +extern void TekDraw PROTO((int x, int y)); +extern void TekExpose PROTO((Widget w, XEvent *event, Region region)); +extern void TekFlush PROTO((void)); +extern void TekPage PROTO((void)); +static TekWidget CreateTekWidget PROTO((void)); +static int Tinput PROTO((void)); +static int getpoint PROTO((void)); +static void AddToDraw PROTO((int x1, int y1, int x2, int y2)); +static void TekConfigure PROTO((Widget w)); +static void TekEnq PROTO((int status, int x, int y)); +static void TekInitialize PROTO((Widget request, Widget new, ArgList args, Cardinal *num_args)); +static void TekRealize PROTO((Widget gw, XtValueMask *valuemaskp, XSetWindowAttributes *values)); +static void Tekparse PROTO((void)); static WidgetClassRec tekClassRec = { { @@ -424,9 +425,9 @@ /* Do Tek GIN mode */ screen->TekGIN = &TekRecord->ptr[-1]; /* Set cross-hair cursor raster array */ - if (GINcursor = + if ((GINcursor = make_colored_cursor (XC_tcross, screen->mousecolor, - screen->mousecolorback)) + screen->mousecolorback)) != 0) XDefineCursor (screen->display, TShellWindow, GINcursor); Tparsestate = Tbyptable; /* Bypass mode */ @@ -695,7 +696,7 @@ if(TekRefresh) { if(rcnt-- > 0) return(*rptr++); - if(tek = TekRefresh->next) { + if ((tek = TekRefresh->next) != 0) { TekRefresh = tek; rptr = tek->data; rcnt = tek->count - 1; @@ -881,6 +882,7 @@ dorefresh(); } +void dorefresh() { register TScreen *screen = &term->screen; @@ -897,6 +899,7 @@ (screen->TekGIN && GINcursor) ? GINcursor : screen->arrow); } +void TekPage() { register TScreen *screen = &term->screen; @@ -980,6 +983,7 @@ } } +void TCursorBack() { register TScreen *screen = &term->screen; @@ -1002,6 +1006,7 @@ } } +void TCursorForward() { register TScreen *screen = &term->screen; @@ -1021,6 +1026,7 @@ } } +void TCursorUp() { register TScreen *screen = &term->screen; @@ -1040,6 +1046,7 @@ screen->cur_Y = l * t->vsize; } +void TCursorDown() { register TScreen *screen = &term->screen; @@ -1079,6 +1086,7 @@ nplot++; } +void TekDraw (x, y) int x, y; { @@ -1098,6 +1106,7 @@ T_lasty = screen->cur_Y = y; } +void TekFlush () { register TScreen *screen = &term->screen; @@ -1110,6 +1119,7 @@ line_pt = Tline; } +void TekGINoff() { register TScreen *screen = &term->screen; @@ -1123,6 +1133,7 @@ } } +void TekEnqMouse(c) int c; /* character pressed */ { @@ -1176,6 +1187,7 @@ v_write(pty, cplot+1, len-1); } +void TekRun() { register TScreen *screen = &term->screen; @@ -1578,6 +1590,7 @@ return; } +void TekReverseVideo(screen) register TScreen *screen; { @@ -1619,6 +1632,7 @@ TekBackground(screen); } +void TekBackground(screen) register TScreen *screen; { @@ -1630,6 +1644,7 @@ /* * Toggles cursor on or off at cursor position in screen. */ +void TCursorToggle(toggle) int toggle; /* TOGGLE or CLEAR */ { @@ -1695,15 +1710,16 @@ /* write copy of screen to a file */ +void TekCopy() { register TScreen *screen = &term->screen; register struct tm *tp; Time_t l; char buf[32]; - int waited; int pid; #ifndef HAS_WAITPID + int waited; int (*chldfunc)(); chldfunc = signal(SIGCHLD, SIG_DFL); Index: button.c --- xterm-original/button.c Sun Sep 17 02:33:13 1995 +++ xterm-patched/button.c Sat Jan 6 19:50:22 1996 @@ -31,7 +31,15 @@ */ #include "ptyx.h" /* Xlib headers included here. */ + #include + +#ifndef X_NOT_STDC_ENV +#include +#else +extern char *malloc(); +#endif + #include #ifdef MINIX @@ -45,9 +53,7 @@ #include "error.h" #include "menu.h" -extern char *malloc(); - -extern void DoSecureKeyboard(); +#include "xterm.h" #define KeyState(x) (((x) & (ShiftMask|ControlMask)) + (((x) & Mod1Mask) ? 2 : 0)) /* adds together the bits: @@ -65,17 +71,6 @@ extern char *xterm_name; -static void PointToRowCol(); -static void SelectionReceived(); -static void TrackDown(); -static void ComputeSelect(); -static void EditorButton(); -static void ExtendExtend(); -static void ReHiliteText(); -static void SelectSet(); -static void StartSelect(); -static int Length(); -static char *SaveText(); extern XtermWidget term; @@ -112,6 +107,29 @@ /* Send emacs escape code when done selecting or extending? */ static int replyToEmacs; +static Boolean ConvertSelection PROTO_XT_CVT_SELECT_ARGS; +static char *SaveText PROTO((TScreen *screen, int row, int scol, int ecol, char *lp, int *eol)); +static int LastTextCol PROTO((int row)); +static int Length PROTO((TScreen *screen, int row, int scol, int ecol)); +static void ComputeSelect PROTO((int startRow, int startCol, int endRow, int endCol, Bool extend)); +static void EditorButton PROTO((XButtonEvent *event)); +static void EndExtend PROTO((Widget w, XEvent *event, String *params, Cardinal num_params, Bool use_cursor_loc)); +static void ExtendExtend PROTO((int row, int col)); +static void LoseSelection PROTO((Widget w, Atom *selection)); +static void PointToRowCol PROTO((int y, int x, int *r, int *c)); +static void ReHiliteText PROTO((int frow, int fcol, int trow, int tcol)); +static void SaltTextAway PROTO((int crow, int ccol, int row, int col, String *params, Cardinal num_params)); +static void SelectSet PROTO((Widget w, XEvent *event, String *params, Cardinal num_params)); +static void SelectionDone PROTO((Widget w, Atom *selection, Atom *target)); +static void SelectionReceived PROTO_XT_SEL_CB_ARGS; +static void SetSelectUnit PROTO((Time buttonDownTime, SelectUnit defaultUnit)); +static void StartSelect PROTO((int startrow, int startcol)); +static void TrackDown PROTO((XButtonEvent *event)); +static void _GetSelection PROTO((Widget w, Time time, String *params, Cardinal num_params)); +static void _OwnSelection PROTO((XtermWidget termw, String *selections, Cardinal count)); +static void do_select_end PROTO((Widget w, XEvent *event, String *params, Cardinal *num_params, Bool use_cursor_loc)); +static void do_select_start PROTO((Widget w, XEvent *event, int startrow, int startcol)); +static void do_start_extend PROTO((Widget w, XEvent *event, String *params, Cardinal *num_params, Bool use_cursor_loc)); Boolean SendMousePosition(w, event) Widget w; @@ -137,7 +155,7 @@ if (KeyModifiers == 0) { if (event->type == ButtonPress) - EditorButton(event); + EditorButton((XButtonEvent *)event); return True; } return False; @@ -145,7 +163,7 @@ case 2: /* DEC vt200 compatible */ if (KeyModifiers == 0 || KeyModifiers == ControlMask) { - EditorButton(event); + EditorButton((XButtonEvent *)event); return True; } return False; @@ -154,11 +172,11 @@ if ( event->type == ButtonPress && KeyModifiers == 0 && event->xbutton.button == Button1 ) { - TrackDown(event); + TrackDown((XButtonEvent *)event); return True; } if (KeyModifiers == 0 || KeyModifiers == ControlMask) { - EditorButton(event); + EditorButton((XButtonEvent *)event); return True; } /* fall through */ @@ -203,7 +221,7 @@ register TScreen *screen = &term->screen; int pty = screen->respond; char Line[ 6 ]; - register int line, col; + register int line; if (event->type != ButtonPress && event->type != ButtonRelease) return; @@ -250,8 +268,6 @@ } } -static void EndExtend(); - static void do_select_end (w, event, params, num_params, use_cursor_loc) Widget w; XEvent *event; /* must be XButtonEvent */ @@ -479,7 +495,7 @@ StartSelect(startrow, startcol); } else { waitingForTrackInfo = 1; - EditorButton(event); + EditorButton((XButtonEvent *)event); } } @@ -598,8 +614,6 @@ SelectSet (w, event, params, *num_params); } -static void SaltTextAway(); - /* ARGSUSED */ static void SelectSet (w, event, params, num_params) @@ -722,7 +736,7 @@ do_start_extend (w, event, params, num_params, True); } - +void ScrollSelection(screen, amount) register TScreen* screen; register int amount; @@ -758,6 +772,7 @@ /*ARGSUSED*/ +void ResizeSelection (screen, rows, cols) TScreen *screen; int rows, cols; @@ -1005,7 +1020,7 @@ return; } - +void TrackText(frow, fcol, trow, tcol) register int frow, fcol, trow, tcol; /* Guaranteed (frow, fcol) <= (trow, tcol) */ @@ -1087,8 +1102,6 @@ } } -static void _OwnSelection(); - static void SaltTextAway(crow, ccol, row, col, params, num_params) /*register*/ int crow, ccol, row, col; @@ -1340,7 +1353,7 @@ TrackText(0, 0, 0, 0); } -/* void */ +void DisownSelection(termw) register XtermWidget termw; { Index: charproc.c --- xterm-original/charproc.c Sun Nov 12 04:55:49 1995 +++ xterm-patched/charproc.c Sat Jan 6 19:52:54 1996 @@ -60,6 +60,7 @@ #include "error.h" #include "menu.h" #include "main.h" + #include #include #include @@ -71,6 +72,15 @@ #ifdef I18N #include #endif + +#ifndef X_NOT_STDC_ENV +#include +#else +extern char *malloc(); +extern char *realloc(); +extern void exit(); +#endif + #include #include #include @@ -99,23 +109,38 @@ #endif #endif +#include "xterm.h" + extern jmp_buf VTend; extern XtAppContext app_con; extern Widget toplevel; -extern void exit(); -extern char *malloc(); -extern char *realloc(); - -static void VTallocbuf(); -static int finput(); -static void dotext(); -static void WriteText(); -static void ToAlternate(); -static void FromAlternate(); -static void update_font_info(); -static void bitset(), bitclr(); +extern int LoadNewFont PROTO((TScreen *screen, char *nfontname, char *bfontname, Bool doresize, int fontnum)); +extern int in_put PROTO((void)); +extern int set_character_class PROTO((char *s)); +extern void ansi_modes PROTO((XtermWidget termw, void (*func)(unsigned *p, int mask))); +extern void dpmodes PROTO((XtermWidget termw, void (*func)(unsigned *p, int mask))); +extern void restoremodes PROTO((XtermWidget termw)); +extern void savemodes PROTO((XtermWidget termw)); +extern void set_vt_box PROTO((TScreen *screen)); +extern void unparsefputs PROTO((char *s, int fd)); +extern void unparseputn PROTO((unsigned int n, int fd)); + +static int finput PROTO((void)); +static void DoSetSelectedFont PROTO_XT_SEL_CB_ARGS; +static void FromAlternate PROTO((TScreen *screen)); +static void SwitchBufs PROTO((TScreen *screen)); +static void ToAlternate PROTO((TScreen *screen)); +static void VTGraphicsOrNoExpose PROTO((XEvent *event)); +static void VTNonMaskableEvent PROTO_XT_EV_HANDLER_ARGS; +static void VTallocbuf PROTO((void)); +static void VTparse PROTO((void)); +static void WriteText PROTO(( TScreen *screen, char *str, int len, unsigned flags, unsigned fg, unsigned bg)); +static void bitclr PROTO((unsigned *p, int mask)); +static void bitset PROTO((unsigned *p, int mask)); +static void dotext PROTO((TScreen *screen, unsigned flags, int charset, char *buf, char *ptr, unsigned fg, unsigned bg)); +static void update_font_info PROTO((TScreen *screen, Bool doresize)); #define DEFAULT -1 #define TEXT_BUF_SIZE 256 @@ -258,33 +283,12 @@ extern int scrtable[]; extern int scstable[]; - /* event handlers */ -extern void HandleKeyPressed(), HandleEightBitKeyPressed(); -extern void HandleStringEvent(); -extern void HandleEnterWindow(); -extern void HandleLeaveWindow(); -extern void HandleBellPropertyChange(); -extern void HandleFocusChange(); -static void HandleKeymapChange(); -extern void HandleInsertSelection(); -extern void HandleSelectStart(), HandleKeyboardSelectStart(); -extern void HandleSelectExtend(), HandleSelectSet(); -extern void HandleSelectEnd(), HandleKeyboardSelectEnd(); -extern void HandleStartExtend(), HandleKeyboardStartExtend(); -static void HandleBell(); -static void HandleVisualBell(); -static void HandleIgnore(); -extern void HandleSecure(); -extern void HandleScrollForward(); -extern void HandleScrollBack(); -extern void HandleCreateMenu(), HandlePopupMenu(); -extern void HandleSetFont(); -extern void SetVTFont(); -extern void ViButton(), DiredButton(); - -extern Boolean SendMousePosition(); -extern void ScrnSetAttributes(); +extern void HandleSetFont PROTO((Widget w, XEvent *event, String *params, Cardinal *param_count)); +static void HandleBell PROTO((Widget w, XEvent *event, String *params, Cardinal *param_count)); +static void HandleIgnore PROTO((Widget w, XEvent *event, String *params, Cardinal *param_count)); +static void HandleKeymapChange PROTO((Widget w, XEvent *event, String *params, Cardinal *param_count)); +static void HandleVisualBell PROTO((Widget w, XEvent *event, String *params, Cardinal *param_count)); /* * NOTE: VTInitialize zeros out the entire ".screen" component of the @@ -647,15 +651,15 @@ XtRBoolean, (XtPointer) &defaultTRUE}, }; -static void VTClassInit(); -static void VTInitialize(); -static void VTRealize(); -static void VTExpose(); -static void VTResize(); -static void VTDestroy(); -static Boolean VTSetValues(); +static void VTClassInit PROTO((void)); +static void VTInitialize PROTO((Widget wrequest, Widget wnew, ArgList args, Cardinal *num_args)); +static void VTRealize PROTO((Widget w, XtValueMask *valuemask, XSetWindowAttributes *values)); +static void VTExpose PROTO((Widget w, XEvent *event, Region region)); +static void VTResize PROTO((Widget w)); +static void VTDestroy PROTO((Widget w)); +static Boolean VTSetValues PROTO((Widget cur, Widget request, Widget new, ArgList args, Cardinal *num_args)); #ifdef I18N -static void VTInitI18N(); +static void VTInitI18N PROTO((void)); #endif static WidgetClassRec xtermClassRec = { @@ -705,7 +709,6 @@ register unsigned int c; register unsigned char *cp; register int row, col, top, bot, scstype; - extern int TrackMouse(); if(setjmp(vtjmpbuf)) parsestate = groundtable; @@ -723,7 +726,8 @@ } if(screen->curss) { dotext(screen, term->flags, - screen->gsets[screen->curss], bptr, bptr + 1, + screen->gsets[(int)(screen->curss)], + bptr, bptr + 1, term->cur_foreground, term->cur_background ); screen->curss = 0; @@ -731,7 +735,8 @@ } if(bptr < cp) dotext(screen, term->flags, - screen->gsets[screen->curgl], bptr, cp, + screen->gsets[(int)(screen->curgl)], + bptr, cp, term->cur_foreground, term->cur_background ); bptr = cp; @@ -1338,7 +1343,7 @@ } } -static finput() +static int finput() { return(doinput()); } @@ -1353,6 +1358,7 @@ /* Write data to the pty as typed by the user, pasted with the mouse, or generated by us in response to a query ESC sequence. */ +int v_write(f, d, len) int f; char *d; @@ -1458,12 +1464,13 @@ #ifndef AMOEBA riten = write(f, v_bufstr, v_bufptr - v_bufstr <= MAX_PTY_WRITE ? v_bufptr - v_bufstr : MAX_PTY_WRITE); - if (riten < 0) { + if (riten < 0) #else riten = v_bufptr - v_bufstr <= MAX_PTY_WRITE ? v_bufptr - v_bufstr : MAX_PTY_WRITE; - if (cb_puts(term->screen.tty_inq, v_bufstr, riten) != 0) { + if (cb_puts(term->screen.tty_inq, v_bufstr, riten) != 0) #endif /* AMOEBA */ + { #ifdef DEBUG if (debug) perror("write"); #endif @@ -1511,6 +1518,7 @@ static int write_mask; static int pty_read_bytes; +int in_put() { register TScreen *screen = &term->screen; @@ -1519,10 +1527,11 @@ for( ; ; ) { #ifndef AMOEBA - if (select_mask & pty_mask && eventMode == NORMAL) { + if (select_mask & pty_mask && eventMode == NORMAL) #else - if ((bcnt = cb_full(screen->tty_outq)) > 0 && eventMode == NORMAL) { + if ((bcnt = cb_full(screen->tty_outq)) > 0 && eventMode == NORMAL) #endif + { #ifdef ALLOWLOGGING if (screen->logging) FlushLog(screen); @@ -1799,9 +1808,10 @@ /* * process ANSI modes set, reset */ +void ansi_modes(termw, func) XtermWidget termw; - void (*func)(); + void (*func) PROTO((unsigned *p, int mask)); { register int i; @@ -1822,9 +1832,10 @@ /* * process DEC private modes set, reset */ +void dpmodes(termw, func) XtermWidget termw; - void (*func)(); + void (*func) PROTO((unsigned *p, int mask)); { register TScreen *screen = &termw->screen; register int i, j; @@ -1985,6 +1996,7 @@ /* * process xterm private modes save */ +void savemodes(termw) XtermWidget termw; { @@ -2051,6 +2063,7 @@ /* * process xterm private modes restore */ +void restoremodes(termw) XtermWidget termw; { @@ -2199,6 +2212,7 @@ *p &= ~mask; } +void unparseseq(ap, fd) register ANSI *ap; int fd; @@ -2232,6 +2246,7 @@ } } +void unparseputn(n, fd) unsigned int n; int fd; @@ -2244,6 +2259,7 @@ unparseputc((char) ('0' + (n%10)), fd); } +void unparseputc(c, fd) char c; int fd; @@ -2262,6 +2278,7 @@ v_write(fd, buf, i); } +void unparsefputs (s, fd) register char *s; int fd; @@ -2271,14 +2288,10 @@ } } -static void SwitchBufs(); - static void ToAlternate(screen) register TScreen *screen; { - extern ScrnBuf Allocate(); - if(screen->alternate) return; if(!screen->altbuf) @@ -2331,7 +2344,7 @@ } /* swap buffer line pointers between alt and regular screens */ - +void SwitchBufPtrs(screen) register TScreen *screen; { @@ -2344,6 +2357,7 @@ memmove( (char *)screen->altbuf, (char *)save, 4 * sizeof(char *) * rows); } +void VTRun() { register TScreen *screen = &term->screen; @@ -2467,7 +2481,6 @@ { register TScreen *screen = &term->screen; int nrows = screen->max_row + 1; - extern ScrnBuf Allocate(); /* allocate screen buffer now, if necessary. */ if (screen->scrollWidget) @@ -2789,8 +2802,7 @@ static void VTInitI18N() { - int i, - ic_cnt = 0; + int i; char *p, *s, *ns, @@ -2849,7 +2861,7 @@ for(s = tmp; s && !found;) { while (*s && isspace(*s)) s++; if (!*s) break; - if (ns = end = index(s, ',')) + if ((ns = end = index(s, ',')) != 0) ns++; else end = s + strlen(s); @@ -2969,6 +2981,7 @@ /* * Shows cursor at new cursor position in screen. */ +void ShowCursor() { register TScreen *screen = &term->screen; @@ -3087,6 +3100,7 @@ /* * hide cursor at previous cursor position in screen. */ +void HideCursor() { register TScreen *screen = &term->screen; @@ -3158,6 +3172,7 @@ screen->cursor_state = OFF; } +void VTReset(full) Boolean full; { @@ -3676,6 +3691,7 @@ set_vt_box (screen); } +void set_vt_box (screen) TScreen *screen; { @@ -3689,7 +3705,7 @@ screen->box = VTbox; } - +void set_cursor_gcs (screen) TScreen *screen; { Index: cursor.c --- xterm-original/cursor.c Wed Apr 27 03:12:34 1994 +++ xterm-patched/cursor.c Sat Jan 6 18:01:03 1996 @@ -29,6 +29,10 @@ #include "ptyx.h" /* also gets Xlib.h */ +#include "xterm.h" + +static void _CheckSelection PROTO((TScreen *screen)); + static void _CheckSelection(screen) register TScreen *screen; { @@ -48,6 +52,7 @@ * (this includes scrolling regions) * The origin is considered to be 0, 0 for this procedure. */ +void CursorSet(screen, row, col, flags) register TScreen *screen; register int row, col; @@ -71,6 +76,7 @@ /* * moves the cursor left n, no wrap around */ +void CursorBack(screen, n) register TScreen *screen; int n; @@ -100,6 +106,7 @@ /* * moves the cursor forward n, no wraparound */ +void CursorForward(screen, n) register TScreen *screen; int n; @@ -115,6 +122,7 @@ * moves the cursor down n, no scrolling. * Won't pass bottom margin or bottom of screen. */ +void CursorDown(screen, n) register TScreen *screen; int n; @@ -135,6 +143,7 @@ * moves the cursor up n, no linestarving. * Won't pass top margin or top of screen. */ +void CursorUp(screen, n) register TScreen *screen; int n; @@ -155,6 +164,7 @@ * Moves cursor down amount lines, scrolls if necessary. * Won't leave scrolling region. No carriage return. */ +void Index(screen, amount) register TScreen *screen; register int amount; @@ -179,6 +189,7 @@ * Moves cursor up amount lines, reverse scrolls if necessary. * Won't leave scrolling region. No carriage return. */ +void RevIndex(screen, amount) register TScreen *screen; register int amount; @@ -200,6 +211,7 @@ /* * Moves Cursor To First Column In Line */ +void CarriageReturn(screen) register TScreen *screen; { @@ -211,6 +223,7 @@ /* * Save Cursor and Attributes */ +void CursorSave(term, sc) register XtermWidget term; register SavedCursor *sc; @@ -228,6 +241,7 @@ /* * Restore Cursor and Attributes */ +void CursorRestore(term, sc) register XtermWidget term; register SavedCursor *sc; Index: input.c --- xterm-original/input.c Sat Jan 21 08:19:18 1995 +++ xterm-patched/input.c Sat Jan 6 18:24:21 1996 @@ -34,12 +34,17 @@ #include #include +#include "xterm.h" + static XComposeStatus compose_status = {NULL, 0}; static char *kypd_num = " XXXXXXXX\tXXX\rXXXxxxxXXXXXXXXXXXXXXXXXXXXX*+,-./0123456789XXX="; static char *kypd_apl = " ABCDEFGHIJKLMNOPQRSTUVWXYZ??????abcdefghijklmnopqrstuvwxyzXXX"; static char *cur = "DACB"; -static int funcvalue(), sunfuncvalue(); +static int funcvalue PROTO((int keycode)); +static int sunfuncvalue PROTO((int keycode)); +static void AdjustAfterInput PROTO((TScreen *screen)); + extern Boolean sunFunctionKeys; static void @@ -64,6 +69,7 @@ } } +void Input (keyboard, screen, event, eightbit) register TKeyboard *keyboard; register TScreen *screen; @@ -175,6 +181,7 @@ return; } +void StringInput (screen, string, nbytes) register TScreen *screen; register char *string; Index: main.c --- xterm-original/main.c Sat Dec 16 03:24:07 1995 +++ xterm-patched/main.c Sat Jan 6 19:50:50 1996 @@ -72,6 +72,7 @@ #include "data.h" #include "error.h" #include "menu.h" + #include #include #ifdef I18N @@ -463,12 +464,33 @@ extern char *ptsname(); #endif -extern char *strindex (); -extern void HandlePopupMenu(); +#include "xterm.h" int switchfb[] = {0, 2, 1, 3}; -static SIGNAL_T reapchild (); +extern char *base_name PROTO((char *name)); +extern int TekInit PROTO((void)); +extern int VTInit PROTO((void)); +extern int pty_search PROTO((int *pty)); +extern int remove_termcap_entry PROTO((char *buf, char *str)); +extern int spawn PROTO((void)); +extern int tgetent PROTO((char *ptr, char *name)); +extern void Cleanup PROTO((int code)); +extern void DeleteWindow PROTO_XT_ACTIONS_ARGS; +extern void HsSysError PROTO((int pf, int error)); +extern void KeyboardMapping PROTO_XT_ACTIONS_ARGS; +extern void Setenv PROTO((char *var, char *value)); +extern void SysError PROTO((int i)); +extern void TekRun PROTO((void)); +extern void VTRun PROTO((void)); +extern void get_terminal PROTO((void)); +extern void hide_tek_window PROTO((void)); +extern void hide_vt_window PROTO((void)); +extern void resize PROTO((TScreen *s, char *n, char *oldtc, char *newtc)); +static void Help PROTO((void)); +static void Syntax PROTO((char *badOption)); + +static SIGNAL_T reapchild PROTO((int n)); static Bool added_utmp_entry = False; @@ -548,7 +570,6 @@ #define CSTART ('Q'&037) #endif -static int parse_tty_modes (); /* * SYSV has the termio.c_cc[V] and ltchars; BSD has tchars and ltchars; * SVR4 has only termio.c_cc, but it includes everything from ltchars. @@ -595,6 +616,8 @@ { NULL, 0, 0, '\0' }, /* end of data */ }; +static int parse_tty_modes PROTO((char *s, struct _xttymodes *modelist)); + #ifdef USE_SYSV_UTMP #if defined(X_NOT_STDC_ENV) || (defined(AIXV3) && OSMAJORVERSION < 4) extern struct utmp *getutent(); @@ -616,7 +639,6 @@ extern void endpwent(); #endif -extern struct passwd *fgetpwent(); #else /* not USE_SYSV_UTMP */ static char etc_utmp[] = UTMP_FILENAME; #endif /* USE_SYSV_UTMP */ @@ -644,6 +666,11 @@ static int inhibit; static char passedPty[2]; /* name if pty if slave */ +#ifndef AMOEBA +extern int get_pty PROTO((int *pty)); +extern SIGNAL_T hungtty PROTO((int i)); +#endif + #if defined(TIOCCONS) || defined(SRIOCSREDIR) static int Console; #include /* XmuGetHostname */ @@ -651,6 +678,7 @@ #define MIT_CONSOLE "MIT_CONSOLE_" static char mit_console_name[255 + MIT_CONSOLE_LEN + 1] = MIT_CONSOLE; static Atom mit_console; +static Boolean ConvertConsoleSelection PROTO_XT_CVT_SELECT_ARGS; #endif /* TIOCCONS */ #ifndef USE_SYSV_UTMP @@ -1014,12 +1042,13 @@ } XtActionsRec actionProcs[] = { - "DeleteWindow", DeleteWindow, - "KeyboardMapping", KeyboardMapping, + { "DeleteWindow", DeleteWindow }, + { "KeyboardMapping", KeyboardMapping }, }; Atom wm_delete_window; +int main (argc, argv) int argc; char **argv; @@ -1027,7 +1056,6 @@ register TScreen *screen; register int pty; int Xsocket, mode; - char *base_name(); int xerror(), xioerror(); #ifdef I18N @@ -1627,6 +1655,7 @@ * has problems, we can re-enter this function and get another one. */ +int get_pty (pty) int *pty; { @@ -1792,6 +1821,7 @@ } #endif /* AMOEBA */ +void get_terminal () /* * sets up X and initializes the terminal structure except for term.buf.fildes. @@ -1939,6 +1969,7 @@ #ifndef AMOEBA +int spawn () /* * Inits pty and tty and forks a login process. @@ -1946,7 +1977,6 @@ * If slave, the pty named in passedPty is already open for use */ { - extern char *SysErrorMsg(); register TScreen *screen = &term->screen; int Xsocket = ConnectionNumber(screen->display); #ifdef USE_HANDSHAKE @@ -1966,10 +1996,8 @@ #ifdef TIOCSLTC struct ltchars ltc; #endif /* TIOCSLTC */ - int one = 1; - int zero = 0; - int status; #else /* else not USE_SYSV_TERMIO */ + int ldisc = 0; unsigned lmode; struct tchars tc; struct ltchars ltc; @@ -1984,15 +2012,10 @@ char newtc [1024]; char *ptr, *shname, *shname_minus; int i, no_dev_tty = FALSE; -#ifdef USE_SYSV_TERMIO - char *dev_tty_name = (char *) 0; - int fd; /* for /etc/wtmp */ -#endif /* USE_SYSV_TERMIO */ char **envnew; /* new environment */ int envsize; /* elements in new environment */ char buf[64]; char *TermName = NULL; - int ldisc = 0; #if defined(sun) && !defined(SVR4) #ifdef TIOCSSIZE struct ttysize ts; @@ -2413,7 +2436,7 @@ /* use the same tty name that everyone else will use ** (from ttyname) */ - if (ptr = ttyname(tty)) + if ((ptr = ttyname(tty)) != 0) { /* it may be bigger */ ttydev = realloc (ttydev, (unsigned) (strlen(ptr) + 1)); @@ -3085,7 +3108,7 @@ *(ptr = pw->pw_shell) == 0)) #endif /* UTMP */ ptr = "/bin/sh"; - if(shname = strrchr(ptr, '/')) + if ((shname = strrchr(ptr, '/')) != 0) shname++; else shname = ptr; @@ -3566,8 +3589,6 @@ signal(SIGPIPE, Exit); } -extern char *SysErrorMsg(); - /* * X watch-dog thread. This thread unblocks the main * thread when there's an X event. @@ -3722,6 +3743,7 @@ } /* ARGSUSED */ +void resize(screen, TermName, oldtc, newtc) TScreen *screen; char *TermName; @@ -3818,10 +3840,10 @@ } /* VARARGS1 */ +void consolepr(fmt,x0,x1,x2,x3,x4,x5,x6,x7,x8,x9) char *fmt; { - extern char *SysErrorMsg(); int oerrno; int f; char buf[ BUFSIZ ]; @@ -3847,7 +3869,7 @@ #endif /* TIOCNOTTY */ } - +int remove_termcap_entry (buf, str) char *buf; char *str; Index: menu.c --- xterm-original/menu.c Sun May 8 01:27:06 1994 +++ xterm-patched/menu.c Sat Jan 6 20:14:35 1996 @@ -43,28 +43,57 @@ #include #endif -extern void FindFontSelection(); +#include "xterm.h" Arg menuArgs[2] = {{ XtNleftBitmap, (XtArgVal) 0 }, { XtNsensitive, (XtArgVal) 0 }}; -void do_hangup(); - -static void do_securekbd(), do_allowsends(), do_visualbell(), #ifdef ALLOWLOGGING - do_logging(), +static void do_logging PROTO_XT_CALLBACK_ARGS; #endif - do_redraw(), do_suspend(), do_continue(), do_interrupt(), - do_terminate(), do_kill(), do_quit(), do_scrollbar(), do_jumpscroll(), - do_reversevideo(), do_autowrap(), do_reversewrap(), do_autolinefeed(), - do_appcursor(), do_appkeypad(), do_scrollkey(), do_scrollttyoutput(), - do_allow132(), do_cursesemul(), do_marginbell(), do_tekshow(), - do_altscreen(), do_softreset(), do_hardreset(), do_clearsavedlines(), - do_tekmode(), do_vthide(), - do_tektextlarge(), do_tektext2(), do_tektext3(), do_tektextsmall(), - do_tekpage(), do_tekreset(), do_tekcopy(), do_vtshow(), do_vtmode(), - do_tekhide(), do_vtfont(); +extern void do_hangup PROTO_XT_CALLBACK_ARGS; +static void do_allow132 PROTO_XT_CALLBACK_ARGS; +static void do_allowsends PROTO_XT_CALLBACK_ARGS; +static void do_altscreen PROTO_XT_CALLBACK_ARGS; +static void do_appcursor PROTO_XT_CALLBACK_ARGS; +static void do_appkeypad PROTO_XT_CALLBACK_ARGS; +static void do_autolinefeed PROTO_XT_CALLBACK_ARGS; +static void do_autowrap PROTO_XT_CALLBACK_ARGS; +static void do_clearsavedlines PROTO_XT_CALLBACK_ARGS; +static void do_continue PROTO_XT_CALLBACK_ARGS; +static void do_cursesemul PROTO_XT_CALLBACK_ARGS; +static void do_hardreset PROTO_XT_CALLBACK_ARGS; +static void do_interrupt PROTO_XT_CALLBACK_ARGS; +static void do_jumpscroll PROTO_XT_CALLBACK_ARGS; +static void do_kill PROTO_XT_CALLBACK_ARGS; +static void do_marginbell PROTO_XT_CALLBACK_ARGS; +static void do_quit PROTO_XT_CALLBACK_ARGS; +static void do_redraw PROTO_XT_CALLBACK_ARGS; +static void do_reversevideo PROTO_XT_CALLBACK_ARGS; +static void do_reversewrap PROTO_XT_CALLBACK_ARGS; +static void do_scrollbar PROTO_XT_CALLBACK_ARGS; +static void do_scrollkey PROTO_XT_CALLBACK_ARGS; +static void do_scrollttyoutput PROTO_XT_CALLBACK_ARGS; +static void do_securekbd PROTO_XT_CALLBACK_ARGS; +static void do_softreset PROTO_XT_CALLBACK_ARGS; +static void do_suspend PROTO_XT_CALLBACK_ARGS; +static void do_tekcopy PROTO_XT_CALLBACK_ARGS; +static void do_tekhide PROTO_XT_CALLBACK_ARGS; +static void do_tekmode PROTO_XT_CALLBACK_ARGS; +static void do_tekpage PROTO_XT_CALLBACK_ARGS; +static void do_tekreset PROTO_XT_CALLBACK_ARGS; +static void do_tekshow PROTO_XT_CALLBACK_ARGS; +static void do_tektext2 PROTO_XT_CALLBACK_ARGS; +static void do_tektext3 PROTO_XT_CALLBACK_ARGS; +static void do_tektextlarge PROTO_XT_CALLBACK_ARGS; +static void do_tektextsmall PROTO_XT_CALLBACK_ARGS; +static void do_terminate PROTO_XT_CALLBACK_ARGS; +static void do_visualbell PROTO_XT_CALLBACK_ARGS; +static void do_vtfont PROTO_XT_CALLBACK_ARGS; +static void do_vthide PROTO_XT_CALLBACK_ARGS; +static void do_vtmode PROTO_XT_CALLBACK_ARGS; +static void do_vtshow PROTO_XT_CALLBACK_ARGS; /* * The order entries MUST match the values given in menu.h @@ -137,7 +166,33 @@ { "vtmode", do_vtmode, NULL }, /* 10 */ { "tekhide", do_tekhide, NULL }}; /* 11 */ -static Widget create_menu(); +static Bool domenu + PROTO((Widget w, + XEvent *event, + String *params, + Cardinal *param_count)); + +static Widget create_menu + PROTO((XtermWidget xtw, + Widget toplevelw, + char *name, + struct _MenuEntry *entries, + int nentries)); + +static void do_tekonoff PROTO_XT_CALLBACK_ARGS; +static void do_vtonoff PROTO_XT_CALLBACK_ARGS; +static void handle_send_signal PROTO(( Widget gw, int sig)); +static void handle_tekshow PROTO(( Widget gw, Bool allowswitch)); +static void handle_vtshow PROTO((Widget gw, Bool allowswitch)); + +static void handle_toggle + PROTO((void (*proc)PROTO_XT_CALLBACK_ARGS, + int var, + String *params, + Cardinal nparams, + Widget w, + XtPointer closure, XtPointer data)); + extern Widget toplevel; @@ -340,7 +395,7 @@ static void do_securekbd (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; Time time = CurrentTime; /* XXX - wrong */ @@ -365,7 +420,7 @@ static void do_allowsends (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -375,7 +430,7 @@ static void do_visualbell (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -386,7 +441,7 @@ #ifdef ALLOWLOGGING static void do_logging (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -401,7 +456,7 @@ static void do_redraw (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { Redraw (); } @@ -416,7 +471,7 @@ /* ARGSUSED */ static void do_suspend (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { #if defined(SIGTSTP) && !defined(AMOEBA) handle_send_signal (gw, SIGTSTP); @@ -426,7 +481,7 @@ /* ARGSUSED */ static void do_continue (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { #if defined(SIGCONT) && !defined(AMOEBA) handle_send_signal (gw, SIGCONT); @@ -436,7 +491,7 @@ /* ARGSUSED */ static void do_interrupt (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_send_signal (gw, SIGINT); } @@ -444,7 +499,7 @@ /* ARGSUSED */ void do_hangup (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_send_signal (gw, SIGHUP); } @@ -452,7 +507,7 @@ /* ARGSUSED */ static void do_terminate (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_send_signal (gw, SIGTERM); } @@ -460,14 +515,14 @@ /* ARGSUSED */ static void do_kill (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_send_signal (gw, SIGKILL); } static void do_quit (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { Cleanup (0); } @@ -480,7 +535,7 @@ static void do_scrollbar (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -495,7 +550,7 @@ static void do_jumpscroll (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -512,7 +567,7 @@ static void do_reversevideo (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { term->flags ^= REVERSE_VIDEO; ReverseVideo (term); @@ -522,7 +577,7 @@ static void do_autowrap (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { term->flags ^= WRAPAROUND; update_autowrap(); @@ -531,7 +586,7 @@ static void do_reversewrap (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { term->flags ^= REVERSEWRAP; update_reversewrap(); @@ -540,7 +595,7 @@ static void do_autolinefeed (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { term->flags ^= LINEFEED; update_autolinefeed(); @@ -549,7 +604,7 @@ static void do_appcursor (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { term->keyboard.flags ^= CURSOR_APL; update_appcursor(); @@ -558,7 +613,7 @@ static void do_appkeypad (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { term->keyboard.flags ^= KYPD_APL; update_appkeypad(); @@ -567,7 +622,7 @@ static void do_scrollkey (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -578,7 +633,7 @@ static void do_scrollttyoutput (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -589,7 +644,7 @@ static void do_allow132 (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -600,7 +655,7 @@ static void do_cursesemul (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -611,7 +666,7 @@ static void do_marginbell (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -638,7 +693,7 @@ /* ARGSUSED */ static void do_tekshow (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_tekshow (gw, True); } @@ -646,7 +701,7 @@ /* ARGSUSED */ static void do_tekonoff (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_tekshow (gw, False); } @@ -654,7 +709,7 @@ /* ARGSUSED */ static void do_altscreen (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { /* do nothing for now; eventually, will want to flip screen */ } @@ -662,7 +717,7 @@ static void do_softreset (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { VTReset (FALSE); } @@ -670,7 +725,7 @@ static void do_hardreset (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { VTReset (TRUE); } @@ -678,7 +733,7 @@ static void do_clearsavedlines (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -690,7 +745,7 @@ static void do_tekmode (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -700,7 +755,7 @@ /* ARGSUSED */ static void do_vthide (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { hide_vt_window(); } @@ -712,7 +767,7 @@ static void do_vtfont (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { char *entryname = (char *) closure; int i; @@ -733,7 +788,7 @@ static void do_tektextlarge (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { TekSetFontSize (tekMenu_tektextlarge); } @@ -741,7 +796,7 @@ static void do_tektext2 (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { TekSetFontSize (tekMenu_tektext2); } @@ -749,7 +804,7 @@ static void do_tektext3 (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { TekSetFontSize (tekMenu_tektext3); } @@ -757,7 +812,7 @@ static void do_tektextsmall (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { TekSetFontSize (tekMenu_tektextsmall); @@ -766,7 +821,7 @@ static void do_tekpage (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { TekSimulatePageButton (False); } @@ -774,7 +829,7 @@ static void do_tekreset (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { TekSimulatePageButton (True); } @@ -782,7 +837,7 @@ static void do_tekcopy (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { TekCopy (); } @@ -806,21 +861,21 @@ static void do_vtshow (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_vtshow (gw, True); } static void do_vtonoff (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { handle_vtshow (gw, False); } static void do_vtmode (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { register TScreen *screen = &term->screen; @@ -831,7 +886,7 @@ /* ARGSUSED */ static void do_tekhide (gw, closure, data) Widget gw; - caddr_t closure, data; + XtPointer closure, data; { hide_tek_window(); } @@ -843,12 +898,12 @@ */ static void handle_toggle (proc, var, params, nparams, w, closure, data) - void (*proc)(); + void (*proc)PROTO_XT_CALLBACK_ARGS; int var; String *params; Cardinal nparams; Widget w; - caddr_t closure, data; + XtPointer closure, data; { int dir = -2; @@ -1204,7 +1259,7 @@ String *params; Cardinal *param_count; { - void (*proc)() = NULL; + void (*proc)PROTO_XT_CALLBACK_ARGS = 0; switch (*param_count) { case 0: Index: menu.h --- xterm-original/menu.h Wed Apr 27 03:12:26 1994 +++ xterm-patched/menu.h Sat Jan 6 20:08:57 1996 @@ -29,9 +29,14 @@ */ +#ifndef included_menu_h +#define included_menu_h + +#include "proto.h" + typedef struct _MenuEntry { char *name; - void (*function)(); + void (*function) PROTO_XT_CALLBACK_ARGS; Widget widget; } MenuEntry; @@ -39,38 +44,42 @@ extern MenuEntry fontMenuEntries[]; extern Arg menuArgs[]; -extern void HandleAllowSends(); -extern void HandleSetVisualBell(); +extern void HandleAllow132 PROTO_XT_ACTIONS_ARGS; +extern void HandleAllowSends PROTO_XT_ACTIONS_ARGS; +extern void HandleAltScreen PROTO_XT_ACTIONS_ARGS; +extern void HandleAppCursor PROTO_XT_ACTIONS_ARGS; +extern void HandleAppKeypad PROTO_XT_ACTIONS_ARGS; +extern void HandleAutoLineFeed PROTO_XT_ACTIONS_ARGS; +extern void HandleAutoWrap PROTO_XT_ACTIONS_ARGS; +extern void HandleClearSavedLines PROTO_XT_ACTIONS_ARGS; +extern void HandleCreateMenu PROTO_XT_ACTIONS_ARGS; +extern void HandleCursesEmul PROTO_XT_ACTIONS_ARGS; +extern void HandleHardReset PROTO_XT_ACTIONS_ARGS; +extern void HandleJumpscroll PROTO_XT_ACTIONS_ARGS; +extern void HandleMarginBell PROTO_XT_ACTIONS_ARGS; +extern void HandlePopupMenu PROTO_XT_ACTIONS_ARGS; +extern void HandleQuit PROTO_XT_ACTIONS_ARGS; +extern void HandleRedraw PROTO_XT_ACTIONS_ARGS; +extern void HandleReverseVideo PROTO_XT_ACTIONS_ARGS; +extern void HandleReverseWrap PROTO_XT_ACTIONS_ARGS; +extern void HandleScrollKey PROTO_XT_ACTIONS_ARGS; +extern void HandleScrollTtyOutput PROTO_XT_ACTIONS_ARGS; +extern void HandleScrollbar PROTO_XT_ACTIONS_ARGS; +extern void HandleSendSignal PROTO_XT_ACTIONS_ARGS; +extern void HandleSetTekText PROTO_XT_ACTIONS_ARGS; +extern void HandleSetTerminalType PROTO_XT_ACTIONS_ARGS; +extern void HandleSetVisualBell PROTO_XT_ACTIONS_ARGS; +extern void HandleSoftReset PROTO_XT_ACTIONS_ARGS; +extern void HandleTekCopy PROTO_XT_ACTIONS_ARGS; +extern void HandleTekPage PROTO_XT_ACTIONS_ARGS; +extern void HandleTekReset PROTO_XT_ACTIONS_ARGS; +extern void HandleVisibility PROTO_XT_ACTIONS_ARGS; + #ifdef ALLOWLOGGING -extern void HandleLogging(); +extern void HandleLogging PROTO_XT_ACTIONS_ARGS; #endif -extern void HandleRedraw(); -extern void HandleSendSignal(); -extern void HandleQuit(); -extern void HandleScrollbar(); -extern void HandleJumpscroll(); -extern void HandleReverseVideo(); -extern void HandleAutoWrap(); -extern void HandleReverseWrap(); -extern void HandleAutoLineFeed(); -extern void HandleAppCursor(); -extern void HandleAppKeypad(); -extern void HandleScrollKey(); -extern void HandleScrollTtyOutput(); -extern void HandleAllow132(); -extern void HandleCursesEmul(); -extern void HandleMarginBell(); -extern void HandleAltScreen(); -extern void HandleSoftReset(); -extern void HandleHardReset(); -extern void HandleClearSavedLines(); -extern void HandleSetTerminalType(); -extern void HandleVisibility(); -extern void HandleSetTekText(); -extern void HandleTekPage(); -extern void HandleTekReset(); -extern void HandleTekCopy(); -extern void DoSecureKeyboard(); + +extern void DoSecureKeyboard PROTO((Time time)); /* * The following definitions MUST match the order of entries given in @@ -319,3 +328,4 @@ update_menu_item (term->screen.fontMenu, \ fontMenuEntries[term->screen.menu_font_number].widget, \ (val)) +#endif/*included_menu_h*/ Index: misc.c --- xterm-original/misc.c Sun Sep 17 02:33:18 1995 +++ xterm-patched/misc.c Sat Jan 6 18:06:21 1996 @@ -48,6 +48,8 @@ #include "error.h" #include "menu.h" +#include "xterm.h" + #ifdef AMOEBA #include "amoeba.h" #include "module/proc.h" @@ -63,14 +65,21 @@ extern char *getenv(); #endif -static void DoSpecialEnterNotify(); -static void DoSpecialLeaveNotify(); - +extern Boolean AllocateColor PROTO((XtermWidget pTerm, ScrnColors *pNew, int ndx, char *name)); +extern Boolean ChangeColorsRequest PROTO((XtermWidget pTerm, int start, char *names)); +extern Boolean GetOldColors PROTO(( XtermWidget pTerm)); +extern Boolean UpdateOldColors PROTO((XtermWidget pTerm, ScrnColors *pNew)); +extern void selectwindow PROTO((TScreen *screen, int flag)); +extern void unselectwindow PROTO((TScreen *screen, int flag)); +static void ChangeGroup PROTO((String attribute, XtArgVal value)); +static void DoSpecialEnterNotify PROTO((XEnterWindowEvent *ev)); +static void DoSpecialLeaveNotify PROTO((XEnterWindowEvent *ev)); +static void withdraw_window PROTO((Display *dpy, Window w, int scr)); +void xevents() { XEvent event; - XtInputMask input_mask; register TScreen *screen = &term->screen; if(screen->scroll_amt) @@ -206,10 +215,11 @@ } /*ARGSUSED*/ -void HandleEnterWindow(w, eventdata, event) +void HandleEnterWindow(w, eventdata, event, cont) Widget w; -register XEnterWindowEvent *event; -caddr_t eventdata; +XtPointer eventdata; +XEvent *event; +Boolean *cont; { /* NOP since we handled it above */ } @@ -232,10 +242,11 @@ /*ARGSUSED*/ -void HandleLeaveWindow(w, eventdata, event) +void HandleLeaveWindow(w, eventdata, event, cont) Widget w; -register XEnterWindowEvent *event; -caddr_t eventdata; +XtPointer eventdata; +XEvent *event; +Boolean *cont; { /* NOP since we handled it above */ } @@ -267,7 +278,7 @@ } - +void selectwindow(screen, flag) register TScreen *screen; register int flag; @@ -295,6 +306,7 @@ } } +void unselectwindow(screen, flag) register TScreen *screen; register int flag; @@ -322,6 +334,7 @@ static long lastBellTime; /* in milliseconds */ +void Bell() { extern XtermWidget term; @@ -366,7 +379,7 @@ } } - +void VisualBell() { extern XtermWidget term; @@ -427,6 +440,7 @@ } } +void Redraw() { extern XtermWidget term; @@ -668,9 +682,9 @@ #endif /* ALLOWLOGFILEEXEC */ #endif /* ALLOWLOGGING */ - +void do_osc(func) -int (*func)(); +int (*func) PROTO((void)); { register int mode, c; register char *cp; @@ -709,7 +723,6 @@ case 13: case 14: case 15: case 16: { - extern Boolean ChangeColorsRequest(); if (term->misc.dynamicColors) ChangeColorsRequest(term,mode-10,buf); } @@ -746,7 +759,8 @@ } } -static ChangeGroup(attribute, value) +static void +ChangeGroup(attribute, value) String attribute; XtArgVal value; { @@ -757,12 +771,14 @@ XtSetValues( toplevel, args, 1 ); } +void Changename(name) register char *name; { ChangeGroup( XtNiconName, (XtArgVal)name ); } +void Changetitle(name) register char *name; { @@ -951,6 +967,7 @@ #ifndef DEBUG /* ARGSUSED */ #endif +void Panic(s, a) char *s; int a; @@ -978,7 +995,7 @@ #endif /* __STDC__ */ } - +void SysError (i) int i; { @@ -991,6 +1008,7 @@ Cleanup(i); } +void Error (i) int i; { @@ -1002,6 +1020,7 @@ /* * cleanup by sending SIGHUP to client processes */ +void Cleanup (code) int code; { @@ -1028,6 +1047,7 @@ * was allocated using calloc, with enough extra room at the end so not * to have to do a realloc(). */ +void Setenv (var, value) register char *var, *value; { @@ -1075,6 +1095,7 @@ } /*ARGSUSED*/ +int xerror(d, ev) Display *d; register XErrorEvent *ev; @@ -1085,6 +1106,7 @@ } /*ARGSUSED*/ +int xioerror(dpy) Display *dpy; { @@ -1105,6 +1127,7 @@ exit(1); } +int XStrCmp(s1, s2) char *s1, *s2; { Index: proto.h --- /dev/null Sun Jul 17 19:46:18 1994 +++ xterm-patched/proto.h Sat Jan 6 20:06:29 1996 @@ -0,0 +1,29 @@ +#ifndef included_proto_h +#define included_proto_h + +#include + +#if NeedFunctionPrototypes +#define PROTO(p) p +#else +#define PROTO(p) () +#endif + +#define NOPROTO(p) (/*nothing*/) + +#define PROTO_XT_ACTIONS_ARGS \ + PROTO((Widget w, XEvent *event, String *params, Cardinal *num_params)) + +#define PROTO_XT_CALLBACK_ARGS \ + PROTO((Widget gw, XtPointer closure, XtPointer data)) + +#define PROTO_XT_CVT_SELECT_ARGS \ + PROTO((Widget w, Atom *selection, Atom *target, Atom *type, XtPointer *value, unsigned long *length, int *format)) + +#define PROTO_XT_EV_HANDLER_ARGS \ + PROTO((Widget w, XtPointer closure, XEvent *event, Boolean *cont)) + +#define PROTO_XT_SEL_CB_ARGS \ + PROTO((Widget w, XtPointer client_data, Atom *selection, Atom *type, XtPointer value, unsigned long *length, int *format)) + +#endif/*included_proto_h*/ Index: ptyx.h --- xterm-original/ptyx.h Sun Sep 17 02:33:19 1995 +++ xterm-patched/ptyx.h Sat Jan 6 17:01:24 1996 @@ -629,8 +629,3 @@ #endif #define I_SIGNAL 0x02 #define I_TEK 0x04 - -extern Cursor make_colored_cursor(); -extern int GetBytesAvailable(); -extern void first_map_occurred(); -extern int kill_process_group(); Index: resize.c --- xterm-original/resize.c Sat Mar 11 09:21:37 1995 +++ xterm-patched/resize.c Sat Jan 6 18:37:40 1996 @@ -146,15 +146,15 @@ char *name; int type; } shell_list[] = { - "csh", SHELL_C, /* vanilla cshell */ - "tcsh", SHELL_C, - "jcsh", SHELL_C, - "sh", SHELL_BOURNE, /* vanilla Bourne shell */ - "ksh", SHELL_BOURNE, /* Korn shell (from AT&T toolchest) */ - "ksh-i", SHELL_BOURNE, /* other name for latest Korn shell */ - "bash", SHELL_BOURNE, /* GNU Bourne again shell */ - "jsh", SHELL_BOURNE, - NULL, SHELL_BOURNE /* default (same as xterm's) */ + { "csh", SHELL_C }, /* vanilla cshell */ + { "tcsh", SHELL_C }, + { "jcsh", SHELL_C }, + { "sh", SHELL_BOURNE }, /* vanilla Bourne shell */ + { "ksh", SHELL_BOURNE }, /* Korn shell (from AT&T toolchest) */ + { "ksh-i", SHELL_BOURNE }, /* other name for latest Korn shell */ + { "bash", SHELL_BOURNE }, /* GNU Bourne again shell */ + { "jsh", SHELL_BOURNE }, + { NULL, SHELL_BOURNE } /* default (same as xterm's) */ }; char *emuname[EMULATIONS] = { @@ -205,13 +205,21 @@ #endif /* TIOCSWINSZ */ #endif /* sun */ -char *strindex (); +#include "proto.h" -SIGNAL_T onintr(); +extern int main PROTO((int argc, char **argv)); + +extern SIGNAL_T onintr PROTO((int sig)); +extern SIGNAL_T timeout PROTO((int sig)); +extern char *strindex PROTO((char *s1, char *s2)); +extern int checkdigits PROTO((char *str)); +extern void Usage PROTO((void)); +extern void readstring PROTO((FILE *fp, char *buf, char *str)); /* resets termcap string to reflect current screen size */ +int main (argc, argv) int argc; char **argv; @@ -495,6 +503,7 @@ return (NULL); } +int checkdigits(str) register char *str; { @@ -506,13 +515,13 @@ return(1); } +void readstring(fp, buf, str) register FILE *fp; register char *buf; char *str; { register int last, c; - SIGNAL_T timeout(); #if !defined(USG) && !defined(AMOEBA) && !defined(MINIX) && !defined(SCO) && !(__EMX__) /* What is the advantage of setitimer() over alarm()? */ struct itimerval it; @@ -547,6 +556,7 @@ *buf = 0; } +void Usage() { fprintf(stderr, strcmp(myname, sunname) == 0 ? Index: screen.c --- xterm-original/screen.c Sat Dec 16 03:24:08 1995 +++ xterm-patched/screen.c Sat Jan 6 17:51:36 1996 @@ -32,6 +32,15 @@ #include "error.h" #include "data.h" +#include "xterm.h" + +#ifndef X_NOT_STDC_ENV +#include +#else +extern Char *calloc(), *malloc(), *realloc(); +extern void free(); +#endif + #include #include #ifdef SVR4 @@ -56,8 +65,7 @@ #define TIOCSPGRP TCSETPGRP #endif -extern Char *calloc(), *malloc(), *realloc(); -extern void free(); +static int Reallocate PROTO((ScrnBuf *sbuf, Char **sbufaddr, int nrow, int ncol, int oldrow, int oldcol)); ScrnBuf Allocate (nrow, ncol, addr) /* @@ -94,7 +102,7 @@ * Returns the number of lines the text was moved down (neg for up). * (Return value only necessary with SouthWestGravity.) */ -static +static int Reallocate(sbuf, sbufaddr, nrow, ncol, oldrow, oldcol) ScrnBuf *sbuf; Char **sbufaddr; @@ -170,6 +178,7 @@ return move_down ? move_down/4 : -move_up/4; /* convert to rows */ } +void ScreenWrite (screen, str, flags, cur_fg, cur_bg, length) /* Writes str into buf at row row and column col. Characters are set to match @@ -210,6 +219,7 @@ *attrs0 |= LINEWRAPPED; } +void ScrnInsertLine (sb, last, where, n, size) /* Inserts n blank lines at sb + where, treating last as a bottom margin. @@ -249,7 +259,7 @@ memmove( (char *) &sb[4 * where], (char *)save, 4 * sizeof(char *) * n); } - +void ScrnDeleteLine (sb, last, where, n, size) /* Deletes n lines at sb + where, treating last as a bottom margin. @@ -280,7 +290,7 @@ 4 * sizeof(char *) * n); } - +void ScrnInsertChar (sb, row, col, n, size) /* Inserts n blanks in sb at row, col. Size is the size of each row. @@ -309,7 +319,7 @@ attrs[0] |= LINEWRAPPED; } - +void ScrnDeleteChar (sb, row, col, n, size) /* Deletes n characters in sb at row, col. Size is the size of each row. @@ -331,7 +341,7 @@ attrs[0] |= LINEWRAPPED; } - +void ScrnRefresh (screen, toprow, leftcol, nrows, ncols, force) /* Repaints the area enclosed by the parameters. @@ -523,6 +533,7 @@ } } +void ClearBufRows (screen, first, last) /* Sets the rows first though last of the buffer of screen to spaces. @@ -553,6 +564,7 @@ 7. Clears origin mode and sets scrolling region to be entire screen. 8. Returns 0 */ +int ScreenResize (screen, width, height, flags) register TScreen *screen; int width, height; Index: scrollbar.c --- xterm-original/scrollbar.c Sat Sep 23 03:09:28 1995 +++ xterm-patched/scrollbar.c Sat Jan 6 20:05:37 1996 @@ -28,6 +28,13 @@ #include "ptyx.h" /* gets Xt headers, too */ +#ifndef X_NOT_STDC_ENV +#include +#else +extern Char *realloc(); +extern Char *calloc(); +#endif + #include #include #include @@ -41,10 +48,18 @@ #include "error.h" #include "menu.h" +#include "xterm.h" + +static Widget CreateScrollBar PROTO((XtermWidget xw, int x, int y, int height)); +static int params_to_pixels PROTO((TScreen *screen, String *params, int n)); +static int specialcmplowerwiths PROTO((char *a, char *b)); +static void RealizeScrollBar PROTO((Widget sbw, TScreen *screen)); +static void ResizeScreen PROTO((XtermWidget xw, int min_width, int min_height)); + /* Event handlers */ -static void ScrollTextTo(); -static void ScrollTextUpDownBy(); +static void ScrollTextTo PROTO_XT_CALLBACK_ARGS; +static void ScrollTextUpDownBy PROTO_XT_CALLBACK_ARGS; /* resize the text window for a terminal screen, modifying the @@ -201,7 +216,7 @@ XtRealizeWidget (sbw); } - +void ScrollBarReverseVideo(scrollWidget) register Widget scrollWidget; { @@ -227,7 +242,7 @@ } - +void ScrollBarDrawThumb(scrollWidget) register Widget scrollWidget; { @@ -241,9 +256,9 @@ XawScrollbarSetThumb(scrollWidget, ((float)thumbTop) / totalHeight, ((float)thumbHeight) / totalHeight); - } +void ResizeScrollBar(scrollWidget, x, y, height) register Widget scrollWidget; int x, y; @@ -254,6 +269,7 @@ ScrollBarDrawThumb(scrollWidget); } +void WindowScroll(screen, top) register TScreen *screen; int top; @@ -302,7 +318,7 @@ ScrollBarDrawThumb(screen->scrollWidget); } - +void ScrollBarOn (xw, init, doalloc) XtermWidget xw; int init, doalloc; @@ -310,7 +326,6 @@ register TScreen *screen = &xw->screen; register int border = 2 * screen->border; register int i; - Char *realloc(), *calloc(); if(screen->scrollbar) return; @@ -369,6 +384,7 @@ } } +void ScrollBarOff(screen) register TScreen *screen; { Index: tabs.c --- xterm-original/tabs.c Wed Apr 27 03:12:32 1994 +++ xterm-patched/tabs.c Sat Jan 6 12:25:15 1996 @@ -29,6 +29,8 @@ #include "ptyx.h" +#include "xterm.h" + /* * This file presumes 32bits/word. This is somewhat of a crock, and should * be fixed sometime. @@ -37,6 +39,7 @@ /* * places tabstops at only every 8 columns */ +void TabReset(tabs) Tabs tabs; { @@ -53,6 +56,7 @@ /* * places a tabstop at col */ +void TabSet(tabs, col) Tabs tabs; int col; @@ -63,6 +67,7 @@ /* * clears a tabstop at col */ +void TabClear(tabs, col) Tabs tabs; int col; @@ -75,6 +80,7 @@ * (or MAX_TABS - 1 if there are no more). * A tabstop at col is ignored. */ +int TabNext (tabs, col) Tabs tabs; int col; @@ -96,6 +102,7 @@ /* * clears all tabs */ +void TabZonk (tabs) Tabs tabs; { Index: util.c --- xterm-original/util.c Sat Sep 23 03:09:30 1995 +++ xterm-patched/util.c Sat Jan 6 18:02:32 1996 @@ -35,12 +35,18 @@ #include -static void horizontal_copy_area(); -static void vertical_copy_area(); +#include "xterm.h" + +extern int handle_translated_exposure PROTO((TScreen *screen, int rect_x, int rect_y, unsigned int rect_width, unsigned int rect_height)); +extern void CopyWait PROTO((TScreen *screen)); +static void copy_area PROTO((TScreen *screen, int src_x, int src_y, unsigned int width, unsigned int height, int dest_x, int dest_y)); +static void horizontal_copy_area PROTO((TScreen *screen, int firstchar, int nchars, int amount)); +static void vertical_copy_area PROTO((TScreen *screen, int firstline, int nlines, int amount)); /* * These routines are used for the jump scroll feature */ +void FlushScroll(screen) register TScreen *screen; { @@ -122,6 +128,7 @@ } } +int AddToRefresh(screen) register TScreen *screen; { @@ -156,6 +163,7 @@ * All done within the scrolling region, of course. * requires: amount > 0 */ +void Scroll(screen, amount) register TScreen *screen; register int amount; @@ -259,6 +267,7 @@ * All done within the scrolling region, of course. * Requires: amount > 0 */ +void RevScroll(screen, amount) register TScreen *screen; register int amount; @@ -327,6 +336,7 @@ * inserts n blank lines at the cursor's position. Lines above the * bottom margin are lost. */ +void InsertLine (screen, n) register TScreen *screen; register int n; @@ -388,6 +398,7 @@ * If cursor not in scrolling region, returns. Else, deletes n lines * at the cursor's position, lines added at bottom margin are blank. */ +void DeleteLine(screen, n) register TScreen *screen; register int n; @@ -468,6 +479,7 @@ /* * Insert n blanks at the cursor's position, no wraparound */ +void InsertChar (screen, n) register TScreen *screen; register int n; @@ -511,6 +523,7 @@ /* * Deletes n chars at the cursor's position, no wraparound. */ +void DeleteChar (screen, n) register TScreen *screen; register int n; @@ -550,6 +563,7 @@ /* * Clear from cursor position to beginning of display, inclusive. */ +void ClearAbove (screen) register TScreen *screen; { @@ -577,6 +591,7 @@ /* * Clear from cursor position to end of display, inclusive. */ +void ClearBelow (screen) register TScreen *screen; { @@ -599,6 +614,7 @@ /* * Clear last part of cursor's line, inclusive. */ +void ClearRight (screen) register TScreen *screen; { @@ -632,6 +648,7 @@ /* * Clear first part of cursor's line, inclusive. */ +void ClearLeft (screen) register TScreen *screen; { @@ -670,6 +687,7 @@ /* * Erase the cursor's line. */ +void ClearLine(screen) register TScreen *screen; { @@ -693,6 +711,7 @@ bzero (screen->buf [4 * screen->cur_row + 3], (screen->max_col + 1)); } +void ClearScreen(screen) register TScreen *screen; { @@ -716,6 +735,7 @@ ClearBufRows (screen, 0, screen->max_row); } +void CopyWait(screen) register TScreen *screen; { @@ -825,6 +845,7 @@ /* * use when scrolling the entire screen */ +void scrolling_copy_area(screen, firstline, nlines, amount) TScreen *screen; int firstline; /* line on screen to start copying at */ @@ -841,6 +862,7 @@ * Handler for Expose events on the VT widget. * Returns 1 iff the area where the cursor was got refreshed. */ +int HandleExposure (screen, event) register TScreen *screen; register XEvent *event; @@ -886,6 +908,7 @@ * have been translated to allow for any CopyArea in progress. * The rectangle passed in is pixel coordinates. */ +int handle_translated_exposure (screen, rect_x, rect_y, rect_width, rect_height) register TScreen *screen; register int rect_x, rect_y; @@ -939,10 +962,6 @@ ScrnColors *pColors; { register TScreen *screen = &term->screen; - GC tmpGC; - Window tek = TWindow(screen); - unsigned long tmp; - pColors->which= 0; SET_COLOR_VALUE(pColors,TEXT_FG, screen->foreground); @@ -951,23 +970,19 @@ SET_COLOR_VALUE(pColors,MOUSE_FG, screen->mousecolor); SET_COLOR_VALUE(pColors,MOUSE_BG, screen->mousecolorback); - SET_COLOR_VALUE(pColors,TEK_FG, screen->Tforeground); SET_COLOR_VALUE(pColors,TEK_BG, screen->Tbackground); } - +void ChangeColors(term,pNew) XtermWidget term; ScrnColors *pNew; { register TScreen *screen = &term->screen; - GC tmpGC; Window tek = TWindow(screen); - unsigned long tmp; Bool newCursor= TRUE; - if (COLOR_DEFINED(pNew,TEXT_BG)) { term->core.background_pixel= COLOR_VALUE(pNew,TEXT_BG); } @@ -1032,7 +1047,7 @@ /***====================================================================***/ - +void ReverseVideo (termw) XtermWidget termw; { @@ -1085,11 +1100,11 @@ XClearWindow(screen->display, tek); TekExpose((Widget)NULL, (XEvent *)NULL, (Region)NULL); } -ReverseOldColors(); + ReverseOldColors(); update_reversevideo(); } - +void recolor_cursor (cursor, fg, bg) Cursor cursor; /* X cursor ID to set */ unsigned long fg, bg; /* pixel indexes to look up */ @@ -1105,4 +1120,3 @@ XRecolorCursor (dpy, cursor, colordefs, colordefs+1); return; } - Index: xterm.h --- /dev/null Sun Jul 17 19:46:18 1994 +++ xterm-patched/xterm.h Sat Jan 6 20:01:16 1996 @@ -0,0 +1,189 @@ +/* + * Common/useful definitions for XTERM application + */ +#ifndef included_xterm_h +#define included_xterm_h + +#include "proto.h" + +/* Tekproc.c */ +extern int TekInit PROTO((void)); +extern void ChangeTekColors PROTO((TScreen *screen, ScrnColors *pNew)); +extern void TCursorToggle PROTO((int toggle)); +extern void TekCopy PROTO((void)); +extern void TekEnqMouse PROTO((int c)); +extern void TekExpose NOPROTO((Widget w, XEvent *event, Region region)); +extern void TekGINoff PROTO((void)); +extern void TekReverseVideo PROTO((TScreen *screen)); +extern void TekRun PROTO((void)); +extern void TekSetFontSize PROTO((int newitem)); +extern void TekSimulatePageButton PROTO((Bool reset)); +extern void dorefresh PROTO((void)); + +/* button.c */ +extern Boolean SendMousePosition PROTO((Widget w, XEvent* event)); +extern int SetCharacterClassRange PROTO((int low, int high, int value)); +extern void DiredButton PROTO_XT_ACTIONS_ARGS; +extern void DisownSelection PROTO((XtermWidget termw)); +extern void HandleGINInput PROTO_XT_ACTIONS_ARGS; +extern void HandleInsertSelection PROTO_XT_ACTIONS_ARGS; +extern void HandleKeyboardSelectEnd PROTO_XT_ACTIONS_ARGS; +extern void HandleKeyboardSelectStart PROTO_XT_ACTIONS_ARGS; +extern void HandleKeyboardStartExtend PROTO_XT_ACTIONS_ARGS; +extern void HandleSecure PROTO_XT_ACTIONS_ARGS; +extern void HandleSelectEnd PROTO_XT_ACTIONS_ARGS; +extern void HandleSelectExtend PROTO_XT_ACTIONS_ARGS; +extern void HandleSelectSet PROTO_XT_ACTIONS_ARGS; +extern void HandleSelectStart PROTO_XT_ACTIONS_ARGS; +extern void HandleStartExtend PROTO_XT_ACTIONS_ARGS; +extern void ResizeSelection PROTO((TScreen *screen, int rows, int cols)); +extern void ScrollSelection PROTO((TScreen* screen, int amount)); +extern void TrackMouse PROTO((int func, int startrow, int startcol, int firstrow, int lastrow)); +extern void TrackText PROTO((int frow, int fcol, int trow, int tcol)); +extern void ViButton PROTO_XT_ACTIONS_ARGS; + +/* charproc.c */ +extern int VTInit PROTO((void)); +extern int v_write PROTO((int f, char *d, int len)); +extern void FindFontSelection PROTO((char *atom_name, Bool justprobe)); +extern void HideCursor PROTO((void)); +extern void SetVTFont PROTO((int i, Bool doresize, char *name1, char *name2)); +extern void ShowCursor PROTO((void)); +extern void SwitchBufPtrs PROTO((TScreen *screen)); +extern void VTReset PROTO((Boolean full)); +extern void VTRun PROTO((void)); +extern void set_cursor_gcs PROTO((TScreen *screen)); +extern void unparseputc PROTO((int c, int fd)); +extern void unparseseq PROTO((ANSI *ap, int fd)); + +/* cursor.c */ +extern void CarriageReturn PROTO((TScreen *screen)); +extern void CursorBack PROTO((TScreen *screen, int n)); +extern void CursorDown PROTO((TScreen *screen, int n)); +extern void CursorForward PROTO((TScreen *screen, int n)); +extern void CursorRestore PROTO((XtermWidget term, SavedCursor *sc)); +extern void CursorSave PROTO((XtermWidget term, SavedCursor *sc)); +extern void CursorSet PROTO((TScreen *screen, int row, int col, unsigned flags)); +extern void CursorUp PROTO((TScreen *screen, int n)); +extern void Index PROTO((TScreen *screen, int amount)); +extern void RevIndex PROTO((TScreen *screen, int amount)); + +/* input.c */ +extern void Input PROTO((TKeyboard *keyboard, TScreen *screen, XKeyEvent *event, Bool eightbit)); +extern void StringInput PROTO((TScreen *screen, char *string, int nbytes)); + +/* main.c */ +extern int main PROTO((int argc, char **argv)); + +extern int GetBytesAvailable PROTO((int fd)); +extern int kill_process_group PROTO((int pid, int sig)); +extern int nonblocking_wait PROTO((void)); +extern void first_map_occurred PROTO((void)); +extern void get_terminal PROTO((void)); + +#ifndef AMOEBA +extern int spawn PROTO((void)); +#endif + +#ifdef SIGNAL_T +extern SIGNAL_T Exit NOPROTO((int n)); +#endif + +/* misc.c */ +extern Cursor make_colored_cursor PROTO((int cursorindex, unsigned long fg, unsigned long bg)); +extern char *SysErrorMsg PROTO((int n)); +extern char *strindex PROTO((char *s1, char *s2)); +extern int XStrCmp PROTO((char *s1, char *s2)); +extern int xerror PROTO((Display *d, XErrorEvent *ev)); +extern int xioerror PROTO((Display *dpy)); +extern void Bell PROTO((void)); +extern void Changename PROTO((char *name)); +extern void Changetitle PROTO((char *name)); +extern void Cleanup PROTO((int code)); +/* extern void Error NOPROTO((int i)); */ +extern void HandleBellPropertyChange PROTO_XT_EV_HANDLER_ARGS; +extern void HandleEightBitKeyPressed PROTO_XT_ACTIONS_ARGS; +extern void HandleEnterWindow PROTO_XT_EV_HANDLER_ARGS; +extern void HandleFocusChange NOPROTO((Widget w, XtPointer eventdata, XEvent *event, Boolean* cont)); +extern void HandleKeyPressed PROTO_XT_ACTIONS_ARGS; +extern void HandleLeaveWindow PROTO_XT_EV_HANDLER_ARGS; +extern void HandleStringEvent PROTO_XT_ACTIONS_ARGS; +extern void Panic PROTO((char *s, int a)); +extern void Redraw PROTO((void)); +extern void ReverseOldColors PROTO((void)); +extern void Setenv PROTO((char *var, char *value)); +extern void SysError PROTO((int i)); +extern void VisualBell PROTO((void)); +extern void creat_as PROTO((int uid, int gid, char *pathname, int mode)); +extern void do_osc PROTO((int (*func)(void))); +extern void end_tek_mode PROTO((void)); +extern void end_vt_mode PROTO((void)); +extern void hide_tek_window PROTO((void)); +extern void hide_vt_window PROTO((void)); +extern void set_tek_visibility PROTO((Boolean on)); +extern void set_vt_visibility PROTO((Boolean on)); +extern void switch_modes PROTO((Bool tovt)); +extern void xevents PROTO((void)); +extern void xt_error PROTO((String message)); + +#ifdef ALLOWLOGGING +extern void StartLog PROTO((TScreen *screen)); +extern void CloseLog PROTO((TScreen *screen)); +extern void FlushLog PROTO((TScreen *screen)); +#endif + +/* screen.c */ +extern Bool non_blank_line PROTO((ScrnBuf sb, int row, int col, int len)); +extern ScrnBuf Allocate PROTO((int nrow, int ncol, Char **addr)); +extern int ScreenResize PROTO((TScreen *screen, int width, int height, unsigned *flags)); +extern int ScrnGetAttributes PROTO((TScreen *screen, int row, int col, Char *str, int length)); +extern void ClearBufRows PROTO((TScreen *screen, int first, int last)); +extern void ScreenWrite PROTO((TScreen *screen, char *str, unsigned flags, unsigned cur_fg, unsigned cur_bg, int length)); +extern void ScrnDeleteChar PROTO((ScrnBuf sb, int row, int size, int n, int col)); +extern void ScrnDeleteLine PROTO((ScrnBuf sb, int n, int last, int size, int where)); +extern void ScrnInsertChar PROTO((ScrnBuf sb, int row, int size, int col, int n)); +extern void ScrnInsertLine PROTO((ScrnBuf sb, int last, int where, int n, int size)); +extern void ScrnRefresh PROTO((TScreen *screen, int toprow, int leftcol, int nrows, int ncols, Boolean force)); +extern void ScrnSetAttributes PROTO((TScreen *screen, int row, int col, unsigned mask, unsigned value, int length)); + +/* scrollbar.c */ +extern void DoResizeScreen PROTO((XtermWidget xw)); +extern void HandleScrollBack PROTO_XT_ACTIONS_ARGS; +extern void HandleScrollForward PROTO_XT_ACTIONS_ARGS; +extern void ResizeScrollBar PROTO((Widget scrollWidget, int x, int y, unsigned height)); +extern void ScrollBarDrawThumb PROTO((Widget scrollWidget)); +extern void ScrollBarOff PROTO((TScreen *screen)); +extern void ScrollBarOn PROTO((XtermWidget xw, int init, int doalloc)); +extern void ScrollBarReverseVideo PROTO((Widget scrollWidget)); +extern void WindowScroll PROTO((TScreen *screen, int top)); + +/* tabs.c */ +extern int TabNext PROTO((Tabs tabs, int col)); +extern void TabClear PROTO((Tabs tabs, int col)); +extern void TabReset PROTO((Tabs tabs)); +extern void TabSet PROTO((Tabs tabs, int col)); +extern void TabZonk PROTO((Tabs tabs)); + +/* util.c */ +extern int AddToRefresh PROTO((TScreen *screen)); +extern int HandleExposure PROTO((TScreen *screen, XEvent *event)); +extern void ChangeColors PROTO((XtermWidget term, ScrnColors *pNew)); +extern void ClearAbove PROTO((TScreen *screen)); +extern void ClearBelow PROTO((TScreen *screen)); +extern void ClearLeft PROTO((TScreen *screen)); +extern void ClearLine PROTO((TScreen *screen)); +extern void ClearRight PROTO((TScreen *screen)); +extern void ClearScreen PROTO((TScreen *screen)); +extern void DeleteChar PROTO((TScreen *screen, int n)); +extern void DeleteLine PROTO((TScreen *screen, int n)); +extern void FlushScroll PROTO((TScreen *screen)); +extern void GetColors PROTO((XtermWidget term, ScrnColors *pColors)); +extern void InsertChar PROTO((TScreen *screen, int n)); +extern void InsertLine PROTO((TScreen *screen, int n)); +extern void RevScroll PROTO((TScreen *screen, int amount)); +extern void ReverseVideo PROTO((XtermWidget termw)); +extern void Scroll PROTO((TScreen *screen, int amount)); +extern void recolor_cursor PROTO((Cursor cursor, unsigned long fg, unsigned long bg)); +extern void scrolling_copy_area PROTO((TScreen *screen, int firstline, int nlines, int amount)); + +#endif /* included_xterm_h */