diff --git a/7.4.906 b/7.4.906 new file mode 100644 index 0000000..e3d7798 --- /dev/null +++ b/7.4.906 @@ -0,0 +1,112 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.906 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.906 +Problem: On MS-Windows the viminfo file is (always) given the hidden + attribute. (raulnac) +Solution: Check the hidden attribute in a different way. (Ken Takata) +Files: src/ex_cmds.c, src/os_win32.c, src/os_win32.pro + + +*** ../vim-7.4.905/src/ex_cmds.c 2015-08-11 19:13:55.134175736 +0200 +--- src/ex_cmds.c 2015-11-02 14:32:36.072850890 +0100 +*************** +*** 1795,1801 **** + struct stat st_old; /* mch_stat() of existing viminfo file */ + #endif + #ifdef WIN3264 +! long perm = -1; + #endif + + if (no_viminfo()) +--- 1795,1801 ---- + struct stat st_old; /* mch_stat() of existing viminfo file */ + #endif + #ifdef WIN3264 +! int hidden = FALSE; + #endif + + if (no_viminfo()) +*************** +*** 1858,1864 **** + #endif + #ifdef WIN3264 + /* Get the file attributes of the existing viminfo file. */ +! perm = mch_getperm(fname); + #endif + + /* +--- 1858,1864 ---- + #endif + #ifdef WIN3264 + /* Get the file attributes of the existing viminfo file. */ +! hidden = mch_ishidden(fname); + #endif + + /* +*************** +*** 2033,2039 **** + + #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 + } +--- 2033,2039 ---- + + #ifdef WIN3264 + /* If the viminfo file was hidden then also hide the new file. */ +! if (hidden) + mch_hide(fname); + #endif + } +*** ../vim-7.4.905/src/os_win32.c 2015-10-30 16:46:50.504694378 +0100 +--- src/os_win32.c 2015-11-02 14:43:50.916893452 +0100 +*************** +*** 3098,3103 **** +--- 3098,3117 ---- + } + + /* ++ * Return TRUE if file "name" exists and is hidden. ++ */ ++ int ++ mch_ishidden(char_u *name) ++ { ++ int f = win32_getattrs(name); ++ ++ if (f == -1) ++ return FALSE; /* file does not exist at all */ ++ ++ return (f & FILE_ATTRIBUTE_HIDDEN) != 0; ++ } ++ ++ /* + * return TRUE if "name" is a directory + * return FALSE if "name" is not a directory or upon error + */ +*** ../vim-7.4.905/src/version.c 2015-11-02 13:28:43.577894118 +0100 +--- src/version.c 2015-11-02 14:35:23.938871147 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 906, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +81. At social functions you introduce your husband as "my domain server." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///