a3dfc1076f
gcc45. - avoid implicit int, declare void functions void - return values from non-void functions - put most external declarations properly in header files - use some static and const - fix up a big mess with function pointer casting - use standard includes, don't provide own decls of standard functions - use types matching libc when providing own malloc, printf, and putchar - use <ctype.h> functions correctly - silence assorted compiler warnings - fix some bugs exposed by compiler warnings - don't intentionally exercise signed overflow - remove some unused items - add patch comments to other patch (patch-aa) As this includes several fixes and removes some undefined behavior on a commonly reachable code path, bump PKGREVISION.
258 lines
5.2 KiB
Text
258 lines
5.2 KiB
Text
$NetBSD: patch-ex__vget_c,v 1.1 2012/12/28 03:03:09 dholland Exp $
|
|
|
|
- declare local functions static
|
|
- declare void functions void
|
|
- avoid implicit int
|
|
- use const for string constants
|
|
- silence warnings about assignments in conditionals
|
|
- silence warnings about && and || precedence
|
|
- silence warnings about unused arguments
|
|
|
|
--- ex_vget.c~ 2012-12-27 21:58:42.000000000 +0000
|
|
+++ ex_vget.c
|
|
@@ -89,12 +89,13 @@ static char sccsid[] = "@(#)ex_vget.c 1.
|
|
* large changes which appears in the echo area.
|
|
*/
|
|
|
|
-int addto __P((cell *, char *));
|
|
-int fastpeekkey __P((void));
|
|
+static void addto __P((cell *, char *));
|
|
+static int fastpeekkey __P((void));
|
|
|
|
/*
|
|
* Return the key.
|
|
*/
|
|
+void
|
|
ungetkey(c)
|
|
int c; /* mjm: char --> int */
|
|
{
|
|
@@ -106,6 +107,7 @@ ungetkey(c)
|
|
/*
|
|
* Return a keystroke, but never a ^@.
|
|
*/
|
|
+int
|
|
getkey()
|
|
{
|
|
register int c; /* mjm: char --> int */
|
|
@@ -121,6 +123,7 @@ getkey()
|
|
/*
|
|
* Tell whether next keystroke would be a ^@.
|
|
*/
|
|
+int
|
|
peekbr()
|
|
{
|
|
|
|
@@ -139,13 +142,14 @@ int doingread = 0;
|
|
* from repeating commands with .), and finally new
|
|
* keystrokes.
|
|
*/
|
|
+int
|
|
getbr()
|
|
{
|
|
char ch;
|
|
register int c;
|
|
#ifdef UCVISUAL
|
|
register int d;
|
|
- register char *colp;
|
|
+ register const char *colp;
|
|
#endif
|
|
#ifdef BEEHIVE
|
|
int cnt;
|
|
@@ -248,7 +252,7 @@ again:
|
|
d = toupper(c);
|
|
else {
|
|
colp = "({)}!|^~'~";
|
|
- while (d = *colp++)
|
|
+ while ((d = *colp++) != 0)
|
|
if (d == c) {
|
|
d = *colp++;
|
|
break;
|
|
@@ -292,6 +296,7 @@ again:
|
|
* Get a key, but if a delete, quit or attention
|
|
* is typed return 0 so we will abort a partial command.
|
|
*/
|
|
+int
|
|
getesc()
|
|
{
|
|
register int c;
|
|
@@ -320,6 +325,7 @@ case_ATTN:
|
|
/*
|
|
* Peek at the next keystroke.
|
|
*/
|
|
+int
|
|
peekkey()
|
|
{
|
|
|
|
@@ -331,7 +337,8 @@ peekkey()
|
|
* Read a line from the echo area, with single character prompt c.
|
|
* A return value of 1 means the user blewit or blewit away.
|
|
*/
|
|
-readecho(c)
|
|
+int
|
|
+readecho(int c)
|
|
{
|
|
register char *sc = cursor;
|
|
register int (*OP)();
|
|
@@ -383,6 +390,7 @@ blewit:
|
|
* the purposes of repeat, so copy it from
|
|
* the working to the previous command buffer.
|
|
*/
|
|
+void
|
|
setLAST()
|
|
{
|
|
|
|
@@ -400,6 +408,7 @@ setLAST()
|
|
* If the insertion buffer oveflows, then destroy
|
|
* the repeatability of the insert.
|
|
*/
|
|
+void
|
|
addtext(cp)
|
|
char *cp;
|
|
{
|
|
@@ -415,6 +424,7 @@ addtext(cp)
|
|
lastcmd[0] = 0;
|
|
}
|
|
|
|
+void
|
|
setDEL()
|
|
{
|
|
|
|
@@ -424,6 +434,7 @@ setDEL()
|
|
/*
|
|
* Put text from cursor upto wcursor in BUF.
|
|
*/
|
|
+void
|
|
setBUF(BUF)
|
|
register cell *BUF;
|
|
{
|
|
@@ -437,6 +448,7 @@ setBUF(BUF)
|
|
*wp = c;
|
|
}
|
|
|
|
+static void
|
|
addto(buf, str)
|
|
register cell *buf;
|
|
register char *str;
|
|
@@ -467,12 +479,13 @@ addto(buf, str)
|
|
* to do this for open modes now; return and save for later
|
|
* notification in visual.
|
|
*/
|
|
+int
|
|
noteit(must)
|
|
bool must;
|
|
{
|
|
register int sdl = destline, sdc = destcol;
|
|
|
|
- if (notecnt < 2 || !must && state == VISUAL)
|
|
+ if (notecnt < 2 || (!must && state == VISUAL))
|
|
return (0);
|
|
splitw++;
|
|
if (WBOT == WECHO)
|
|
@@ -483,7 +496,7 @@ noteit(must)
|
|
putchar('s');
|
|
if (*notenam) {
|
|
printf(" %s", notenam);
|
|
- if (*(strend(notenam) - 1) != 'e')
|
|
+ if (*(strendk(notenam) - 1) != 'e')
|
|
putchar('e');
|
|
putchar('d');
|
|
}
|
|
@@ -502,7 +515,8 @@ noteit(must)
|
|
* Rrrrringgggggg.
|
|
* If possible, use flash (VB).
|
|
*/
|
|
-beep()
|
|
+void
|
|
+beep(void)
|
|
{
|
|
|
|
if (VB && value(FLASH))
|
|
@@ -517,13 +531,14 @@ beep()
|
|
* motions. I.e. on an adm3a we might map ^K to ^P.
|
|
* DM1520 for example has a lot of mappable characters.
|
|
*/
|
|
-
|
|
+int
|
|
map(c,maps)
|
|
register int c;
|
|
register struct maps *maps;
|
|
{
|
|
register int d;
|
|
- register char *p, *q;
|
|
+ register const char *p;
|
|
+ register char *q;
|
|
char b[10]; /* Assumption: no keypad sends string longer than 10 */
|
|
|
|
/*
|
|
@@ -559,7 +574,7 @@ map(c,maps)
|
|
if (trace)
|
|
fprintf(trace,"\ntry '%s', ",maps[d].cap);
|
|
#endif
|
|
- if (p = maps[d].cap) {
|
|
+ if ((p = maps[d].cap) != NULL) {
|
|
for (q=b; *p; p++, q++) {
|
|
#ifdef MDEBUG
|
|
if (trace)
|
|
@@ -633,8 +648,9 @@ map(c,maps)
|
|
* is false for, for example, pushing back lookahead from fastpeekkey(),
|
|
* since otherwise two fast escapes can clobber our undo.
|
|
*/
|
|
+void
|
|
macpush(st, canundo)
|
|
-char *st;
|
|
+const char *st;
|
|
int canundo;
|
|
{
|
|
char tmpbuf[BUFSIZ];
|
|
@@ -671,8 +687,8 @@ int canundo;
|
|
}
|
|
|
|
#ifdef TRACE
|
|
-visdump(s)
|
|
-char *s;
|
|
+static void
|
|
+visdump(const char *s)
|
|
{
|
|
register int i;
|
|
|
|
@@ -688,8 +704,8 @@ char *s;
|
|
tvliny();
|
|
}
|
|
|
|
-vudump(s)
|
|
-char *s;
|
|
+void
|
|
+vudump(const char *s)
|
|
{
|
|
register line *p;
|
|
char savelb[1024];
|
|
@@ -717,6 +733,7 @@ char *s;
|
|
* Get a count from the keyed input stream.
|
|
* A zero count is indistinguishable from no count.
|
|
*/
|
|
+int
|
|
vgetcnt()
|
|
{
|
|
register int c, cnt;
|
|
@@ -734,8 +751,11 @@ vgetcnt()
|
|
return(cnt);
|
|
}
|
|
|
|
-woid
|
|
-trapalarm(signum) {
|
|
+static woid
|
|
+trapalarm(int signum)
|
|
+{
|
|
+ (void)signum;
|
|
+
|
|
alarm(0);
|
|
if (vcatch)
|
|
LONGJMP(vreslab,1);
|
|
@@ -747,6 +767,7 @@ trapalarm(signum) {
|
|
* a machine generated sequence (such as a function pad from an escape
|
|
* flavor terminal) but fail for a human hitting escape then waiting.
|
|
*/
|
|
+static int
|
|
fastpeekkey()
|
|
{
|
|
shand Oint;
|