socsvn commit: r228598 - in soc2011/zy/nvi-iconv/head/contrib/nvi2:
. build catalog cl common docs/man ex regex vi
zy at FreeBSD.org
zy at FreeBSD.org
Wed Dec 7 07:16:54 UTC 2011
Author: zy
Date: Wed Dec 7 07:16:51 2011
New Revision: 228598
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=228598
Log:
Upgrades to git:e75e498.
* Recognize wide "word" (Version 2.0.2);
* Evaluated and merged all PR, patches from Debian and NetBSD except the
signed char usage and the modified regex lib in NetBSD-current.
* Rewrote iconv_open() usage.
* No memory leak in know tests.
* Realign the memory returned from log DB (fixes crash on RISC).
Modified:
soc2011/zy/nvi-iconv/head/contrib/nvi2/LICENSE
soc2011/zy/nvi-iconv/head/contrib/nvi2/README
soc2011/zy/nvi-iconv/head/contrib/nvi2/build/CMakeLists.txt
soc2011/zy/nvi-iconv/head/contrib/nvi2/build/config.h.in
soc2011/zy/nvi-iconv/head/contrib/nvi2/build/distrib
soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/Makefile
soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/README
soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/dump.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/README.signal
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_bsd.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_funcs.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_main.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_read.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_screen.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_term.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/args.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/common.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/delete.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/encoding.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/extern.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/gs.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/key.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/key.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/line.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/log.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/main.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/mark.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/mark.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/mem.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/msg.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/multibyte.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/options.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/options.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/options_f.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/port.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/put.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/recover.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/screen.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/screen.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/search.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/seq.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/common/util.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/docs/man/vi.1
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_abbrev.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_append.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_args.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_argv.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_at.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_bang.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_cd.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_cmd.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_cscope.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_delete.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_display.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_edit.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_equal.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_file.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_filter.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_global.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_init.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_join.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_map.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_mark.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_mkexrc.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_move.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_open.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_preserve.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_print.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_put.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_quit.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_read.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_screen.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_script.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_set.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_shell.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_shift.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_source.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_stop.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_subst.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_tag.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_txt.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_undo.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_usage.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_util.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_version.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_visual.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_write.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_yank.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/ex_z.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/script.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/tag.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/ex/version.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/regex/regex2.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/regex/regexec.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/getc.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_at.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_ch.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_cmd.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_delete.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_ex.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_increment.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_init.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_itxt.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_left.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_mark.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_match.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_paragraph.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_put.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_redraw.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_replace.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_right.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_screen.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_scroll.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_search.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_section.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_sentence.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_status.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_txt.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_ulcase.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_undo.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_util.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_word.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_xchar.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_yank.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_z.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/v_zexit.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vi.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vi.h
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vs_line.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vs_msg.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vs_refresh.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vs_relative.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vs_smap.c
soc2011/zy/nvi-iconv/head/contrib/nvi2/vi/vs_split.c
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/LICENSE
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/LICENSE Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/LICENSE Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,5 +1,5 @@
/*-
- * $Id: LICENSE,v 8.18 2011/07/10 11:58:35 zy Exp $ (Berkeley) $Date: 2011/07/10 11:58:35 $
+ * $Id: LICENSE,v 8.18 2011/07/10 11:58:35 zy Exp $
*/
The following are the copyrights and redistribution conditions that apply
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/README
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/README Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/README Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,6 +1,6 @@
-# $Id: README,v 8.156 2011/08/16 13:55:14 zy Exp $ (Berkeley) $Date: 2011/08/16 13:55:14 $
+# $Id: README,v 8.157 2011/12/03 02:58:16 zy Exp $
-This is version 2.0.1 (2011-08-16) of nex/nvi, a reimplementation of the ex/vi
+This is version 2.0.2 (2011-12-03) of nex/nvi, a reimplementation of the ex/vi
text editors originally distributed as part of the Fourth Berkeley
Software Distribution (4BSD), by the University of California, Berkeley.
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/build/CMakeLists.txt
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/build/CMakeLists.txt Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/build/CMakeLists.txt Wed Dec 7 07:16:51 2011 (r228598)
@@ -15,10 +15,23 @@
option(USE_WIDECHAR "Enable wide character support" ON)
option(USE_ICONV "Enable iconv support" ON)
+function(JOIN VALUES OUTPUT)
+ string(REPLACE ";" " " _TMP_STR "${VALUES}")
+ set(${OUTPUT} "${_TMP_STR}" PARENT_SCOPE)
+endfunction()
+
if(DEBUG)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fstrict-aliasing -Wstrict-aliasing -Wformat -Wno-pointer-sign -ansi")
+ set(_arg_str "${CMAKE_C_FLAGS} -ansi -O0 -g"
+ "-fstrict-aliasing -Wstrict-aliasing"
+ "-Wformat"
+ "-Wmissing-prototypes"
+ "-Wno-pointer-sign")
+ join("${_arg_str}" CMAKE_C_FLAGS)
else(DEBUG)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -Wno-pointer-sign")
+ set(_arg_str "${CMAKE_C_FLAGS} -ansi -O2"
+ "-Wuninitialized"
+ "-Wno-pointer-sign")
+ join("${_arg_str}" CMAKE_C_FLAGS)
endif(DEBUG)
# generate the public headers
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/build/config.h.in
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/build/config.h.in Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/build/config.h.in Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,4 +1,4 @@
-/* $Id: config.h.in,v 9.0 2011/08/21 01:44:35 zy Exp $ (Berkeley) $Date: 2011/08/21 01:44:35 $ */
+/* $Id: config.h.in,v 9.0 2011/08/21 01:44:35 zy Exp $ */
/* Define if you want a debugging version. */
#cmakedefine DEBUG
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/build/distrib
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/build/distrib Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/build/distrib Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,5 +1,5 @@
#! /bin/sh
-# $Id: distrib,v 8.26 2011/07/13 07:45:14 zy Exp $ (Berkeley) $Date: 2011/07/13 07:45:14 $
+# $Id: distrib,v 8.28 2011/12/03 03:45:14 zy Exp $
# Build include files.
f=../cl/extern.h
@@ -26,6 +26,12 @@
sed -n "s/^ \* PUBLIC: \(.*\)/\1/p" ../ex/*.c > $f
chmod 444 $f
+f=../ex/version.h
+echo "Building $f"
+rm -f $f
+sed -n 's/^.*version \([^)]*)\).*/#define VI_VERSION "\1"/p' ../README > $f
+chmod 444 $f
+
f=../common/options_def.h
echo "Building $f"
rm -f $f
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/Makefile
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/Makefile Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/Makefile Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 8.32 2011/08/22 16:59:09 zy Exp $ (Berkeley) $Date: 2011/08/22 16:59:09 $
+# $Id: Makefile,v 8.32 2011/08/22 16:59:09 zy Exp $
CAT= dutch english french german polish ru_RU.KOI8-R spanish swedish \
uk_UA.KOI8-U
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/README
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/README Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/README Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,4 +1,4 @@
-# $Id: README,v 8.4 1994/11/22 09:52:04 bostic Exp $ (Berkeley) $Date: 1994/11/22 09:52:04 $
+# $Id: README,v 8.4 1994/11/22 09:52:04 bostic Exp $
Generally, all non-system error and informational messages in nvi are
catalog messages, i.e. they can be tailored to a specific langauge.
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/dump.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/dump.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/catalog/dump.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -12,7 +12,7 @@
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "$Id: dump.c,v 8.2 2011/07/14 00:05:25 zy Exp $ (Berkeley) $Date: 2011/07/14 00:05:25 $";
+static char sccsid[] = "$Id: dump.c,v 8.2 2011/07/14 00:05:25 zy Exp $";
#endif /* not lint */
#include <ctype.h>
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/README.signal
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/README.signal Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/README.signal Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,4 +1,4 @@
-# $Id: README.signal,v 10.1 1995/06/23 10:28:17 bostic Exp $ (Berkeley) $Date: 1995/06/23 10:28:17 $
+# $Id: README.signal,v 10.1 1995/06/23 10:28:17 bostic Exp $
There are six (normally) asynchronous actions about which vi cares:
SIGHUP, SIGINT, SIGQUIT, SIGTERM, SIGTSTP and SIGWINCH.
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,7 +6,7 @@
*
* See the LICENSE file for redistribution information.
*
- * $Id: cl.h,v 10.34 2011/08/15 20:07:32 zy Exp $ (Berkeley) $Date: 2011/08/15 20:07:32 $
+ * $Id: cl.h,v 10.34 2011/08/15 20:07:32 zy Exp $
*/
#ifdef USE_SLANG_CURSES
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_bsd.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_bsd.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_bsd.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -8,7 +8,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: cl_bsd.c,v 8.32 2000/12/01 13:56:17 skimo Exp $ (Berkeley) $Date: 2000/12/01 13:56:17 $";
+static const char sccsid[] = "$Id: cl_bsd.c,v 8.32 2000/12/01 13:56:17 skimo Exp $";
#endif /* not lint */
#include <sys/types.h>
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_funcs.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_funcs.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_funcs.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: cl_funcs.c,v 10.73 2011/08/15 19:55:33 zy Exp $ (Berkeley) $Date: 2011/08/15 19:55:33 $";
+static const char sccsid[] = "$Id: cl_funcs.c,v 10.73 2011/08/15 19:55:33 zy Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -874,7 +874,7 @@
* gdbrefresh --
* Stub routine so can flush out curses screen changes using gdb.
*/
-int
+static int
gdbrefresh(void)
{
refresh();
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_main.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_main.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_main.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: cl_main.c,v 10.55 2011/08/15 19:52:28 zy Exp $ (Berkeley) $Date: 2011/08/15 19:52:28 $";
+static const char sccsid[] = "$Id: cl_main.c,v 10.55 2011/08/15 19:52:28 zy Exp $";
#endif /* not lint */
#include <sys/types.h>
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_read.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_read.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_read.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: cl_read.c,v 10.29 2001/08/18 21:51:59 skimo Exp $ (Berkeley) $Date: 2001/08/18 21:51:59 $";
+static const char sccsid[] = "$Id: cl_read.c,v 10.29 2001/08/18 21:51:59 skimo Exp $";
#endif /* not lint */
#include <sys/types.h>
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_screen.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_screen.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_screen.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: cl_screen.c,v 10.56 2002/05/03 19:59:44 skimo Exp $ (Berkeley) $Date: 2002/05/03 19:59:44 $";
+static const char sccsid[] = "$Id: cl_screen.c,v 10.56 2002/05/03 19:59:44 skimo Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -562,6 +562,12 @@
free(clp->smso);
clp->smso = NULL;
}
+ /* Required by libcursesw :) */
+ if (clp->cw.bp1.c != NULL) {
+ free(clp->cw.bp1.c);
+ clp->cw.bp1.c = NULL;
+ clp->cw.blen1 = 0;
+ }
}
/*
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_term.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_term.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/cl/cl_term.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: cl_term.c,v 10.31 2001/07/08 13:06:56 skimo Exp $ (Berkeley) $Date: 2001/07/08 13:06:56 $";
+static const char sccsid[] = "$Id: cl_term.c,v 10.32 2011/12/02 18:20:54 zy Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -122,8 +122,9 @@
MEMCPYW(name, wp, wlen);
CHAR2INT(sp, t, strlen(t), wp, wlen);
MEMCPYW(ts, wp, wlen);
+ output[0] = (UCHAR_T)kp->ch;
if (seq_set(sp, name, strlen(tkp->name), ts, strlen(t),
- &kp->ch, 1, SEQ_INPUT, SEQ_NOOVERWRITE | SEQ_SCREEN))
+ output, 1, SEQ_INPUT, SEQ_NOOVERWRITE | SEQ_SCREEN))
return (1);
}
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/args.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/args.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/args.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,7 +6,7 @@
*
* See the LICENSE file for redistribution information.
*
- * $Id: args.h,v 10.2 1996/03/06 19:50:07 bostic Exp $ (Berkeley) $Date: 1996/03/06 19:50:07 $
+ * $Id: args.h,v 10.2 1996/03/06 19:50:07 bostic Exp $
*/
/*
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/common.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/common.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/common.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,7 +6,7 @@
*
* See the LICENSE file for redistribution information.
*
- * $Id: common.h,v 10.21 2011/06/26 14:28:12 zy Exp $ (Berkeley) $Date: 2011/06/26 14:28:12 $
+ * $Id: common.h,v 10.21 2011/06/26 14:28:12 zy Exp $
*/
/*
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -3,6 +3,8 @@
* The Regents of the University of California. All rights reserved.
* Copyright (c) 1993, 1994, 1995, 1996
* Keith Bostic. All rights reserved.
+ * Copyright (c) 2011, 2012
+ * Zhihao Yuan. All rights reserved.
*
* See the LICENSE file for redistribution information.
*/
@@ -10,7 +12,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: conv.c,v 1.30 2011/10/27 17:38:13 zy Exp $ (Berkeley) $Date: 2011/10/27 17:38:13 $";
+static const char sccsid[] = "$Id: conv.c,v 2.33 2011/12/04 04:06:45 zy Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -30,19 +32,15 @@
#ifdef USE_ICONV
#include <langinfo.h>
-#include <iconv.h>
-
#define LANGCODESET nl_langinfo(CODESET)
#else
-typedef int iconv_t;
-
#define LANGCODESET ""
#endif
#include <locale.h>
#ifdef USE_WIDECHAR
-int
+static int
raw2int(SCR *sp, const char * str, ssize_t len, CONVWIN *cw, size_t *tolen,
CHAR_T **dst)
{
@@ -73,8 +71,8 @@
char *bp = buffer; \
outleft = CONV_BUFFER_SIZE; \
errno = 0; \
- if (iconv(id, (char **)&str, &left, &bp, &outleft) == -1 /*&& \
- errno != E2BIG*/) \
+ if (iconv(id, (char **)&str, &left, &bp, &outleft) == -1 && \
+ errno != E2BIG) \
goto err; \
if ((len = CONV_BUFFER_SIZE - outleft) == 0) { \
error = -left; \
@@ -82,19 +80,21 @@
} \
src = buffer; \
} while (0)
+
+#define IC_RESET() \
+ do { \
+ if (id != (iconv_t)-1) \
+ iconv(id, NULL, NULL, NULL, NULL); \
+ } while(0)
#else
#define CONVERT(str, left, src, len)
+#define IC_RESET()
#endif
-int
+static int
default_char2int(SCR *sp, const char * str, ssize_t len, CONVWIN *cw,
- size_t *tolen, CHAR_T **dst, char *enc)
+ size_t *tolen, CHAR_T **dst, iconv_t id)
{
- /* XXX UTF-16 linesep hack */
- if (enc && !strncasecmp(enc, "utf-16", 6) && len % 2)
- if (--len, !strncasecmp(enc, "utf-16le", 8))
- str++; /* shift if LE */
-
int i = 0, j;
CHAR_T **tostr = &cw->bp1.wc;
size_t *blen = &cw->blen1;
@@ -102,7 +102,6 @@
size_t n;
ssize_t nlen = len;
char *src = (char *)str;
- iconv_t id = (iconv_t)-1;
char buffer[CONV_BUFFER_SIZE];
size_t left = len;
int error = 1;
@@ -111,12 +110,8 @@
BINC_RETW(NULL, *tostr, *blen, nlen);
#ifdef USE_ICONV
- if (strcasecmp(nl_langinfo(CODESET), enc)) {
- id = iconv_open(nl_langinfo(CODESET), enc);
- if (id == (iconv_t)-1)
- goto err;
+ if (id != (iconv_t)-1)
CONVERT(str, left, src, len);
- }
#endif
for (i = 0, j = 0; j < len; ) {
@@ -135,69 +130,47 @@
j = 0;
}
}
- *tolen = i;
-#ifdef USE_ICONV
- if (id != (iconv_t)-1)
- iconv_close(id);
-#endif
-
- *dst = cw->bp1.wc;
-
- return 0;
+ error = 0;
err:
*tolen = i;
-#ifdef USE_ICONV
- if (id != (iconv_t)-1)
- iconv_close(id);
-#endif
*dst = cw->bp1.wc;
+ IC_RESET();
return error;
}
-int
+static int
fe_char2int(SCR *sp, const char * str, ssize_t len, CONVWIN *cw,
size_t *tolen, CHAR_T **dst)
{
- return default_char2int(sp, str, len, cw, tolen, dst, O_STR(sp, O_FILEENCODING));
+ /* XXX UTF-16 linesep hack */
+ char *enc = O_STR(sp, O_FILEENCODING);
+ if (enc && !strncasecmp(enc, "utf-16", 6) && len % 2)
+ if (--len, !strncasecmp(enc, "utf-16le", 8))
+ str++; /* shift if LE */
+
+ return default_char2int(sp, str, len, cw, tolen, dst,
+ sp->conv.id[IC_FE_CHAR2INT]);
}
-int
+static int
ie_char2int(SCR *sp, const char * str, ssize_t len, CONVWIN *cw,
size_t *tolen, CHAR_T **dst)
{
- return default_char2int(sp, str, len, cw, tolen, dst, O_STR(sp, O_INPUTENCODING));
+ return default_char2int(sp, str, len, cw, tolen, dst,
+ sp->conv.id[IC_IE_CHAR2INT]);
}
-int
+static int
cs_char2int(SCR *sp, const char * str, ssize_t len, CONVWIN *cw,
size_t *tolen, CHAR_T **dst)
{
- return default_char2int(sp, str, len, cw, tolen, dst, LANGCODESET);
-}
-
-int
-CHAR_T_int2char(SCR *sp, const CHAR_T * str, ssize_t len, CONVWIN *cw,
- size_t *tolen, char **dst)
-{
- *tolen = len * sizeof(CHAR_T);
- *dst = (char*) str;
-
- return 0;
-}
-
-int
-CHAR_T_char2int(SCR *sp, const char * str, ssize_t len, CONVWIN *cw,
- size_t *tolen, CHAR_T **dst)
-{
- *tolen = len / sizeof(CHAR_T);
- *dst = (CHAR_T*) str;
-
- return 0;
+ return default_char2int(sp, str, len, cw, tolen, dst,
+ (iconv_t)-1);
}
-int
+static int
int2raw(SCR *sp, const CHAR_T * str, ssize_t len, CONVWIN *cw, size_t *tolen,
char **dst)
{
@@ -216,9 +189,9 @@
return 0;
}
-int
+static int
default_int2char(SCR *sp, const CHAR_T * str, ssize_t len, CONVWIN *cw,
- size_t *tolen, char **pdst, char *enc)
+ size_t *tolen, char **pdst, iconv_t id)
{
size_t i, j, offset = 0;
char **tostr = &cw->bp1.c;
@@ -229,7 +202,7 @@
char *dst;
size_t buflen;
char buffer[CONV_BUFFER_SIZE];
- iconv_t id = (iconv_t)-1;
+ int error = 1;
/* convert first len bytes of buffer and append it to cw->bp
* len is adjusted => 0
@@ -242,7 +215,7 @@
char *bp = buffer; \
while (len != 0) { \
size_t outleft = cw->blen1 - offset; \
- char *obp = cw->bp1.c + offset; \
+ char *obp = cw->bp1.c + offset; \
if (cw->blen1 < offset + MB_CUR_MAX) { \
nlen += 256; \
BINC_RETC(NULL, cw->bp1.c, cw->blen1, nlen); \
@@ -264,10 +237,7 @@
dst = *tostr; buflen = *blen;
#ifdef USE_ICONV
- if (strcasecmp(nl_langinfo(CODESET), enc)) {
- id = iconv_open(enc, nl_langinfo(CODESET));
- if (id == (iconv_t)-1)
- goto err;
+ if (id != (iconv_t)-1) {
dst = buffer; buflen = CONV_BUFFER_SIZE;
}
#endif
@@ -296,36 +266,37 @@
*tolen = offset;
}
- *pdst = cw->bp1.c;
-
- return 0;
+ error = 0;
err:
- *tolen = j;
-
+ if (error)
+ *tolen = j;
*pdst = cw->bp1.c;
+ IC_RESET();
- return 1;
+ return error;
}
-int
+static int
fe_int2char(SCR *sp, const CHAR_T * str, ssize_t len, CONVWIN *cw,
size_t *tolen, char **dst)
{
- return default_int2char(sp, str, len, cw, tolen, dst, O_STR(sp, O_FILEENCODING));
+ return default_int2char(sp, str, len, cw, tolen, dst,
+ sp->conv.id[IC_FE_INT2CHAR]);
}
-int
+static int
cs_int2char(SCR *sp, const CHAR_T * str, ssize_t len, CONVWIN *cw,
size_t *tolen, char **dst)
{
- return default_int2char(sp, str, len, cw, tolen, dst, LANGCODESET);
+ return default_int2char(sp, str, len, cw, tolen, dst,
+ (iconv_t)-1);
}
#endif
/*
* conv_init --
- * Initialize iconv functions.
+ * Initialize the iconv environment.
*
* PUBLIC: void conv_init __P((SCR *, SCR *));
*/
@@ -335,11 +306,11 @@
if (orig != NULL)
MEMCPY(&sp->conv, &orig->conv, 1);
else {
- char *ctp;
+ char *ctype;
+ char *cp;
setlocale(LC_ALL, "");
+ ctype = setlocale(LC_CTYPE, NULL);
#ifdef USE_WIDECHAR
- ctp = strchr(setlocale(LC_CTYPE, NULL), '.');
- if (ctp) ++ctp;
/*
* The CJK hacks try to use GB18030 to handle
* eucCN, eucJP, eucKR, GB2312, GBK, CP949, CP936.
@@ -348,29 +319,46 @@
* This fixes the libncursesw limitaions (GB2312, GBK, and CP949
* do not work) on FreeBSD at the same time.
*/
- if (!strncmp(ctp, "euc", 3) || !strncmp(ctp, "GB", 2) ||
- !strcmp(ctp, "CP949") || !strcmp(ctp, "CP936"))
+ if ((cp = strchr(ctype, '.'))) {
+ ++cp;
+ if (!strncmp(cp, "euc", 3) || !strncmp(cp, "GB", 2) ||
+ !strcmp(cp, "CP949") || !strcmp(cp, "CP936"))
setlocale(LC_CTYPE, "zh_CN.GB18030");
+ }
- sp->conv.sys2int = cs_char2int;
- sp->conv.int2sys = cs_int2char;
- sp->conv.file2int = fe_char2int;
- sp->conv.int2file = fe_int2char;
- sp->conv.input2int = ie_char2int;
+ /*
+ * Switch to 8bit mode if locale is C;
+ * LC_CTYPE should be reseted to C if unmatched.
+ */
+ if (!strcmp(ctype, "C") || !strcmp(ctype, "POSIX")) {
+ sp->conv.sys2int = sp->conv.file2int = raw2int;
+ sp->conv.int2sys = sp->conv.int2file = int2raw;
+ sp->conv.input2int = raw2int;
+ } else {
+ sp->conv.sys2int = cs_char2int;
+ sp->conv.int2sys = cs_int2char;
+ sp->conv.file2int = fe_char2int;
+ sp->conv.int2file = fe_int2char;
+ sp->conv.input2int = ie_char2int;
+ }
#elif __linux__
setlocale(LC_CTYPE, "");
#endif
#ifdef USE_ICONV
o_set(sp, O_INPUTENCODING, OS_STRDUP, nl_langinfo(CODESET), 0);
#endif
+ sp->conv.id[IC_IE_CHAR2INT] = (iconv_t)-1;
}
/* XXX
* Do not inherit file encoding from the old screen,
* but overwrite the fileencoding option in .exrc
*/
#ifdef USE_ICONV
+ conv_enc(sp, O_INPUTENCODING, 0);
o_set(sp, O_FILEENCODING, OS_STRDUP, nl_langinfo(CODESET), 0);
#endif
+ sp->conv.id[IC_FE_CHAR2INT] = (iconv_t)-1;
+ sp->conv.id[IC_FE_INT2CHAR] = (iconv_t)-1;
}
/*
@@ -383,49 +371,33 @@
conv_enc (SCR *sp, int option, char *enc)
{
#if defined(USE_WIDECHAR) && defined(USE_ICONV)
- iconv_t id;
- char2wchar_t *c2w;
- wchar2char_t *w2c;
-
- switch (option) {
- case O_FILEENCODING:
- c2w = &sp->conv.file2int;
- w2c = &sp->conv.int2file;
- break;
- case O_INPUTENCODING:
- c2w = &sp->conv.input2int;
- w2c = NULL;
- break;
- }
-
- if (!*enc) {
- if (c2w) *c2w = raw2int;
- if (w2c) *w2c = int2raw;
- return 0;
- }
-
- if (!strcmp(enc, "WCHAR_T")) {
- if (c2w) *c2w = CHAR_T_char2int;
- if (w2c) *w2c = CHAR_T_int2char;
- return 0;
- }
-
- id = iconv_open(enc, nl_langinfo(CODESET));
- if (id == (iconv_t)-1)
- goto err;
- iconv_close(id);
- id = iconv_open(nl_langinfo(CODESET), enc);
- if (id == (iconv_t)-1)
- goto err;
- iconv_close(id);
+ iconv_t *c2w, *w2c;
switch (option) {
case O_FILEENCODING:
- *c2w = fe_char2int;
- *w2c = fe_int2char;
+ c2w = sp->conv.id + IC_FE_CHAR2INT;
+ w2c = sp->conv.id + IC_FE_INT2CHAR;
+ if (!enc) enc = O_STR(sp, O_FILEENCODING);
+ if (*c2w != (iconv_t)-1)
+ iconv_close(*c2w);
+ if (*w2c != (iconv_t)-1)
+ iconv_close(*w2c);
+ if (strcasecmp(LANGCODESET, enc)) {
+ if ((*c2w = iconv_open(LANGCODESET, enc)) == (iconv_t)-1)
+ goto err;
+ if ((*w2c = iconv_open(enc, LANGCODESET)) == (iconv_t)-1)
+ goto err;
+ } else *c2w = *w2c = (iconv_t)-1;
break;
case O_INPUTENCODING:
- *c2w = ie_char2int;
+ c2w = sp->conv.id + IC_IE_CHAR2INT;
+ if (!enc) enc = O_STR(sp, O_INPUTENCODING);
+ if (*c2w != (iconv_t)-1)
+ iconv_close(*c2w);
+ if (strcasecmp(LANGCODESET, enc)) {
+ if ((*c2w = iconv_open(LANGCODESET, enc)) == (iconv_t)-1)
+ goto err;
+ } else *c2w = (iconv_t)-1;
break;
}
@@ -448,3 +420,21 @@
return 1;
}
+/*
+ * conv_end --
+ * Close the iconv descriptors, release the buffer.
+ *
+ * PUBLIC: void conv_end __P((SCR *));
+ */
+void
+conv_end (SCR *sp)
+{
+#if defined(USE_WIDECHAR) && defined(USE_ICONV)
+ int i;
+ for (i = 0; i <= IC_IE_CHAR2INT; ++i)
+ if (sp->conv.id[i] != (iconv_t)-1)
+ iconv_close(sp->conv.id[i]);
+ if (sp->cw.bp1.c != NULL)
+ free(sp->cw.bp1.c);
+#endif
+}
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/conv.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,20 +6,28 @@
*
* See the LICENSE file for redistribution information.
*
- * $Id: conv.h,v 1.28 2011/07/16 14:40:38 zy Exp $ (Berkeley) $Date: 2011/07/16 14:40:38 $
+ * $Id: conv.h,v 2.29 2011/12/04 04:06:45 zy Exp $
*/
+#ifdef USE_ICONV
+#include <iconv.h>
+#else
+typedef int iconv_t;
+#endif
+
#define KEY_COL(sp, ch) \
(INTISWIDE(ch) ? CHAR_WIDTH(sp, ch) > 0 ? CHAR_WIDTH(sp, ch) : \
1 : /* extra space */ \
KEY_LEN(sp,ch))
+enum { IC_FE_CHAR2INT, IC_FE_INT2CHAR, IC_IE_CHAR2INT };
+
struct _conv_win {
union {
char *c;
CHAR_T *wc;
} bp1;
- size_t blen1;
+ size_t blen1;
};
typedef int (*char2wchar_t)
@@ -33,5 +41,5 @@
char2wchar_t file2int;
wchar2char_t int2file;
char2wchar_t input2int;
- wchar2char_t int2disp;
+ iconv_t id[IC_IE_CHAR2INT + 1];
};
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: cut.c,v 10.11 2011/06/26 20:57:04 zy Exp $ (Berkeley) $Date: 2011/06/26 20:57:04 $";
+static const char sccsid[] = "$Id: cut.c,v 10.11 2011/06/26 20:57:04 zy Exp $";
#endif /* not lint */
#include <sys/types.h>
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/cut.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,7 +6,7 @@
*
* See the LICENSE file for redistribution information.
*
- * $Id: cut.h,v 10.9 2000/07/22 17:31:18 skimo Exp $ (Berkeley) $Date: 2000/07/22 17:31:18 $
+ * $Id: cut.h,v 10.9 2000/07/22 17:31:18 skimo Exp $
*/
typedef struct _texth TEXTH; /* TEXT list head structure. */
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/delete.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/delete.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/delete.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: delete.c,v 10.17 2001/06/25 15:19:09 skimo Exp $ (Berkeley) $Date: 2001/06/25 15:19:09 $";
+static const char sccsid[] = "$Id: delete.c,v 10.17 2001/06/25 15:19:09 skimo Exp $";
#endif /* not lint */
#include <sys/types.h>
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/encoding.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/encoding.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/encoding.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,11 +6,14 @@
*/
#ifndef lint
-static const char sccsid[] = "$Id: encoding.c,v 1.2 2011/08/13 22:58:03 zy Exp $ (Berkeley) $Date: 2011/08/13 22:58:03 $";
+static const char sccsid[] = "$Id: encoding.c,v 1.3 2011/12/03 02:22:20 zy Exp $";
#endif /* not lint */
#include <sys/types.h>
+int looks_utf8 __P((const char *, size_t));
+int looks_utf16 __P((const char *, size_t));
+
#define F 0 /* character never appears in text */
#define T 1 /* character appears in plain ASCII text */
#define I 2 /* character appears in ISO-8859 text */
@@ -73,13 +76,13 @@
int following;
if ((buf[i] & 0x20) == 0) /* 110xxxxx */
- if (buf[i] > '\xc1') /* C0, C1 */
+ if (buf[i] > '\xC1') /* C0, C1 */
following = 1;
else return -1;
else if ((buf[i] & 0x10) == 0) /* 1110xxxx */
following = 2;
else if ((buf[i] & 0x08) == 0) /* 11110xxx */
- if (buf[i] < '\xf5')
+ if (buf[i] < '\xF5')
following = 3;
else return -1; /* F5, F6, F7 */
else
@@ -123,19 +126,19 @@
if (nbytes < 2)
return 0;
- bom = ((u_char)buf[0] << 8) + (u_char)buf[1];
- if (bom == 0xfffe)
+ bom = (u_char)buf[0] << 8 ^ (u_char)buf[1];
+ if (bom == 0xFFFE)
bigend = 0;
- else if (bom == 0xfeff)
+ else if (bom == 0xFEFF)
bigend = 1;
else
return 0;
for (i = 2; i + 1 < nbytes; i += 2) {
if (bigend)
- c = (u_char)buf[i + 1] + 256 * (u_char)buf[i];
+ c = (u_char)buf[i] << 8 ^ (u_char)buf[i + 1];
else
- c = (u_char)buf[i] + 256 * (u_char)buf[i + 1];
+ c = (u_char)buf[i] ^ (u_char)buf[i + 1] << 8;
if (!following)
if (c < 0xD800 || c > 0xDFFF)
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: exf.c,v 10.53 2011/07/20 00:38:28 zy Exp $ (Berkeley) $Date: 2011/07/20 00:38:28 $";
+static const char sccsid[] = "$Id: exf.c,v 10.55 2011/12/04 04:06:45 zy Exp $";
#endif /* not lint */
#include <sys/param.h>
@@ -215,15 +215,15 @@
/*
* XXX
* A seat of the pants calculation: try to keep the file in
- * 15 pages or less. Don't use a page size larger than 10K
+ * 15 pages or less. Don't use a page size larger than 16K
* (vi should have good locality) or smaller than 1K.
*/
psize = ((sb.st_size / 15) + 1023) / 1024;
- if (psize > 10)
- psize = 10;
+ if (psize > 16)
+ psize = 16;
if (psize == 0)
psize = 1;
- psize *= 1024;
+ psize = p2roundup(psize) << 10;
F_SET(ep, F_DEVSET);
ep->mdev = sb.st_dev;
@@ -892,7 +892,7 @@
* Note that this code is harmless if you're using libc 4.6.x.
*/
if (LF_ISSET(FS_APPEND) && lseek(fd, (off_t)0, SEEK_END) < 0) {
- msgq(sp, M_SYSERR, name);
+ msgq(sp, M_SYSERR, "%s", name);
return (1);
}
#endif
@@ -1269,6 +1269,8 @@
o_set(sp, O_FILEENCODING, OS_STRDUP, "utf-16be", 0);
}
/* Fallback to locale encoding */
+
+ conv_enc(sp, O_FILEENCODING, 0);
#endif
}
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/exf.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,7 +6,7 @@
*
* See the LICENSE file for redistribution information.
*
- * $Id: exf.h,v 10.8 2011/10/27 00:35:26 zy Exp $ (Berkeley) $Date: 2011/10/27 00:35:26 $
+ * $Id: exf.h,v 10.8 2011/10/27 00:35:26 zy Exp $
*/
/* Undo direction. */
/*
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/extern.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/extern.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/extern.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -1,5 +1,6 @@
void conv_init __P((SCR *, SCR *));
int conv_enc __P((SCR *, int, char *));
+void conv_end __P((SCR *));
int cut __P((SCR *, CHAR_T *, MARK *, MARK *, int));
int cut_line __P((SCR *, recno_t, size_t, size_t, CB *));
void cut_close __P((GS *));
@@ -23,7 +24,7 @@
void v_key_ilookup __P((SCR *));
size_t v_key_len __P((SCR *, ARG_CHAR_T));
u_char *v_key_name __P((SCR *, ARG_CHAR_T));
-int v_key_val __P((SCR *, ARG_CHAR_T));
+e_key_t v_key_val __P((SCR *, ARG_CHAR_T));
int v_event_push __P((SCR *, EVENT *, CHAR_T *, size_t, u_int));
int v_event_get __P((SCR *, EVENT *, int, u_int32_t));
void v_event_err __P((SCR *, EVENT *));
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/gs.h
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/gs.h Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/gs.h Wed Dec 7 07:16:51 2011 (r228598)
@@ -6,7 +6,7 @@
*
* See the LICENSE file for redistribution information.
*
- * $Id: gs.h,v 10.35 2011/06/26 21:32:04 zy Exp $ (Berkeley) $Date: 2011/06/26 21:32:04 $
+ * $Id: gs.h,v 10.36 2011/12/02 18:45:06 zy Exp $
*/
#define TEMPORARY_FILE_STRING "/tmp" /* Default temporary file name. */
@@ -76,7 +76,7 @@
DB *msg; /* Message catalog DB. */
MSGH msgq; /* User message list. */
#define DEFAULT_NOPRINT '\1' /* Emergency non-printable character. */
- CHAR_T noprint; /* Cached, unprintable character. */
+ int noprint; /* Cached, unprintable character. */
char *tmp_bp; /* Temporary buffer. */
size_t tmp_blen; /* Temporary buffer size. */
@@ -106,16 +106,16 @@
CB dcb_store; /* Default cut buffer storage. */
LIST_HEAD(_cuth, _cb) cutq; /* Linked list of cut buffers. */
-#define MAX_BIT_SEQ 128 /* Max + 1 fast check character. */
+#define MAX_BIT_SEQ 0x7f /* Max + 1 fast check character. */
LIST_HEAD(_seqh, _seq) seqq; /* Linked list of maps, abbrevs. */
- bitstr_t bit_decl(seqb, MAX_BIT_SEQ);
+ bitstr_t bit_decl(seqb, MAX_BIT_SEQ + 1);
-#define MAX_FAST_KEY 254 /* Max fast check character.*/
+#define MAX_FAST_KEY 0xff /* Max fast check character.*/
#define KEY_LEN(sp, ch) \
- ((UCHAR_T)(ch) <= MAX_FAST_KEY ? \
+ (((ch) & ~MAX_FAST_KEY) == 0 ? \
sp->gp->cname[(unsigned char)ch].len : v_key_len(sp, ch))
#define KEY_NAME(sp, ch) \
- ((UCHAR_T)(ch) <= MAX_FAST_KEY ? \
+ (((ch) & ~MAX_FAST_KEY) == 0 ? \
sp->gp->cname[(unsigned char)ch].name : v_key_name(sp, ch))
struct {
u_char name[MAX_CHARACTER_COLUMNS + 1];
@@ -123,11 +123,9 @@
} cname[MAX_FAST_KEY + 1]; /* Fast lookup table. */
#define KEY_VAL(sp, ch) \
- ((UCHAR_T)(ch) <= MAX_FAST_KEY ? \
- sp->gp->special_key[(UCHAR_T)ch] : \
- (UCHAR_T)(ch) > sp->gp->max_special ? K_NOTUSED : v_key_val(sp,ch))
- CHAR_T max_special; /* Max special character. */
- u_char /* Fast lookup table. */
+ (((ch) & ~MAX_FAST_KEY) == 0 ? \
+ sp->gp->special_key[(unsigned char)ch] : v_key_val(sp,ch))
+ e_key_t /* Fast lookup table. */
special_key[MAX_FAST_KEY + 1];
/* Flags. */
Modified: soc2011/zy/nvi-iconv/head/contrib/nvi2/common/key.c
==============================================================================
--- soc2011/zy/nvi-iconv/head/contrib/nvi2/common/key.c Wed Dec 7 00:22:34 2011 (r228597)
+++ soc2011/zy/nvi-iconv/head/contrib/nvi2/common/key.c Wed Dec 7 07:16:51 2011 (r228598)
@@ -10,7 +10,7 @@
#include "config.h"
#ifndef lint
-static const char sccsid[] = "$Id: key.c,v 10.49 2011/06/26 00:52:41 zy Exp $ (Berkeley) $Date: 2011/06/26 00:52:41 $";
+static const char sccsid[] = "$Id: key.c,v 10.51 2011/12/02 18:52:34 zy Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -101,7 +101,7 @@
int
v_key_init(SCR *sp)
{
- CHAR_T ch;
+ int ch;
GS *gp;
KEYLIST *kp;
int cnt;
@@ -119,16 +119,12 @@
qsort(keylist, nkeylist, sizeof(keylist[0]), v_key_cmp);
/* Initialize the fast lookup table. */
- for (gp->max_special = 0, kp = keylist, cnt = nkeylist; cnt--; ++kp) {
- if (gp->max_special < kp->value)
- gp->max_special = kp->value;
- if (kp->ch <= MAX_FAST_KEY)
- gp->special_key[kp->ch] = kp->value;
- }
+ for (kp = keylist, cnt = nkeylist; cnt--; ++kp)
+ gp->special_key[kp->ch] = kp->value;
/* Find a non-printable character to use as a message separator. */
- for (ch = 1; ch != 0; ++ch) /* XXX quit if overflowed */
- if (!ISPRINT(ch)) {
+ for (ch = 1; ch <= UCHAR_MAX; ++ch)
+ if (!isprint(ch)) {
gp->noprint = ch;
break;
}
@@ -192,10 +188,13 @@
GS *gp;
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-soc-all
mailing list