openbsd-ports/editors/bvi/patches/patch-edit_c

36 lines
1.1 KiB
Plaintext

$OpenBSD: patch-edit_c,v 1.1 2008/02/11 21:51:32 naddy Exp $
--- edit.c.orig Thu Jan 24 22:07:49 2008
+++ edit.c Thu Jan 24 22:15:39 2008
@@ -290,12 +290,18 @@ do_ft(ch, flag)
PTR ptr;
switch (ch) {
- case 1: beep();
- return NULL; /* no previous command */
- case -1: if (chp == 'f' || chp == 't') dir = BACKWARD;
+ case -1: if (chp == 1) { /* no previous command */
+ beep();
+ return NULL;
+ }
+ if (chp == 'f' || chp == 't') dir = BACKWARD;
else dir = FORWARD;
break; /* same again */
- case 0: if (chp == 'f' || chp == 't') dir = FORWARD;
+ case 0: if (chp == 1) { /* no previous command */
+ beep();
+ return NULL;
+ }
+ if (chp == 'f' || chp == 't') dir = FORWARD;
else dir = BACKWARD;
break; /* same again */
default: chp = ch;
@@ -324,7 +330,7 @@ do_ft(ch, flag)
if (ptr < mem) break;
}
} while (--precount > 0);
- if (*ptr == chi) {
+ if (ptr >= mem && ptr <= maxpos) {
if (loc == HEX) toggle();
if (chp == 't') ptr--;
if (chp == 'T') ptr++;