summaryrefslogtreecommitdiff
path: root/editors/mflteco/patches/patch-ab
blob: be2306685b5bcf02719680b1a37757207070a63a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
$NetBSD: patch-ab,v 1.2 2012/12/27 06:13:20 dholland Exp $

- use standard headers
- handle EOF from getc() correctly
- move function declarations to the header file
- use some static
- declare void functions void
- use some c89
- don't index arrays with (signed) char
- call execl() properly

--- te_exec2.c.orig	1993-08-05 22:29:34.000000000 +0000
+++ te_exec2.c
@@ -19,6 +19,7 @@
 /* add directory command, header file display  03/26/92  14.59 */
 
 #include "te_defs.h"
+#include <stdlib.h>
 #include <sys/wait.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -35,21 +36,26 @@ struct outfiledata po_file, so_file;		/*
 struct outfiledata *outfile = &po_file;		/* pointer to currently active output file structure */
 FILE *eisw;									/* indirect command file pointer */
 int second_buff = 0;						/* variable for which buffer is selected */
-VOID init_wd();
-VOID update_header();
+
+static int do_e_slash(void);						/* routine to handle "change directory" command */
+static int read_stream(FILE *file, int *ff_found, struct qp *rbuff,
+		       int *nchars, int endsw, int crlf_sw, int ff_sw);
+static VOID write_stream(FILE *file, struct qp *wbuff, int nchars,
+			 int crlf_sw);
+
+
 
 /* process E commands */
 
