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