aboutsummaryrefslogtreecommitdiff
path: root/editors/nvi/patches/nvi-15-search_word.patch
diff options
context:
space:
mode:
Diffstat (limited to 'editors/nvi/patches/nvi-15-search_word.patch')
-rw-r--r--editors/nvi/patches/nvi-15-search_word.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/editors/nvi/patches/nvi-15-search_word.patch b/editors/nvi/patches/nvi-15-search_word.patch
new file mode 100644
index 0000000..38c914b
--- /dev/null
+++ b/editors/nvi/patches/nvi-15-search_word.patch
@@ -0,0 +1,29 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 15search_word.dpatch by Al Viro <viro@ZenIV.linux.org.uk>
+##
+## DP: Fix {^A} command. (End-of-word was not included in search
+## DP: regexp leading to false positives.)
+
+@DPATCH@
+--- nvi-1.81.6.orig/vi/v_search.c 2007-11-18 11:41:42.000000000 -0500
++++ nvi-1.81.6/vi/v_search.c 2009-03-05 15:37:37.000000000 -0500
+@@ -322,16 +322,17 @@
+ v_searchw(SCR *sp, VICMD *vp)
+ {
+ size_t blen, len;
++ size_t olen = STRLEN(VIP(sp)->keyw);
+ int rval;
+ CHAR_T *bp, *p;
+
+- len = VIP(sp)->klen + RE_WSTART_LEN + RE_WSTOP_LEN;
++ len = olen + RE_WSTART_LEN + RE_WSTOP_LEN;
+ GET_SPACE_RETW(sp, bp, blen, len);
+ MEMCPY(bp, RE_WSTART, RE_WSTART_LEN);
+ p = bp + RE_WSTART_LEN;
+- MEMCPY(p, VIP(sp)->keyw, VIP(sp)->klen);
+- p += VIP(sp)->klen;
++ MEMCPY(p, VIP(sp)->keyw, olen);
++ p += olen;
+ MEMCPY(p, RE_WSTOP, RE_WSTOP_LEN);
+
+ rval = v_search(sp, vp, bp, len, SEARCH_SET, FORWARD);