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.
240 lines
4.7 KiB
Text
240 lines
4.7 KiB
Text
$NetBSD: patch-ex__vops_c,v 1.1 2012/12/28 03:03:09 dholland Exp $
|
|
|
|
- declare local functions static
|
|
- declare void functions void
|
|
- silence warnings about braces
|
|
- fix up function pointer casting mess
|
|
- avoid implicit int
|
|
- silence warnings about && and || precedence
|
|
- use const for string constants
|
|
- silence warnings about unused arguments
|
|
- silence signed/unsigned compiler warning
|
|
|
|
--- ex_vops.c~ 2012-12-27 21:58:42.000000000 +0000
|
|
+++ ex_vops.c
|
|
@@ -89,8 +89,9 @@ static char sccsid[] = "@(#)ex_vops.c 1.
|
|
* display representations.
|
|
*/
|
|
|
|
-int xdw __P((void));
|
|
-int setpk __P((void));
|
|
+static int xdw __P((void));
|
|
+static void vshift(int ignore);
|
|
+static void setpk __P((void));
|
|
|
|
/*
|
|
* Undo.
|
|
@@ -111,6 +112,7 @@ int setpk __P((void));
|
|
char *vUA1, *vUA2;
|
|
char *vUD1, *vUD2;
|
|
|
|
+void
|
|
vUndo()
|
|
{
|
|
|
|
@@ -137,6 +139,7 @@ vUndo()
|
|
vfixcurs();
|
|
}
|
|
|
|
+void
|
|
vundo(show)
|
|
bool show; /* if true update the screen */
|
|
{
|
|
@@ -173,12 +176,13 @@ bool show; /* if true update the screen
|
|
* with dol through unddol-1. Hack screen image to
|
|
* reflect this replacement.
|
|
*/
|
|
- if (show)
|
|
+ if (show) {
|
|
if (undkind == UNDMOVE)
|
|
vdirty(0, TLINES);
|
|
else
|
|
vreplace(undap1 - addr, undap2 - undap1,
|
|
undkind == UNDPUT ? 0 : unddol - dol);
|
|
+ }
|
|
savenote = notecnt;
|
|
undo(1);
|
|
if (show && (vundkind != VMCHNG || addr != dot))
|
|
@@ -250,6 +254,7 @@ bool show; /* if true update the screen
|
|
* opposed to an ex command). This has nothing to do with being
|
|
* in open/visual mode as :s/foo/bar is not fromvis.
|
|
*/
|
|
+void
|
|
vmacchng(fromvis)
|
|
bool fromvis;
|
|
{
|
|
@@ -259,7 +264,6 @@ bool fromvis;
|
|
int nlines, more;
|
|
/* register line *a1, *a2; */
|
|
/* char ch; */ /* DEBUG */
|
|
- int copyw(), copywR();
|
|
|
|
if (!inopen)
|
|
return;
|
|
@@ -338,6 +342,7 @@ bool fromvis;
|
|
/*
|
|
* Initialize undo information before an append.
|
|
*/
|
|
+void
|
|
vnoapp()
|
|
{
|
|
|
|
@@ -357,6 +362,7 @@ vnoapp()
|
|
/*
|
|
* Move is simple, except for moving onto new lines in hardcopy open mode.
|
|
*/
|
|
+void
|
|
vmove()
|
|
{
|
|
register int cnt;
|
|
@@ -423,6 +429,17 @@ vmove()
|
|
}
|
|
|
|
/*
|
|
+ * This is the same as vmove, but throws away its argument, so
|
|
+ * it can be used in combination with other function pointers.
|
|
+ */
|
|
+void
|
|
+vmove_i(int ignore)
|
|
+{
|
|
+ (void)ignore;
|
|
+ vmove();
|
|
+}
|
|
+
|
|
+/*
|
|
* Delete operator.
|
|
*
|
|
* Hard case of deleting a range where both wcursor and wdot
|
|
@@ -430,7 +447,8 @@ vmove()
|
|
* by vchange (although vchange may pass it back if it degenerates
|
|
* to a full line range delete.)
|
|
*/
|
|
-vdelete(c)
|
|
+void
|
|
+vdelete(int c)
|
|
{
|
|
register char *cp;
|
|
register int i;
|
|
@@ -489,7 +507,8 @@ vdelete(c)
|
|
* Across lines with both wcursor and wdot given, we delete
|
|
* and sync then append (but one operation for undo).
|
|
*/
|
|
-vchange(c)
|
|
+void
|
|
+vchange(int c)
|
|
{
|
|
register char *cp;
|
|
register int i, ind, cnt;
|
|
@@ -705,6 +724,7 @@ smallchange:
|
|
* Actually counts are obsoleted, since if your terminal is slow
|
|
* you are better off with slowopen.
|
|
*/
|
|
+void
|
|
voOpen(c, cnt)
|
|
int c; /* mjm: char --> int */
|
|
register int cnt;
|
|
@@ -719,7 +739,7 @@ voOpen(c, cnt)
|
|
#endif
|
|
#endif
|
|
|
|
- if (value(SLOWOPEN) || value(REDRAW) && AL && DL)
|
|
+ if (value(SLOWOPEN) || (value(REDRAW) && AL && DL))
|
|
cnt = 1;
|
|
#ifdef SIGWINCH
|
|
#ifndef POSIX_1
|
|
@@ -794,6 +814,7 @@ voOpen(c, cnt)
|
|
*/
|
|
char vshnam[2] = { 'x', 0 };
|
|
|
|
+void
|
|
vshftop()
|
|
{
|
|
register line *addr;
|
|
@@ -817,11 +838,12 @@ vshftop()
|
|
*
|
|
* Filter portions of the buffer through unix commands.
|
|
*/
|
|
+void
|
|
vfilter()
|
|
{
|
|
register line *addr;
|
|
register int cnt;
|
|
- char *oglobp;
|
|
+ const char *oglobp;
|
|
short d;
|
|
#ifdef BIT8
|
|
cell cuxb[UXBSIZE + 2];
|
|
@@ -885,6 +907,7 @@ vfilter()
|
|
* that wdot is reasonable. Its name comes from
|
|
* xchange dotand wdot
|
|
*/
|
|
+static int
|
|
xdw()
|
|
{
|
|
register char *cp;
|
|
@@ -956,9 +979,10 @@ xdw()
|
|
/*
|
|
* Routine for vremote to call to implement shifts.
|
|
*/
|
|
-vshift()
|
|
+static void
|
|
+vshift(int ignore)
|
|
{
|
|
-
|
|
+ (void)ignore;
|
|
shift(op, 1);
|
|
}
|
|
|
|
@@ -966,12 +990,13 @@ vshift()
|
|
* Replace a single character with the next input character.
|
|
* A funny kind of insert.
|
|
*/
|
|
+void
|
|
vrep(cnt)
|
|
register int cnt;
|
|
{
|
|
register int i, c;
|
|
|
|
- if (cnt > strlen(cursor)) {
|
|
+ if (cnt > (int)strlen(cursor)) {
|
|
beep();
|
|
return;
|
|
}
|
|
@@ -1000,12 +1025,20 @@ vrep(cnt)
|
|
setLAST();
|
|
}
|
|
|
|
+static void
|
|
+doyank(int ignore)
|
|
+{
|
|
+ (void)ignore;
|
|
+ yank();
|
|
+}
|
|
+
|
|
/*
|
|
* Yank.
|
|
*
|
|
* Yanking to string registers occurs for free (essentially)
|
|
* in the routine xdw().
|
|
*/
|
|
+void
|
|
vyankit()
|
|
{
|
|
register int cnt;
|
|
@@ -1013,7 +1046,7 @@ vyankit()
|
|
if (wdot) {
|
|
if ((cnt = xdw()) < 0)
|
|
return;
|
|
- vremote(cnt, yank, 0);
|
|
+ vremote(cnt, doyank, 0);
|
|
setpk();
|
|
notenam = "yank";
|
|
if (FIXUNDO)
|
|
@@ -1036,6 +1069,7 @@ vyankit()
|
|
* the first and last lines. The compromise
|
|
* is for put to be more clever.
|
|
*/
|
|
+static void
|
|
setpk()
|
|
{
|
|
|