3b291322140a110355fb34dd90f43f5418bcc6ca

Author
Robby Russell <robby@planetargon.com>
Committer
Robby Russell <robby@planetargon.com>
Date

Message

Merge pull request #4300 from igordejanovic/vim-escape-fname

[vim-interaction plugin] Escape special chars in filenames.

Diff

 1diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh
 2index b0b9414cd2aac90e3403418c6b3e38e381cbcc6b..b774be342745ade466098e3158c0c3ccc5631524 100644
 3--- a/plugins/vim-interaction/vim-interaction.plugin.zsh
 4+++ b/plugins/vim-interaction/vim-interaction.plugin.zsh
 5@@ -4,17 +4,6 @@
 6 # Derek Wyatt (derek@{myfirstnamemylastname}.org
 7 # 
 8 
 9-function resolveFile
10-{
11-  if [ -f "$1" ]; then
12-    echo $(readlink -f "$1")
13-  elif [[ "${1#/}" == "$1" ]]; then
14-    echo "$PWD/$1"
15-  else
16-    echo $1
17-  fi
18-}
19-
20 function callvim
21 {
22   if [[ $# == 0 ]]; then
23@@ -48,13 +37,10 @@ EOH
24   if [[ ${before#:} != $before && ${before%<cr>} == $before ]]; then
25     before="$before<cr>"
26   fi
27-  local files=""
28-  for f in $@
29-  do
30-    files="$files $(resolveFile $f)"
31-  done
32-  if [[ -n $files ]]; then
33-    files=':args! '"$files<cr>"
34+  local files
35+  if [[ $# -gt 0 ]]; then
36+    # absolute path of files resolving symlinks (:A) and quoting special chars (:q)
37+    files=':args! '"${@:A:q}<cr>"
38   fi
39   cmd="$before$files$after"
40   gvim --remote-send "$cmd"