diff options
author | peter <peter@FreeBSD.org> | 2013-08-11 20:03:12 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2013-08-11 20:03:12 +0000 |
commit | 5f2a1d653696ec5457bfd044f0ebcd873bfc3c80 (patch) | |
tree | 7c1ae67d07b93aea05bfea51c590c1112b65042b /contrib/nvi/vi/v_section.c | |
parent | 324febaf01918418f99998aa5537126ac98c9df0 (diff) | |
download | FreeBSD-src-5f2a1d653696ec5457bfd044f0ebcd873bfc3c80.zip FreeBSD-src-5f2a1d653696ec5457bfd044f0ebcd873bfc3c80.tar.gz |
Update nvi-1.79 to 2.1.1-4334a8297f
This is the gsoc-2011 project to clean up and backport multibyte support
from other nvi forks in a form we can use.
USE_WIDECHAR is on unless building for the rescue crunchgen. This should
allow editing in the native locale encoding.
USE_ICONV depends on make.conf having 'WITH_ICONV=YES' for now. This
adds the ability to do things like edit a KOI8-R file while having $LANG
set to (say) en_US.UTF-8. iconv is used to transcode the characters for
display.
Other points:
* It uses gencat and catopen/etc instead of homegrown msg catalog stuff.
* A lot of stuff has been trimmed out, eg: the perl and tcl bindings which
we could never use in base anyway.
* It uses ncursesw when in widechar mode. This could be interesting.
GSoC info: http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1
Repo at: https://github.com/lichray/nvi2
Obtained from: Zhihao Yuan <lichray@gmail.com>
Diffstat (limited to 'contrib/nvi/vi/v_section.c')
-rw-r--r-- | contrib/nvi/vi/v_section.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/contrib/nvi/vi/v_section.c b/contrib/nvi/vi/v_section.c index 20e8ff2..e769cda 100644 --- a/contrib/nvi/vi/v_section.c +++ b/contrib/nvi/vi/v_section.c @@ -10,7 +10,7 @@ #include "config.h" #ifndef lint -static const char sccsid[] = "@(#)v_section.c 10.7 (Berkeley) 3/6/96"; +static const char sccsid[] = "$Id: v_section.c,v 10.10 2001/06/25 15:19:35 skimo Exp $"; #endif /* not lint */ #include <sys/types.h> @@ -62,13 +62,12 @@ static const char sccsid[] = "@(#)v_section.c 10.7 (Berkeley) 3/6/96"; * PUBLIC: int v_sectionf __P((SCR *, VICMD *)); */ int -v_sectionf(sp, vp) - SCR *sp; - VICMD *vp; +v_sectionf(SCR *sp, VICMD *vp) { recno_t cnt, lno; size_t len; - char *p, *list, *lp; + CHAR_T *p; + char *list, *lp; /* Get the macro list. */ if ((list = O_STR(sp, O_SECTIONS)) == NULL) @@ -98,7 +97,7 @@ v_sectionf(sp, vp) for (lno = vp->m_start.lno; !db_get(sp, ++lno, 0, &p, &len);) { if (len == 0) continue; - if (p[0] == '{' || ISMOTION(vp) && p[0] == '}') { + if (p[0] == '{' || (ISMOTION(vp) && p[0] == '}')) { if (!--cnt) { if (p[0] == '{') goto adjust1; @@ -122,7 +121,7 @@ v_sectionf(sp, vp) continue; for (lp = list; *lp != '\0'; lp += 2 * sizeof(*lp)) if (lp[0] == p[1] && - (lp[1] == ' ' && len == 2 || lp[1] == p[2]) && + ((lp[1] == ' ' && len == 2) || lp[1] == p[2]) && !--cnt) { /* * !!! @@ -170,13 +169,12 @@ ret2: if (ISMOTION(vp)) { * PUBLIC: int v_sectionb __P((SCR *, VICMD *)); */ int -v_sectionb(sp, vp) - SCR *sp; - VICMD *vp; +v_sectionb(SCR *sp, VICMD *vp) { size_t len; recno_t cnt, lno; - char *p, *list, *lp; + CHAR_T *p; + char *list, *lp; /* An empty file or starting from line 1 is always illegal. */ if (vp->m_start.lno <= 1) { @@ -213,7 +211,7 @@ v_sectionb(sp, vp) continue; for (lp = list; *lp != '\0'; lp += 2 * sizeof(*lp)) if (lp[0] == p[1] && - (lp[1] == ' ' && len == 2 || lp[1] == p[2]) && + ((lp[1] == ' ' && len == 2) || lp[1] == p[2]) && !--cnt) { adjust1: vp->m_stop.lno = lno; vp->m_stop.cno = 0; |