changeset 597:b9975513fe24 v7.0169

updated for version 7.0169
author vimboss
date Tue, 13 Dec 2005 20:09:08 +0000
parents e612bbdb670f
children 05c67faedc8b
files runtime/doc/todo.txt runtime/doc/version7.txt src/eval.c src/ex_cmds.h
diffstat 4 files changed, 21 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Dec 12
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Dec 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,14 +30,6 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Patch from Yasuhiro Matsumoto: ":e ++enc=xxx" keeps encoding for conversion
-errors and illegal bytes.  Make default to replace bad bytes/characters with
-'?' and allow for two alternatives:
-	:e ++enc=xxx ++bad=keep foo.txt
-	:e ++enc=xxx ++bad=drop foo.txt
-	:e ++enc=xxx ++bad=? foo.txt
-(patch 6 December)
-
 ml_get error with specific vimrc and lots of plugins. (Tomi Mickelsson)
 
 Win32: preserve the hidden attribute of the viminfo file.
@@ -55,6 +47,7 @@ ccomplete:
   characters, advance to the first match instead of removing the popup menu.
   If there is no match remove the selection. (Yegappan Lakshmanan)
 - Complete the longest common match instead of the first match?
+    For all kinds of completions?  Configurable?
 - !_TAG_FILE_FORMAT and it's ilk are listed in the global completions
 - When completing something that is a structure, add the "." or "->".
 - When a typedef or struct is local to a file only use it in that file?
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Dec 12
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Dec 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -440,6 +440,16 @@ Ex command modifiers: ~
 |:sandbox|		Execute a command in the sandbox.
 
 
+Ex command arguments: ~
+
+|++bad|			Specify what happens with characters that can't be
+			converted and illegal bytes. (code example by Yasuhiro
+			Matsumoto)
+			Also, when a conversion error occurs or illegal bytes
+			are found include the line number in the error
+			message.
+
+
 New and extended functions: ~
 
 |add()|			append an item to a List
--- a/src/eval.c
+++ b/src/eval.c
@@ -15712,6 +15712,8 @@ set_cmdarg(eap, oldarg)
 # ifdef FEAT_MBYTE
     if (eap->force_enc != 0)
 	len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
+    if (eap->bad_char != 0)
+	len += (unsigned)STRLEN(eap->cmd + eap->bad_char) + 7;
 # endif
 
     newval = alloc(len + 1);
@@ -15731,6 +15733,9 @@ set_cmdarg(eap, oldarg)
     if (eap->force_enc != 0)
 	sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
 					       eap->cmd + eap->force_enc);
+    if (eap->bad_char != 0)
+	sprintf((char *)newval + STRLEN(newval), " ++bad=%s",
+					       eap->cmd + eap->bad_char);
 # endif
     vimvars[VV_CMDARG].vv_str = newval;
     return oldval;
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -996,9 +996,10 @@ struct exarg
     int		amount;		/* number of '>' or '<' for shift command */
     int		regname;	/* register name (NUL if none) */
     int		force_bin;	/* 0, FORCE_BIN or FORCE_NOBIN */
-    int		force_ff;	/* forced 'fileformat' (index in cmd[]) */
+    int		force_ff;	/* ++ff= argument (index in cmd[]) */
 #ifdef FEAT_MBYTE
-    int		force_enc;	/* forced 'encoding' (index in cmd[]) */
+    int		force_enc;	/* ++enc= argument (index in cmd[]) */
+    int		bad_char;	/* ++bad= argument (index in cmd[]) */
 #endif
 #ifdef FEAT_USR_CMDS
     int		useridx;	/* user command index */