https://bugs.gentoo.org/729254 --- teco-orig/te_chario.c +++ teco/te_chario.c @@ -24,6 +24,8 @@ #define SIGINTMASK 2 #endif +void crlf(), type_char(char c); + int lf_sw; /* nonzero: make up a LF following an entered CR */ int ttyflags; /* flags for (stdin) file descriptor */ #ifndef _POSIX_SOURCE @@ -44,6 +46,7 @@ /* operation; normal mode is none of the above. TTY_OFF and TTY_ON do this */ /* absolutely; TTY_SUSP and TTY_RESUME use saved signal status. */ +void setup_tty(arg) int arg; { @@ -213,6 +216,7 @@ #ifdef _POSIX_SOURCE sigset_t oldmask; +void block_inter(func) int func; { @@ -313,6 +317,7 @@ /* type a crlf */ +void crlf() { type_char(CR); @@ -340,6 +345,7 @@ /* routine to type one character */ +void type_char(c) char c; { --- teco-orig/te_defs.h +++ teco/te_defs.h @@ -320,7 +320,7 @@ extern char mapch[], mapch_l[]; /* char mapping tables */ extern unsigned char spec_chars[]; /* special character table */ -extern char skipto(), find_endcond(), getcmdc(), getcmdc0(); /* routines that return chars */ +extern char skipto(), getcmdc(), getcmdc0(); /* routines that return chars */ extern FILE *eisw; /* indirect command file pointer */ extern FILE *fopen(); --- teco-orig/te_exec0.c +++ teco/te_exec0.c @@ -8,6 +8,7 @@ #include #include +void exec_cmdstr() { char c; --- teco-orig/te_exec1.c +++ teco/te_exec1.c @@ -6,6 +6,7 @@ /* version for multiple buffers 04/13/89 15.55 */ #include "te_defs.h" +void exec_cmds1() { char command; /* command character */ --- teco-orig/te_exec2.c +++ teco/te_exec2.c @@ -12,6 +12,9 @@ #include #include +void do_en_next(), set_var(), write_file(), write_stream(); +void kill_output(), pop_iteration(), find_enditer(), find_endcond(); + struct qh oldcstring; /* hold command string during ei */ /* file stuff for input/output files */ @@ -26,6 +29,7 @@ /* process E commands */ +void do_e() { char c; /* temps */ @@ -567,6 +571,7 @@ /* routine to get next file spec from "EN" list into filespec buffer */ +void do_en_next() { char c; @@ -669,6 +674,7 @@ /* fetch or set variable */ +void set_var(arg) int *arg; /* argument is pointer to variable */ { @@ -764,6 +770,7 @@ /* arguments are qp to start of text, number of characters, */ /* and an "append FF" switch */ +void write_file(wbuff, nchars, ffsw) struct qp *wbuff; int nchars, ffsw; @@ -779,6 +786,7 @@ /* Unix processes. Arguments wbuff, nchars as above; file */ /* is stream pointer, crlf_sw zero converts CRLF to LF */ +void write_stream(file, wbuff, nchars, crlf_sw) FILE *file; struct qp *wbuff; @@ -809,6 +817,7 @@ /* routine to kill output file: argument is pointer to an output file structure */ +void kill_output(outptr) struct outfiledata *outptr; { @@ -825,6 +834,7 @@ char panic_name[] = "TECO_SAVED.tmp"; /* name of file created to save buffer */ +void panic() { if (!outfile->fd && pbuff->z) outfile->fd = fopen(panic_name, "w"); /* if buffer nonempty and no file open, make one */ @@ -838,6 +848,7 @@ /* do "F" commands */ +void do_f() { struct buffcell *delete_p; @@ -954,6 +965,7 @@ /* pop iteration: if arg nonzero, exit unconditionally */ /* else check exit conditions and exit or reiterate */ +void pop_iteration(arg) int arg; { @@ -973,6 +985,7 @@ /* find end of iteration - read over arbitrary <> and one > */ +void find_enditer() { register int icnt; @@ -988,7 +1001,8 @@ /* find end of conditional */ -char find_endcond(arg) +void +find_endcond(arg) char arg; { register int icnt; --- teco-orig/te_main.c +++ teco/te_main.c @@ -44,6 +44,10 @@ #include "te_defs.h" +void cleanup(), read_startup(), get_term_par(); +void print_string(int arg); +void save_args(int argc, char *argv[], struct qh *q); + main(argc, argv) int argc; /* arg count */ char *argv[]; /* array of string pointers */ @@ -103,6 +107,7 @@ /* reset screen state, keyboard state; remove open output files */ +void cleanup() { window(WIN_OFF); /* restore screen */ @@ -115,6 +120,7 @@ /* print string for error message */ /* argument is subscript of a qreg qh, prints text from that buffer */ +void print_string(arg) int arg; { @@ -137,6 +143,7 @@ /* copy invocation command line to a text buffer */ +void save_args(argc, argv, q) int argc; char *argv[]; @@ -171,6 +178,7 @@ char startup_name[] = "/.tecorc"; /* name of startup file */ +void read_startup() { char *hp, *getenv(); @@ -192,6 +200,7 @@ /* routine to get terminal height and width from termcap */ +void get_term_par() { char tbuff[1024]; /* termcap buffer */ --- teco-orig/te_rdcmd.c +++ teco/te_rdcmd.c @@ -6,6 +6,7 @@ /* version for multiple buffers 04/13/89 10.22 */ #include "te_defs.h" +void retype_cmdstr(char c); int ccount; /* count of chars read in */ int read_cmdstr() @@ -227,6 +228,7 @@ /* retype command string: entirely (arg = '*') or most recent line (arg = ' ') */ +void retype_cmdstr(c) char c; { --- teco-orig/te_subs.c +++ teco/te_subs.c @@ -17,6 +17,7 @@ /* n is the returned number of chars moved */ /* max is the maximum number of chars to move */ +void movenchars(from, to, n) struct qp *from, *to; /* address of buffer pointers */ register int n; /* number of characters */ @@ -69,6 +70,7 @@ } } +void moveuntil(from, to, c, n, max, trace) struct qp *from, *to; /* address of buffer pointers */ register char c; /* match char that ends move */ @@ -249,6 +251,7 @@ /* leaves bb pointing to end of that text */ /* insert2() copies rest of buffer */ +void insert1() { int nchars; /* number of chars in cell */ @@ -269,6 +272,7 @@ +void insert2(count) /* count is the number of chars added */ int count; { @@ -289,6 +293,7 @@ /* subroutine to delete n characters starting at dot */ /* argument is number of characters */ +void delete1(nchars) int nchars; { @@ -314,6 +319,7 @@ struct qh obuff; /* tag string buffer */ +void do_o() { int i, j; /* i used as start of tag, j as end */ @@ -460,6 +466,7 @@ /* find number of characters to next matching (, [, or { (like '%' in vi) */ +void do_ctlp() { int i, l; --- teco-orig/te_utils.c +++ teco/te_utils.c @@ -37,6 +37,7 @@ /* free a list of buffcells */ +void free_blist(p) struct buffcell *p; { @@ -51,6 +52,7 @@ } /* free a list of buffcells to the "delayed free" list */ +void dly_free_blist(p) struct buffcell *p; { @@ -92,6 +94,7 @@ /* free a list of cells */ +void free_dlist(p) struct qp *p; { @@ -107,6 +110,7 @@ /* build a buffer: called with address of a qh */ /* if no buffer there, get a cell and link it in */ +void make_buffer(p) struct qh *p; { @@ -178,6 +182,7 @@ /* set up a pointer to a particular text buffer position */ +void set_pointer(pos, ptr) /* first arg is position, 2nd is addr of pointer */ int pos; struct qp *ptr; --- teco-orig/te_window.c +++ teco/te_window.c @@ -21,6 +21,10 @@ #define MAX 0x7fffffff /* maximum positive integer, for "last modified" location */ #define W_MARK 0200 /* "this loc is special" in screen image */ +void window(), window0(), window1_both(), window1(), window1_abs(); +void window1_inc(), window1_after(), w_rmcurs(), window2(), vtm(); +void w_makecurs(), w_type(), w_init(), w_separators(), w_move(); +void w_scroll(), w_ebol(); /* image of current window */ @@ -74,6 +78,7 @@ /* routine to perform simple scope operations */ /* (an attempt to concentrate VT-100 specific things in one place) */ +void vt(func) int func; { @@ -132,6 +137,7 @@ int win_max[] = { 4, W_MAX_H, W_MAX_V, 1, MAX, 12, -1, 20, 20, -1, -1 } ; /* max values */ int win_data[] = { 4, 132, 24, 0, 0, 0, 0, 0, 0, 0, 0 } ; /* window parameters */ +void do_window(ref_flag) int ref_flag; /* nonzero forces "refresh" operation */ { @@ -196,6 +202,7 @@ /* routine to update screen size with numbers obtained from environment */ /* (called by main program's initialization) */ +void set_term_par(lines, cols) int lines, cols; { @@ -215,6 +222,7 @@ /* WIN_LINE: does WIN_REFR unless that wouldn't do anything, in which case */ /* it does effective 1EV output */ +void window(arg) int arg; { @@ -288,6 +296,7 @@ /* used for ev, es, and or as immediate commands */ /* starting char position is in w_p1; argument is number of lines */ +void window0(num) int num; { @@ -364,6 +373,7 @@ struct bh *old_pbuff; +void window1_both() { pw0 = &win_1; @@ -396,6 +406,7 @@ /* if scroll mode is enabled, the VT100 screen is split and only the upper part */ /* is used by this routine; else the whole screen is used. */ +void window1() { int i, j, m, lflag; @@ -500,6 +511,7 @@ /* routine to redraw screen absolutely */ +void window1_abs() { int i, j; @@ -531,6 +543,7 @@ /* redraw screen incrementally */ +void window1_inc(wd) int wd; /* argument is earliest change */ { @@ -559,6 +572,7 @@ /* routine to move window downwards: scroll up or redraw as appropriate */ +void window1_after() { int i, lflag; @@ -591,6 +605,7 @@ /* routine to remove the existing cursor */ +void w_rmcurs() { register struct w_data *pw = pw0; @@ -609,6 +624,7 @@ /* called with w_p1 at starting char, curr_y, curr_x at starting coordinate */ /* rewrites to end of screen if arg = 0, or only until line with cursor if arg = 1 */ +void window2(arg) int arg; { @@ -794,6 +810,7 @@ /* routine to move cursor to current location and then call vt */ +void vtm(arg) int arg; { @@ -807,6 +824,7 @@ /* routine to set reverse video and save cursor location */ /* first argument is char at cursor, 2nd is value for curs_crflag */ +void w_makecurs(wc, crflag) char wc; short crflag; @@ -851,6 +869,7 @@ /* routine to type one character: arguments are char and a */ /* "mark" bit. If mark is set, the char is always retyped */ +void w_type(c, m) char c; int m; @@ -875,6 +894,7 @@ /* initialize display image */ +void w_init() { short i, j; @@ -907,6 +927,7 @@ /* write separator lines between windows on screen */ +void w_separators() { int i; @@ -929,6 +950,7 @@ /* put character followed by appropriate number of nulls for "other control function" */ /* if argument is 0, output filler chars only */ +void putchar_d(c) char c; { @@ -942,6 +964,7 @@ /* put out appropriate number of filler chars for display function that scrolls (LF, etc.) */ +void scroll_dly() { int i; @@ -952,6 +975,7 @@ /* move terminal cursor to stated y, x position */ /* uses incremental moves or absolute cursor position, whichever is shorter */ +void w_move(y, x) short y, x; { @@ -993,6 +1017,7 @@ /* scroll screen: argument is count: + up, - down */ +void w_scroll(count) int count; { @@ -1025,6 +1050,7 @@ /* clear line to left of curr_x */ /* if some chars nonblank, does erase from start of line */ +void w_ebol() { short i, j;