diff src/ex_cmds.c @ 12297:98586656fcae v8.0.1028

patch 8.0.1028: MS-Windows: viminfo uses $VIM/_viminfo if $HOME not set commit https://github.com/vim/vim/commit/3d593c2dc97c5426316bf343910cad911b2f6b49 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Aug 31 20:42:18 2017 +0200 patch 8.0.1028: MS-Windows: viminfo uses $VIM/_viminfo if $HOME not set Problem: MS-Windows: viminfo uses $VIM/_viminfo if $HOME not set. (Yongwei Wu) Solution: Use vim_getenv() but check it's returning the default "C:/".
author Christian Brabandt <cb@256bit.org>
date Thu, 31 Aug 2017 20:45:04 +0200
parents 59c1e09cf1a9
children 68d7bc045dbe
line wrap: on
line diff
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2098,11 +2098,16 @@ viminfo_filename(char_u *file)
 	else if ((file = find_viminfo_parameter('n')) == NULL || *file == NUL)
 	{
 #ifdef VIMINFO_FILE2
-	    /* don't use $HOME when not defined (turned into "c:/"!). */
 # ifdef VMS
 	    if (mch_getenv((char_u *)"SYS$LOGIN") == NULL)
 # else
+#  ifdef MSWIN
+	    /* Use $VIM only if $HOME is the default "C:/". */
+	    if (STRCMP(vim_getenv((char_u *)"HOME", NULL), "C:/") == 0
+		    && mch_getenv((char_u *)"HOME") == NULL)
+#  else
 	    if (mch_getenv((char_u *)"HOME") == NULL)
+#  endif
 # endif
 	    {
 		/* don't use $VIM when not available. */