$NetBSD: patch-ex__subr_c,v 1.1 2012/12/28 03:03:08 dholland Exp $ - use standard headers - avoid sloppy code that subtracts 1 from the base address of a char[] (which isn't valid) (although this could be tidied further) - avoid implicit int - silence warnings about && and || precedence - declare void functions void - use const for string constants - use functions properly - fix up function pointer casting mess - silence warnings about unused arguments - teach it about dead functions --- ex_subr.c~ 2012-12-27 21:58:42.000000000 +0000 +++ ex_subr.c @@ -79,27 +79,33 @@ static char sccsid[] = "@(#)ex_subr.c 1. /* from ex_subr.c 7.10.1 (2.11BSD) 1996/3/22 */ +#include + #include "ex.h" #include "ex_re.h" #include "ex_tty.h" #include "ex_vis.h" +static int qcolumn __P((char *, char *)); + /* * Random routines, in alphabetical order. */ +int any(c, s) int c; - register char *s; + register const char *s; { register int x; - while (x = *s++) + while ((x = *s++) != 0) if (x == c) return (1); return (0); } +int backtab(i) register int i; { @@ -114,6 +120,7 @@ backtab(i) return (i); } +void change() { @@ -128,6 +135,7 @@ change() * characters through position cp of the * current line. */ +int column(cp) register char *cp; { @@ -141,6 +149,7 @@ column(cp) * Ignore a comment to the end of the line. * This routine eats the trailing newline so don't call newline(). */ +void comment() { register int c; @@ -152,6 +161,7 @@ comment() ungetchar(c); } +void Copy(to, from, size) register char *from, *to; register int size; @@ -163,6 +173,7 @@ Copy(to, from, size) while (--size > 0); } +void copyw(to, from, size) register line *from, *to; register int size; @@ -174,6 +185,7 @@ copyw(to, from, size) while (--size > 0); } +void copywR(to, from, size) register line *from, *to; register int size; @@ -183,6 +195,7 @@ copywR(to, from, size) to[size] = from[size]; } +int ctlof(c) int c; { @@ -190,6 +203,7 @@ ctlof(c) return (c == DELETE ? '?' : c | ('A' - 1)); } +void dingdong() { @@ -199,6 +213,7 @@ dingdong() putch('\207'); } +int fixindent(indent) int indent; { @@ -215,8 +230,9 @@ fixindent(indent) return (i); } +void filioerr(cp) - char *cp; + const char *cp; { register int oerrno = errno; @@ -238,6 +254,7 @@ genindent(indent) return (cp); } +void getDOT() { @@ -257,6 +274,7 @@ getmark(c) return (0); } +int getn(cp) register char *cp; { @@ -269,6 +287,7 @@ getn(cp) return (i); } +void ignnEOF() { register int c = getchar(); @@ -279,6 +298,7 @@ ignnEOF() comment(); } +int is_white(c) int c; { @@ -286,11 +306,12 @@ is_white(c) #ifndef BIT8 return (c == ' ' || c == '\t'); #else - return (isspace(c) && c != '\n' && c != '\r' + return (isspace((unsigned char)c) && c != '\n' && c != '\r' && c != '\f' && c != '\v'); #endif } +int junk(c) register int c; { @@ -315,12 +336,14 @@ junk(c) } } +void killed() { killcnt(addr2 - addr1 + 1); } +void killcnt(cnt) register int cnt; { @@ -343,6 +366,7 @@ killcnt(cnt) putNFL(); } +int lineno(a) line *a; { @@ -350,24 +374,28 @@ lineno(a) return (a - zero); } +int lineDOL() { return (lineno(dol)); } +int lineDOT() { return (lineno(dot)); } +void markDOT() { markpr(dot); } +void markpr(which) line *which; { @@ -379,6 +407,7 @@ markpr(which) } } +int markreg(c) register int c; { @@ -397,12 +426,13 @@ markreg(c) * All others map to themselves. */ char * -mesg(str) - register char *str; +mesg(arg) + const char *arg; { + register char *str; register char *cp; - str = strcpy(genbuf, str); + str = strcpy(genbuf, arg); for (cp = str; *cp; cp++) switch (*cp) { @@ -422,12 +452,13 @@ mesg(str) return (str); } +static void merror1(seekpt) #ifdef VMUNIX - char *seekpt; + const char *seekpt; #else # ifdef lint - char *seekpt; + const char *seekpt; # else int seekpt; # endif @@ -444,20 +475,21 @@ merror1(seekpt) } /*VARARGS2*/ +void #ifndef __STDC__ merror(seekpt, i) #ifdef VMUNIX - char *seekpt; + const char *seekpt; #else # ifdef lint - char *seekpt; + const char *seekpt; # else int seekpt; # endif #endif int i; #else -vmerror(char *seekpt, va_list ap) +vmerror(const char *seekpt, va_list ap) #endif { @@ -482,7 +514,8 @@ vmerror(char *seekpt, va_list ap) } #ifdef __STDC__ -merror(char *cp, ...) +void +merror(const char *cp, ...) { va_list ap; @@ -494,6 +527,7 @@ merror(char *cp, ...) } #endif +int morelines() { #ifdef _SC_PAGESIZE @@ -517,6 +551,7 @@ morelines() #endif /* !_SC_PAGESIZE */ } +void nonzero() { @@ -527,6 +562,7 @@ nonzero() } } +int notable(i) int i; { @@ -534,7 +570,7 @@ notable(i) return (hush == 0 && !inglobal && i > value(REPORT)); } - +void notempty() { @@ -542,7 +578,7 @@ notempty() error(catgets(catd, 1, 173, "No lines@in the buffer")); } - +void netchHAD(cnt) int cnt; { @@ -550,10 +586,11 @@ netchHAD(cnt) netchange(lineDOL() - cnt); } +void netchange(i) register int i; { - register char *cp; + register const char *cp; if (i > 0) notesgn = cp = catgets(catd, 1, 174, "more "); @@ -575,10 +612,11 @@ netchange(i) * Print an escape sequence corresponding to c. */ #ifdef BIT8 +int printof(c) int c; { - char *nums = "01234567"; + const char *nums = "01234567"; int d; if (c < 040 || c == DELETE) { @@ -597,6 +635,7 @@ printof(c) } #endif +void putmark(addr) line *addr; { @@ -604,6 +643,7 @@ putmark(addr) putmk1(addr, putline()); } +void putmk1(addr, n) register line *addr; int n; @@ -620,7 +660,7 @@ putmk1(addr, n) *addr = n | oldglobmk; } -char * +const char * plural(i) long i; { @@ -629,14 +669,15 @@ plural(i) : catgets(catd, 1, 179, "s")); } -int qcount(); +static int qcount(int c); short vcntcol; +static int qcolumn(lim, gp) register char *lim, *gp; { register int x = 0; - int (*OO)(); + int (*OO)(int); OO = Outchar; Outchar = qcount; @@ -653,18 +694,33 @@ qcolumn(lim, gp) return (vcntcol); } +/* + * Like qcolumn() but doesn't require subtracting 1 from the first + * argument before calling it. + */ int +qcolumn2(char *lim, char *gp) +{ + if (lim != NULL) { + lim--; + } + return qcolumn(lim, gp); +} + +static int qcount(c) int c; { if (c == '\t') { vcntcol += value(TABSTOP) - vcntcol % value(TABSTOP); - return; + return c; } vcntcol++; + return c; } +void reverse(a1, a2) register line *a1, *a2; { @@ -679,6 +735,7 @@ reverse(a1, a2) } } +void save(a1, a2) line *a1; register line *a2; @@ -714,24 +771,28 @@ save(a1, a2) #endif } +void save12() { save(addr1, addr2); } +void saveall() { save(one, dol); } +int span() { return (addr2 - addr1 + 1); } +void synced() { @@ -740,7 +801,7 @@ synced() xchng = 0; } - +int skipwh() { register int wh; @@ -754,17 +815,18 @@ skipwh() } /*VARARGS2*/ +void #ifndef __STDC__ smerror(seekpt, cp) #ifdef lint - char *seekpt; + const char *seekpt; #else int seekpt; #endif - char *cp; + const char *cp; { #else -vsmerror(char *seekpt, va_list ap) +vsmerror(const char *seekpt, va_list ap) { #endif @@ -786,7 +848,8 @@ vsmerror(char *seekpt, va_list ap) } #ifdef __STDC__ -smerror(char *seekpt, ...) +void +smerror(const char *seekpt, ...) { va_list ap; @@ -808,13 +871,25 @@ strend(cp) return (cp); } +const char * +strendk(cp) + register const char *cp; +{ + + while (*cp) + cp++; + return (cp); +} + +void strcLIN(dp) - char *dp; + const char *dp; { CP(linebuf, dp); } +void syserror() { @@ -828,6 +903,7 @@ syserror() * hitting a tab, where tabs are set every ts columns. Work right for * the case where col > TCOLUMNS, even if ts does not divide TCOLUMNS. */ +int tabcol(col, ts) int col, ts; { @@ -847,10 +923,10 @@ vfindcol(i) int i; { register char *cp; - register int (*OO)() = Outchar; + register int (*OO)(int) = Outchar; Outchar = qcount; - ignore(qcolumn(linebuf - 1, NOSTR)); + ignore(qcolumn2(linebuf, NOSTR)); for (cp = linebuf; *cp && vcntcol < i; cp++) putchar(*cp); if (cp != linebuf) @@ -880,6 +956,7 @@ vpastwh(cp) return (cp); } +int whitecnt(cp) register char *cp; { @@ -911,13 +988,14 @@ Ignore(a) } Ignorf(a) - int (*a)(); + int (*a)(int); { a = a; } #endif +void markit(addr) line *addr; { @@ -937,10 +1015,12 @@ markit(addr) */ int _ovno; woid -onemt(signum) +onemt(int signum) { int oovno; + (void)signum; + #ifndef POSIX_1 signal(SIGEMT, onemt); #endif @@ -963,8 +1043,9 @@ onemt(signum) * are not removed. */ woid -onhup(signum) +onhup(int signum) { + (void)signum; /* * USG tty driver can send multiple HUP's!! @@ -993,9 +1074,11 @@ onhup(signum) * suppressed in visual mode). */ woid -onintr(signum) +onintr(int signum) { + (void)signum; + #ifndef POSIX_1 #ifndef CBREAK signal(SIGINT, onintr); @@ -1022,6 +1105,7 @@ onintr(signum) * In some critical sections we turn interrupts off, * but not very often. */ +void setrupt() { @@ -1040,6 +1124,7 @@ setrupt() } } +int preserve() { @@ -1063,6 +1148,8 @@ preserve() } #ifndef V6 +dead +void exitex(i) int i; { @@ -1081,7 +1168,7 @@ exitex(i) * We have just gotten a susp. Suspend and prepare to resume. */ woid -onsusp(signum) +onsusp(int signum) { ttymode f; /* int omask; */ @@ -1092,6 +1179,8 @@ onsusp(signum) sigset_t set; #endif + (void)signum; + f = setty(normf); vnfl(); putpad(TE);