0
0
mirror of https://github.com/vim/vim.git synced 2025-09-04 21:33:48 -04:00

patch 9.1.0393: 'viewdir' not respecting $XDG_CONFIG_HOME

Problem:  'viewdir' not respecting $XDG_CONFIG_HOME
          (Danilo Rezende, after v9.1.327)
Solution: adjust 'viewdir' option when enabling XDG config mode

fixes: #14680
closes: #14708

Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt 2024-05-04 09:48:15 +02:00
parent 7edde3f39e
commit c3e6e393cb
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
6 changed files with 27 additions and 6 deletions

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2024 Mar 29 *options.txt* For Vim version 9.1. Last change: 2024 May 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -6683,7 +6683,8 @@ A jump table for the options with a short description can be found at |Q_op|.
< <
*'runtimepath'* *'rtp'* *vimfiles* *'runtimepath'* *'rtp'* *vimfiles*
'runtimepath' 'rtp' string (default: 'runtimepath' 'rtp' string (default:
Unix: "$HOME/.vim, Unix: "$HOME/.vim or
$XDG_CONFIG_HOME/vim,
$VIM/vimfiles, $VIM/vimfiles,
$VIMRUNTIME, $VIMRUNTIME,
$VIM/vimfiles/after, $VIM/vimfiles/after,
@ -6735,6 +6736,8 @@ A jump table for the options with a short description can be found at |Q_op|.
And any other file searched for with the |:runtime| command. And any other file searched for with the |:runtime| command.
For $XDG_CONFIG_HOME see |xdg-base-dir|.
The defaults for most systems are setup to search five locations: The defaults for most systems are setup to search five locations:
1. In your home directory, for your personal preferences. 1. In your home directory, for your personal preferences.
2. In a system-wide Vim directory, for preferences from the system 2. In a system-wide Vim directory, for preferences from the system
@ -8986,13 +8989,15 @@ A jump table for the options with a short description can be found at |Q_op|.
*'viewdir'* *'vdir'* *'viewdir'* *'vdir'*
'viewdir' 'vdir' string (default for Amiga: "home:vimfiles/view", 'viewdir' 'vdir' string (default for Amiga: "home:vimfiles/view",
for Win32: "$HOME/vimfiles/view", for Win32: "$HOME/vimfiles/view",
for Unix: "$HOME/.vim/view", for Unix: "$HOME/.vim/view" or
"$XDG_CONFIG_HOME/vim/view"
for macOS: "$VIM/vimfiles/view", for macOS: "$VIM/vimfiles/view",
for VMS: "sys$login:vimfiles/view") for VMS: "sys$login:vimfiles/view")
global global
{not available when compiled without the |+mksession| {not available when compiled without the |+mksession|
feature} feature}
Name of the directory where to store files for |:mkview|. Name of the directory where to store files for |:mkview|.
For $XDG_CONFIG_HOME see |xdg-base-dir|.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 9.1. Last change: 2024 Apr 21 *starting.txt* For Vim version 9.1. Last change: 2024 May 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1119,8 +1119,8 @@ feature backward compatible). However, if you want to migrate to use
and `~/.vim/vimrc` file. and `~/.vim/vimrc` file.
*xdg-runtime* *xdg-runtime*
When the |xdg-vimrc| is used the |'runtimepath'| will be modified accordingly When the |xdg-vimrc| is used the 'runtimepath' and 'packpath' options will be
to respect the |xdg-base-dir|: > modified accordingly to respect the |xdg-base-dir|: >
"$XDG_CONFIG_HOME/vim,$VIMRUNTIME,/after,$XDG_CONFIG_HOME/vim/after" "$XDG_CONFIG_HOME/vim,$VIMRUNTIME,/after,$XDG_CONFIG_HOME/vim/after"
< <

View File

@ -417,6 +417,14 @@ set_init_xdg_rtp(void)
options[opt_idx].def_val[VI_DEFAULT] = xdg_rtp; options[opt_idx].def_val[VI_DEFAULT] = xdg_rtp;
p_pp = xdg_rtp; p_pp = xdg_rtp;
#if defined(XDG_VDIR) && defined(FEAT_SESSION)
if ((opt_idx = findoption((char_u *)"viewdir")) < 0)
goto theend;
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)XDG_VDIR;
p_vdir = (char_u *)XDG_VDIR;
#endif
theend: theend:
vim_free(vimrc1); vim_free(vimrc1);
vim_free(vimrc2); vim_free(vimrc2);

