diff options
author | Marc Cornellà <marc.cornella@live.com> | 2015-11-30 21:08:40 +0100 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2015-11-30 21:21:28 +0100 |
commit | afdfe2391eeab13f2480a88514af895ce660d30c (patch) | |
tree | 72c70b63e21d8d57ecb90ad6baf4addc8b9ccab6 /lib/functions.zsh | |
parent | 0a79f1e836d6096ec67deabca8105f60b124cbbe (diff) | |
download | zsh-afdfe2391eeab13f2480a88514af895ce660d30c.tar.gz zsh-afdfe2391eeab13f2480a88514af895ce660d30c.tar.bz2 zsh-afdfe2391eeab13f2480a88514af895ce660d30c.zip |
Add empty string parameter to start command
Otherwise `start` will confuse the first parameter as the title of
a new command prompt if the parameter contains whitespace. That is
because the command to be run will be:
start "abc def"
which opens a new command prompt window with the title "abc def".
With the added empty string we force the start command to interpret
the passed parameter as the file / command:
start "" "abc def"
which will be interpreted like `""` is the title and the rest is
the file or command to start.
-------
**NOTE:** this wouldn't be necessary if the start script in msys
was defined differently; that is, if it had the empty string
already incorporated in the script (/usr/bin/start), like so:
```diff
-cmd //c start "${@//&/^&}"
+cmd //c start "" "${@//&/^&}"
```
Notice however that this would make it impossible to use start
setting a different title, so it's probably best to leave it as is.
More info: http://sourceforge.net/p/msys2/tickets/14/
-------
The change `${(z)open_cmd}` is necessary to force zsh to split the
variable by the spaces and interpret it as separate words.
More info: http://zsh.sourceforge.net/FAQ/zshfaq03.html#l17
Diffstat (limited to 'lib/functions.zsh')
-rw-r--r-- | lib/functions.zsh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh index 1623df2bd..bbdbea5cb 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -23,7 +23,7 @@ function open_command() { darwin*) open_cmd="open" ;; cygwin*) open_cmd="cygstart" ;; linux*) open_cmd="xdg-open" ;; - msys*) open_cmd="start" ;; + msys*) open_cmd="start \"\"" ;; *) echo "Platform $OSTYPE not supported" return 1 ;; @@ -33,7 +33,7 @@ function open_command() { if [[ "$OSTYPE" == darwin* ]]; then $open_cmd "$@" &>/dev/null else - nohup $open_cmd "$@" &>/dev/null + nohup ${(z)open_cmd} "$@" &>/dev/null fi } |