summaryrefslogtreecommitdiffstats
path: root/runtime/plugin/rrhelper.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-07-17 15:20:30 +0200
committerBram Moolenaar <Bram@vim.org>2010-07-17 15:20:30 +0200
commitc5604bc1656354af7404270e27441f2e8f70d785 (patch)
tree229eed4ddaadee9ffb0594ee104e2a3bd6c83038 /runtime/plugin/rrhelper.vim
parentf91787cb9adc47cadea5d17b08d075a15a2e00f4 (diff)
Better implementation of creating the Color Scheme menu. (Juergen Kraemer)
Diffstat (limited to 'runtime/plugin/rrhelper.vim')
-rw-r--r--runtime/plugin/rrhelper.vim70
1 files changed, 33 insertions, 37 deletions
diff --git a/runtime/plugin/rrhelper.vim b/runtime/plugin/rrhelper.vim
index 302177cb2d..b09cbc10b9 100644
--- a/runtime/plugin/rrhelper.vim
+++ b/runtime/plugin/rrhelper.vim
@@ -3,7 +3,7 @@
" Last Change: 2008 May 29
" Has this already been loaded?
-if exists("loaded_rrhelper")
+if exists("loaded_rrhelper") || !has("clientserver")
finish
endif
let loaded_rrhelper = 1
@@ -11,42 +11,38 @@ let loaded_rrhelper = 1
" Setup answers for a --remote-wait client who will assume
" a SetupRemoteReplies() function in the command server
-if has("clientserver")
- function SetupRemoteReplies()
- let cnt = 0
- let max = argc()
-
- let id = expand("<client>")
- if id == 0
- return
+function SetupRemoteReplies()
+ let cnt = 0
+ let max = argc()
+
+ let id = expand("<client>")
+ if id == 0
+ return
+ endif
+ while cnt < max
+ " Handle same file from more clients and file being more than once
+ " on the command line by encoding this stuff in the group name
+ let uniqueGroup = "RemoteReply_".id."_".cnt
+
+ " Path separators are always forward slashes for the autocommand pattern.
+ " Escape special characters with a backslash.
+ let f = substitute(argv(cnt), '\\', '/', "g")
+ if exists('*fnameescape')
+ let f = fnameescape(f)
+ else
+ let f = escape(f, " \t\n*?[{`$\\%#'\"|!<")
endif
- while cnt < max
- " Handle same file from more clients and file being more than once
- " on the command line by encoding this stuff in the group name
- let uniqueGroup = "RemoteReply_".id."_".cnt
-
- " Path separators are always forward slashes for the autocommand pattern.
- " Escape special characters with a backslash.
- let f = substitute(argv(cnt), '\\', '/', "g")
- if exists('*fnameescape')
- let f = fnameescape(f)
- else
- let f = escape(f, " \t\n*?[{`$\\%#'\"|!<")
- endif
- execute "augroup ".uniqueGroup
- execute "autocmd ".uniqueGroup." BufUnload ". f ." call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')"
- let cnt = cnt + 1
- endwhile
- augroup END
- endfunc
-
- function DoRemoteReply(id, cnt, group, file)
- call server2client(a:id, a:cnt)
- execute 'autocmd! '.a:group.' BufUnload '.a:file
- execute 'augroup! '.a:group
- endfunc
-
-endif
-
+ execute "augroup ".uniqueGroup
+ execute "autocmd ".uniqueGroup." BufUnload ". f ." call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')"
+ let cnt = cnt + 1
+ endwhile
+ augroup END
+endfunc
+
+function DoRemoteReply(id, cnt, group, file)
+ call server2client(a:id, a:cnt)
+ execute 'autocmd! '.a:group.' BufUnload '.a:file
+ execute 'augroup! '.a:group
+endfunc
" vim: set sw=2 sts=2 :