View File

@ -347,6 +347,8 @@ typedef struct dsc$descriptor DESC;
# define DFLT_VDIR "sys$login:vimfiles/view" # define DFLT_VDIR "sys$login:vimfiles/view"
# else # else
# define DFLT_VDIR "$HOME/.vim/view" // default for 'viewdir' # define DFLT_VDIR "$HOME/.vim/view" // default for 'viewdir'
# define XDG_VDIR (mch_getenv("XDG_CONFIG_HOME") ? \
"$XDG_CONFIG_HOME/vim/view" : "~/.config/vim/view")
# endif # endif
#endif #endif

View File

@ -80,6 +80,7 @@ func Test_xdg_runtime_files()
call assert_match('XfakeHOME/\.vimrc', $MYVIMRC) call assert_match('XfakeHOME/\.vimrc', $MYVIMRC)
call filter(g:, {idx, _ -> idx =~ '^rc'}) call filter(g:, {idx, _ -> idx =~ '^rc'})
call assert_equal(#{rc_one: 'one', rc: '.vimrc'}, g:) call assert_equal(#{rc_one: 'one', rc: '.vimrc'}, g:)
call assert_match('XfakeHOME/\.vim/view', &viewdir)
call writefile(v:errors, 'Xresult') call writefile(v:errors, 'Xresult')
quit quit
END END
@ -94,6 +95,7 @@ func Test_xdg_runtime_files()
call assert_match('XfakeHOME/\.vim/vimrc', $MYVIMRC) call assert_match('XfakeHOME/\.vim/vimrc', $MYVIMRC)
call filter(g:, {idx, _ -> idx =~ '^rc'}) call filter(g:, {idx, _ -> idx =~ '^rc'})
call assert_equal(#{rc_two: 'two', rc: '.vim/vimrc'}, g:) call assert_equal(#{rc_two: 'two', rc: '.vim/vimrc'}, g:)
call assert_match('XfakeHOME/\.vim/view', &viewdir)
call writefile(v:errors, 'Xresult') call writefile(v:errors, 'Xresult')
quit quit
END END
@ -112,6 +114,7 @@ func Test_xdg_runtime_files()
call assert_match('XfakeHOME/\.config/vim/vimrc', $MYVIMRC, msg) call assert_match('XfakeHOME/\.config/vim/vimrc', $MYVIMRC, msg)
call filter(g:, {idx, _ -> idx =~ '^rc'}) call filter(g:, {idx, _ -> idx =~ '^rc'})
call assert_equal(#{rc_three: 'three', rc: '.config/vim/vimrc'}, g:) call assert_equal(#{rc_three: 'three', rc: '.config/vim/vimrc'}, g:)
call assert_match('XfakeHOME/\.config/vim/view', &viewdir)
call writefile(v:errors, 'Xresult') call writefile(v:errors, 'Xresult')
quit quit
END END
@ -128,6 +131,7 @@ func Test_xdg_runtime_files()
call assert_match('XfakeHOME/xdg/vim/vimrc', $MYVIMRC, msg) call assert_match('XfakeHOME/xdg/vim/vimrc', $MYVIMRC, msg)
call filter(g:, {idx, _ -> idx =~ '^rc'}) call filter(g:, {idx, _ -> idx =~ '^rc'})
call assert_equal(#{rc_four: 'four', rc: 'xdg/vim/vimrc'}, g:) call assert_equal(#{rc_four: 'four', rc: 'xdg/vim/vimrc'}, g:)
call assert_match('XfakeHOME/xdg/vim/view, &viewdir)
call writefile(v:errors, 'Xresult') call writefile(v:errors, 'Xresult')
quit quit
END END

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
393,
/**/ /**/
392, 392,
/**/ /**/