From cefc0995dec1cb37d6c19c1d66c9e8fcb7d04c90 Mon Sep 17 00:00:00 2001 From: christos Date: Thu, 28 Oct 2010 18:12:47 +0000 Subject: [PATCH] PR/44006: Ralph G: vi: CTRL-A does not handle end-of-word correctly End-of-word was not included in search regexp leading to false positives. http://patches.ubuntu.com/by-release/extracted/debian/n/nvi/1.81.6-7/15search_word.dpatch --- dist/nvi/vi/v_search.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dist/nvi/vi/v_search.c b/dist/nvi/vi/v_search.c index 8cca6c75c0dd..e27e8af69f5b 100644 --- a/dist/nvi/vi/v_search.c +++ b/dist/nvi/vi/v_search.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_search.c,v 1.2 2008/12/05 22:51:43 christos Exp $ */ +/* $NetBSD: v_search.c,v 1.3 2010/10/28 18:12:47 christos Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -324,15 +324,16 @@ int 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);