changeset 601:bc7ec0f1f7f3 v7.0170

updated for version 7.0170
author vimboss
date Wed, 14 Dec 2005 22:08:35 +0000
parents 3871315b26ca
children 111509d2767a
files runtime/doc/todo.txt runtime/doc/version7.txt src/ex_cmds.c src/ex_cmds.h
diffstat 4 files changed, 39 insertions(+), 13 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 13
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Dec 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,13 +30,12 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-ml_get error with specific vimrc and lots of plugins. (Tomi Mickelsson)
-
-Win32: preserve the hidden attribute of the viminfo file.
+Using pipes to decrypt text still doesn't work, can't get the password.
+    :set shell=/bin/sh noshelltemp
+    :%!gpg --decrypt --no-tty --passphrase-fd 2
 
-Add ":startgreplace" to do "gR", like ":startreplace" does "R".
-
-Alt-mousekey is currently ignored.  Use it for Visual/select block?
+When inside input() and using "CTRL-R =" causing an exception the command line
+isn't abandoned. (Yukihiro Nakadaira)
 
 When 'delcombine' is set in Select mode before a character with a combining
 char the combining char is deleted when it shouldn't. (Tony Mechelynck, Nov
--- 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 13
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Dec 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -367,6 +367,9 @@ CTRL-W <Enter>		In the quickfix window: 
 
 |at| and |it| text objects select a block of text between HTML or XML tags.
 
+<A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
+<A-RightMouse> ('mousemodel' "extend")
+			Make a blockwise selection. |<A-LeftMouse>|
 
 Insert mode commands: ~
 
@@ -407,6 +410,7 @@ Ex commands: ~
 Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
 
 |:startreplace|		Start Replace mode. (Charles Campbell)
+|:startgreplace|	Start Virtual Replace mode.
 
 |:0file|		Removes the name of the buffer. (Charles Campbell)
 
@@ -431,6 +435,7 @@ Win32: The ":winpos" command now also wo
 |:cexpr|		Read error messages from a Vim expression (Yegappan
 			Lakshmanan).
 
+
 Ex command modifiers: ~
 
 |:keepalt|		Do not change the alternate file.
@@ -902,6 +907,9 @@ When starting to edit a new file and the
 then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
 a hint that something might be wrong.
 
+Win32: Preserve the hidden attribute of the viminfo file.
+
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1656,6 +1656,9 @@ write_viminfo(file, forceit)
     int		shortname = FALSE;	/* use 8.3 file name */
     struct stat	st_old;		/* mch_stat() of existing viminfo file */
 #endif
+#ifdef WIN3264
+    long	perm = -1;
+#endif
 
     if (no_viminfo())
 	return;
@@ -1713,6 +1716,10 @@ write_viminfo(file, forceit)
 	    goto end;
 	}
 #endif
+#ifdef WIN3264
+	/* Get the file attributes of the existing viminfo file. */
+	perm = mch_getperm(fname);
+#endif
 
 	/*
 	 * Make tempname.
@@ -1803,15 +1810,16 @@ write_viminfo(file, forceit)
 	    int	fd;
 
 	    /* Use mch_open() to be able to use O_NOFOLLOW and set file
-	     * protection same as original file, but strip s-bit. */
+	     * protection:
+	     * Unix: same as original file, but strip s-bit.
+	     * Others: r&w for user only. */
 #ifdef UNIX
 	    fd = mch_open((char *)tempname,
 		    O_CREAT|O_EXTRA|O_EXCL|O_WRONLY|O_NOFOLLOW,
 				       (int)((st_old.st_mode & 0777) | 0600));
 #else
 	    fd = mch_open((char *)tempname,
-		    O_CREAT|O_EXTRA|O_EXCL|O_WRONLY|O_NOFOLLOW,
-				       0600);	/* r&w for user only */
+		    O_CREAT|O_EXTRA|O_EXCL|O_WRONLY|O_NOFOLLOW, 0600);
 #endif
 	    if (fd < 0)
 		fp_out = NULL;
@@ -1866,12 +1874,21 @@ write_viminfo(file, forceit)
     if (fp_in != NULL)
     {
 	fclose(fp_in);
+
 	/*
-	 * In case of an error, don't overwrite the original viminfo file.
+	 * In case of an error keep the original viminfo file.
+	 * Otherwise rename the newly written file.
 	 */
 	if (viminfo_errcnt || vim_rename(tempname, fname) == -1)
 	    mch_remove(tempname);
-    }
+
+#ifdef WIN3264
+	/* If the viminfo file was hidden then also hide the new file. */
+	if (perm > 0 && (perm & FILE_ATTRIBUTE_HIDDEN))
+	    mch_hide(fname);
+#endif
+    }
+
 end:
     vim_free(fname);
     vim_free(tempname);
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -781,6 +781,8 @@ EX(CMD_stag,		"stag",		ex_stag,
 			RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
 EX(CMD_startinsert,	"startinsert",	ex_startinsert,
 			BANG|TRLBAR|CMDWIN),
+EX(CMD_startgreplace,	"startgreplace", ex_startinsert,
+			BANG|TRLBAR|CMDWIN),
 EX(CMD_startreplace,	"startreplace",	ex_startinsert,
 			BANG|TRLBAR|CMDWIN),
 EX(CMD_stopinsert,	"stopinsert",	ex_stopinsert,