From owner-svn-soc-all@FreeBSD.ORG Wed Dec 7 07:16:54 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 0ED21106564A for ; Wed, 7 Dec 2011 07:16:52 +0000 (UTC) (envelope-from zy@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 07 Dec 2011 07:16:52 +0000 Date: Wed, 07 Dec 2011 07:16:52 +0000 From: zy@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20111207071652.0ED21106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r228598 - in soc2011/zy/nvi-iconv/head/contrib/nvi2: . build catalog cl common docs/man ex regex vi X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Dec 2011 07:16:54 -0000 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 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 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 @@ -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 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 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 @@ -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 @@ -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 @@ -30,19 +32,15 @@ #ifdef USE_ICONV #include -#include - #define LANGCODESET nl_langinfo(CODESET) #else -typedef int iconv_t; - #define LANGCODESET "" #endif #include #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 +#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 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 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 +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 @@ -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 @@ -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 ***