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/ex/ex_tcl.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/ex/ex_tcl.c')
-rw-r--r-- | contrib/nvi/ex/ex_tcl.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/contrib/nvi/ex/ex_tcl.c b/contrib/nvi/ex/ex_tcl.c deleted file mode 100644 index 06736a7..0000000 --- a/contrib/nvi/ex/ex_tcl.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * Copyright (c) 1992, 1993, 1994, 1995, 1996 - * Keith Bostic. All rights reserved. - * Copyright (c) 1995 - * George V. Neville-Neil. All rights reserved. - * - * See the LICENSE file for redistribution information. - */ - -#include "config.h" - -#ifndef lint -static const char sccsid[] = "@(#)ex_tcl.c 8.10 (Berkeley) 9/15/96"; -#endif /* not lint */ - -#include <sys/types.h> -#include <sys/queue.h> - -#include <bitstring.h> -#include <limits.h> -#include <stdio.h> -#include <string.h> -#include <termios.h> -#include <unistd.h> - -#include "../common/common.h" - -#ifdef HAVE_TCL_INTERP -#include <tcl.h> -#endif - -/* - * ex_tcl -- :[line [,line]] tcl [command] - * Run a command through the tcl interpreter. - * - * PUBLIC: int ex_tcl __P((SCR*, EXCMD *)); - */ -int -ex_tcl(sp, cmdp) - SCR *sp; - EXCMD *cmdp; -{ -#ifdef HAVE_TCL_INTERP - CHAR_T *p; - GS *gp; - size_t len; - char buf[128]; - - /* Initialize the interpreter. */ - gp = sp->gp; - if (gp->tcl_interp == NULL && tcl_init(gp)) - return (1); - - /* Skip leading white space. */ - if (cmdp->argc != 0) - for (p = cmdp->argv[0]->bp, - len = cmdp->argv[0]->len; len > 0; --len, ++p) - if (!isblank(*p)) - break; - if (cmdp->argc == 0 || len == 0) { - ex_emsg(sp, cmdp->cmd->usage, EXM_USAGE); - return (1); - } - - (void)snprintf(buf, sizeof(buf), - "set viScreenId %d\nset viStartLine %lu\nset viStopLine %lu", - sp->id, cmdp->addr1.lno, cmdp->addr2.lno); - if (Tcl_Eval(gp->tcl_interp, buf) == TCL_OK && - Tcl_Eval(gp->tcl_interp, cmdp->argv[0]->bp) == TCL_OK) - return (0); - - msgq(sp, M_ERR, "Tcl: %s", ((Tcl_Interp *)gp->tcl_interp)->result); - return (1); -#else - msgq(sp, M_ERR, "302|Vi was not loaded with a Tcl interpreter"); - return (1); -#endif /* HAVE_TCL_INTERP */ -} |