aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vim/autoload/argument.vim8
-rw-r--r--vim/autoload/option.vim6
-rw-r--r--vim/vimrc14
3 files changed, 13 insertions, 15 deletions
diff --git a/vim/autoload/argument.vim b/vim/autoload/argument.vim
deleted file mode 100644
index 85d75eb1..00000000
--- a/vim/autoload/argument.vim
+++ /dev/null
@@ -1,8 +0,0 @@
-" Escape a single argument for use on an Ex command line; essentially
-" a backport of fnameescape() for versions before v7.1.299
-"
-function! argument#Escape(argument) abort
- return exists('*fnameescape')
- \ ? fnameescape(a:argument)
- \ : escape(a:argument, "\n\r\t".' *?[{`$\%#''"|!<')
-endfunction
diff --git a/vim/autoload/option.vim b/vim/autoload/option.vim
index 5ff44ced..c44cf94b 100644
--- a/vim/autoload/option.vim
+++ b/vim/autoload/option.vim
@@ -9,3 +9,9 @@ function! option#Split(expr, ...) abort
let parts = split(a:expr, '\\\@<!,[, ]*', keepempty)
return map(parts, 'substitute(v:val, ''\\,'', '','', ''g'')')
endfunction
+
+" Escape the right-hand side of a :set option value
+"
+function! option#Escape(expr) abort
+ return escape(a:expr, ' |"\')
+endfunction
diff --git a/vim/vimrc b/vim/vimrc
index 2328bb11..013311b9 100644
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -99,7 +99,7 @@ scriptencoding utf-8
" list becomes MYVIM.
"
if exists('$MYVIM') && $MYVIM !=# ''
- execute 'set runtimepath^='.argument#Escape(option#item#Escape($MYVIM, 1))
+ execute 'set runtimepath^='.option#Escape(option#item#Escape($MYVIM, 1))
elseif &runtimepath !=# ''
let $MYVIM = option#Split(&runtimepath)[0]
endif
@@ -133,7 +133,7 @@ command! -bang -bar -complete=dir -nargs=1 CreatePath
"
" <https://github.com/vim/vim/releases/tag/v8.1.0716>
"
-execute 'set viminfo+='.argument#Escape('n'.$MYVIM.'/viminfo')
+execute 'set viminfo+='.option#Escape('n'.$MYVIM.'/viminfo')
CreatePath $MYVIM
" Speaking of recorded data in viminfo files, the default Vim limit of a mere
@@ -179,7 +179,7 @@ set history=10000
" 'backupfullname', 'swapfilefullname' would have been clearer.
"
set backup
-execute 'set backupdir^='.argument#Escape(option#item#Escape(
+execute 'set backupdir^='.option#Escape(option#item#Escape(
\ $MYVIM.'/backup'.(has#('patch-8.1.251') ? '//' : ''),
\))
CreatePath! $MYVIM/backup
@@ -219,7 +219,7 @@ endif
" apply path#Create() to attempt to create the path, if needed.
"
execute 'set directory^='
- \.argument#Escape(option#item#Escape($MYVIM.'/swap//'))
+ \.option#Escape(option#item#Escape($MYVIM.'/swap//'))
CreatePath! $MYVIM/swap
" Keep tracked undo history for files permanently, in a dedicated cache
@@ -238,7 +238,7 @@ CreatePath! $MYVIM/swap
if has#('persistent_undo')
set undofile
execute 'set undodir^='
- \.argument#Escape(option#item#Escape($MYVIM.'/undo//'))
+ \.option#Escape(option#item#Escape($MYVIM.'/undo//'))
CreatePath! $MYVIM/undo
endif
@@ -357,9 +357,9 @@ set dictionary^=/usr/share/dict/words
let s:ref = $MYVIM.'/ref'
try
execute 'set dictionary^='
- \.argument#Escape(option#item#Escape(s:ref.'/dictionary.txt'))
+ \.option#Escape(option#item#Escape(s:ref.'/dictionary.txt'))
execute 'set thesaurus^='
- \.argument#Escape(option#item#Escape(s:ref.'/thesaurus.txt'))
+ \.option#Escape(option#item#Escape(s:ref.'/thesaurus.txt'))
catch /^Vim\%((\a\+)\)\=:E474:/
endtry