From 1eb33969220b267cf45adb286f0b7b6d14805eff Mon Sep 17 00:00:00 2001 From: Scott Prager Date: Wed, 15 Apr 2015 13:05:30 -0400 Subject: unify jobstart, termopen, and system interfaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For any of these functions, if {cmd} is a string, execute "&shell &shellcmdflag '{cmd}'", or simply {cmd} if it's a list. In termopen(), if the 'name' option is not supplied, try to guess using '{cmd}' (string) or {cmd}[0] (list). Simplify ex_terminal to use the string form of termopen(). termopen: get name from argument Convert list_to_argv to tv_to_argv. Helped-by: Björn Linse <@bfredl> Helped-by: oni-link Helped-by: Thiago de Arruda <@tarruda> --- test/functional/shell/viml_system_spec.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'test/functional/shell') diff --git a/test/functional/shell/viml_system_spec.lua b/test/functional/shell/viml_system_spec.lua index 922770ad42..bd47d31a14 100644 --- a/test/functional/shell/viml_system_spec.lua +++ b/test/functional/shell/viml_system_spec.lua @@ -44,7 +44,7 @@ describe('system()', function() eq(127, eval('v:shell_error')) end) - describe('executes shell function', function() + describe('executes shell function if passed a string', function() local screen before_each(function() @@ -192,6 +192,13 @@ describe('system()', function() end) end) end + + describe('command passed as a list', function() + it('does not execute &shell', function() + eq('* $NOTHING ~/file', + eval("system(['echo', '-n', '*', '$NOTHING', '~/file'])")) + end) + end) end) describe('systemlist()', function() -- cgit