Array of unescaped and unquoted arguments.
Array of urls or file names that inserted in the place of %f, %F, %u or %U field codes. For %f and %u only the first element of array is used. For %f and %F every url started with 'file://' will be replaced with normal path.
Icon name used to substitute %i field code by --icon iconName.
Name of application used that inserted in the place of %c field code.
Name of desktop file that inserted in the place of %k field code.
DesktopExecException if command line contains unknown field code.
assert(expandExecArgs( ["program path", "%%f", "%%i", "%D", "--deprecated=%d", "%n", "%N", "%m", "%v", "--file=%f", "%i", "%F", "--myname=%c", "--mylocation=%k", "100%%"], ["one"], "folder", "program", "location" ) == ["program path", "%f", "%i", "--file=one", "--icon", "folder", "one", "--myname=program", "--mylocation=location", "100%"]); assert(expandExecArgs(["program path", "many%%%%"]) == ["program path", "many%%"]); assert(expandExecArgs(["program path", "%f"]) == ["program path"]); assert(expandExecArgs(["program path", "%f%%%f"], ["file"]) == ["program path", "file%file"]); assert(expandExecArgs(["program path", "%f"], ["file:///usr/share"]) == ["program path", "/usr/share"]); assert(expandExecArgs(["program path", "%u"], ["file:///usr/share"]) == ["program path", "file:///usr/share"]); assert(expandExecArgs(["program path"], ["one", "two"]) == ["program path"]); assert(expandExecArgs(["program path", "%f"], ["one", "two"]) == ["program path", "one"]); assert(expandExecArgs(["program path", "%F"], ["one", "two"]) == ["program path", "one", "two"]); assert(expandExecArgs(["program path", "%F"], ["file://one", "file://two"]) == ["program path", "one", "two"]); assert(expandExecArgs(["program path", "%U"], ["file://one", "file://two"]) == ["program path", "file://one", "file://two"]); assert(expandExecArgs(["program path", "--location=%k", "--myname=%c"]) == ["program path", "--location=", "--myname="]); assert(expandExecArgs(["program path", "%k", "%c"]) == ["program path", "", ""]); assertThrown!DesktopExecException(expandExecArgs(["program name", "%y"])); assertThrown!DesktopExecException(expandExecArgs(["program name", "--file=%x"])); assertThrown!DesktopExecException(expandExecArgs(["program name", "--files=%F"]));
Expand Exec arguments (usually returned by unquoteExec) replacing field codes with given values, making the array suitable for passing to spawnProcess. Deprecated field codes are ignored. Note: Returned array may be empty and must be checked before passing to spawning the process.