-do_e()
+VOID do_e(void)
 {
-	char c;							/* temps */
+	int c;							/* temps */
 	int old_var;
 	FILE *t_eisw;
 	struct stat statbuff;					/* buffer to fetch file stat (mode) of open file for EB */
 	int t_access;							/* result from provisional "open" */
-	int do_e_slash();						/* routine to handle "change directory" command */
 
-	switch (mapch_l[getcmdc(trace_sw)])		/* read next character and dispatch */
+	switch (mapch_l[(unsigned char)getcmdc(trace_sw)])		/* read next character and dispatch */
 	{	
 
 /* numeric values */
@@ -386,7 +392,7 @@ int do_eq()
 		t = vfork();							/* fork a new process */
 		if (t == 0)								/* if this is the child */
 		{
-			execl(pname, pname, SHELL_OPT, &sysbuf.f->ch[0], 0);		/* call the named Unix routine */
+			execl(pname, pname, SHELL_OPT, &sysbuf.f->ch[0], (void *)NULL);		/* call the named Unix routine */
 			printf("Error in 'execl'\n");		/* normally shouldn't get here */
 			exit(1);
 		}
@@ -493,7 +499,7 @@ int do_eq1(shell)
 		if (ll == 0)					/* if there are no characters to send */
 		{
 			close(pipe_in[1]);					/* close exec'd process' new "stdin" so "read" will find eof */
-			execl(shell, shell, SHELL_OPT, &sysbuf.f->ch[0], 0);		/* execute specified routine */
+			execl(shell, shell, SHELL_OPT, &sysbuf.f->ch[0], (void *)NULL);		/* execute specified routine */
 			fputs("execl failed\n", stderr);
 			exit(1);
 		}				/* end "orig m,nEQ command had zero range" */
@@ -520,7 +526,7 @@ int do_eq1(shell)
 			else							/* this process is the grandchild */
 			{
 				close(pipe_in[1]);			/* close "input" for writing */
-				execl(shell, shell, SHELL_OPT, &sysbuf.f->ch[0], 0);		/* execute specified routine */
+				execl(shell, shell, SHELL_OPT, &sysbuf.f->ch[0], (void *)NULL);		/* execute specified routine */
 				fputs("execl failed\n", stderr);
 				exit(1);
 			}				/* end "this is the grandchild" */
@@ -559,7 +565,7 @@ int do_en()
 }
 /* routine to handle "change directory" command */
 
-int do_e_slash()
+static int do_e_slash(void)
 {
 	int rv = -1;						/* return value */
 	int err_code = E_DIR;
@@ -609,7 +615,7 @@ int do_glob(gbuff, sbuff)
 {
 	char glob_cmd[CELLSIZE+5];			/* "glob filespec" command string */
 	int t;
-	char c;
+	int c;
 	int glob_pipe[2];					/* pipe to forked shell for expanding filenames */
 	struct qp glob_ptr;					/* pointer for loading result buffer */
 	FILE *xx_out;						/* stream for reading chars from pipe */
@@ -668,7 +674,7 @@ int do_glob(gbuff, sbuff)
 		close(glob_pipe[0]);					/* child won't read */
 		dup2(glob_pipe[1], fileno(stdout));		/* substitute pipe for standard out */
 		close(glob_pipe[1]);					/* don't need that anymore */
-		execl("/bin/csh", "csh", "-fc", glob_cmd, 0);		/* execute the "glob" */
+		execl("/bin/csh", "csh", "-fc", glob_cmd, (void *)NULL);		/* execute the "glob" */
 		fputs("execl failed\n", stderr);
 		exit(1);
 	}
@@ -676,7 +682,7 @@ int do_glob(gbuff, sbuff)
 
 /* routine to get next file spec from "EN" list into filespec buffer */
 
-do_en_next()
+VOID do_en_next(void)
 {
 	char c;
 
@@ -778,7 +784,7 @@ int read_filename(flag, func)
 
 /* fetch or set variable */
 
-set_var(extend, arg)
+VOID set_var(extend, arg)
 	int extend;			/* nonzero if arg is 16 bits to be sign extended */
 	int *arg;			/* argument is pointer to variable */
 {
@@ -820,12 +826,12 @@ int read_file(rbuff, nchars, endsw)
 /* address of a switch to set if read ended with a FF, crlf_sw is lf->crlf	*/
 /* conversion, ff_sw indicates whether to stop on a form feed.				*/
 
-int read_stream(file, ff_found, rbuff, nchars, endsw, crlf_sw, ff_sw)
+static int read_stream(file, ff_found, rbuff, nchars, endsw, crlf_sw, ff_sw)
 	FILE *file;
 	struct qp *rbuff;
 	int *ff_found, *nchars, endsw, crlf_sw, ff_sw;
 {
-	char chr;
+	int chr;
 	int crflag;
 	register struct buffcell *p;
 	register int c;
@@ -874,7 +880,7 @@ int read_stream(file, ff_found, rbuff, n
 /* arguments are qp to start of text, number of characters,	*/
 /* and an "append FF" switch								*/
 
-write_file(wbuff, nchars, ffsw)
+VOID write_file(wbuff, nchars, ffsw)
 	struct qp *wbuff;
 	int nchars, ffsw;
 {
@@ -889,7 +895,7 @@ write_file(wbuff, nchars, ffsw)
 /* Unix processes.  Arguments wbuff, nchars as above; file	*/
 /* is stream pointer, crlf_sw zero converts CRLF to LF		*/
 
-write_stream(file, wbuff, nchars, crlf_sw)
+static VOID write_stream(file, wbuff, nchars, crlf_sw)
 	FILE *file;
 	struct qp *wbuff;
 	int nchars, crlf_sw;
@@ -919,7 +925,7 @@ write_stream(file, wbuff, nchars, crlf_s
 
 /* routine to kill output file: argument is pointer to an output file structure */
 
-kill_output(outptr)
+VOID kill_output(outptr)
 	struct outfiledata *outptr;
 {
 	if (outptr->fd)
@@ -934,7 +940,7 @@ kill_output(outptr)
 
 static char panic_name[16] = "TECO_SAVED.tmp";			/* name of file created to save buffer */
 
-panic()
+VOID panic(void)
 {
 	int i;						/* counter of buffers to save */
 	int t_access;				/* file descriptor returned by open() */
@@ -959,13 +965,13 @@ panic()
 }
 /* do "F" commands */
 
-do_f()
+VOID do_f(void)
 {
 	struct buffcell *delete_p;
 	int temp_dot;
 	VOID do_fm();
 
-	switch (mapch_l[getcmdc(trace_sw)])		 /* read next character and dispatch */
+	switch (mapch_l[(unsigned char)getcmdc(trace_sw)])		 /* read next character and dispatch */
 	{
 		case '<':			/* back to beginning of current iteration */
 			if (cptr.flag & F_ITER)		/* if in iteration */
@@ -1138,7 +1144,7 @@ do_f()
 /* pop iteration: if arg nonzero, exit unconditionally */
 /* else check exit conditions and exit or reiterate */
 
-pop_iteration(arg)
+VOID pop_iteration(arg)
 	int arg;
 {
 	if (!arg && (!cptr.il->dflag || (--(cptr.il->count) > 0)) )		/* if reiteration */
@@ -1157,7 +1163,7 @@ pop_iteration(arg)
 
 /* find end of iteration - read over arbitrary <> and one > */
 
-find_enditer()
+VOID find_enditer(void)
 {
 	register int icnt;
 
@@ -1172,7 +1178,7 @@ find_enditer()
 
 
 /* find end of conditional */
-char find_endcond(arg)
+VOID find_endcond(arg)
 	char arg;
 {
 	register int icnt;