diff options
| author | Marc Cornellà <marc.cornella@live.com> | 2018-06-29 20:20:56 +0200 | 
|---|---|---|
| committer | Marc Cornellà <marc.cornella@live.com> | 2018-06-30 21:13:08 +0200 | 
| commit | f898ada8e3d25c7d1ea309b487711a4e0a2c07b6 (patch) | |
| tree | 5121cf0e185de7e51bea559ac52e2a14048670e2 /lib | |
| parent | 12086593a432d754d9c28bf6a66a1196e79877a3 (diff) | |
| download | zsh-f898ada8e3d25c7d1ea309b487711a4e0a2c07b6.tar.gz zsh-f898ada8e3d25c7d1ea309b487711a4e0a2c07b6.tar.bz2 zsh-f898ada8e3d25c7d1ea309b487711a4e0a2c07b6.zip | |
open_command: fix and improve command for WSL
- Add double quotes to command so that the next argument isn't
  interpreted as the title for the start command.
- If the first argument is a valid path, convert it to Windows path
  notation. If `wslpath` fails—because it's a path from inside WSL,
  which cannot be converted to Windows path notation— fail with an
  error code.
  This last circumstance will show an error like so:
    wslpath: path: Result not representable
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/functions.zsh | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/lib/functions.zsh b/lib/functions.zsh index f448dbce8..dd8311611 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -22,9 +22,10 @@ function open_command() {    case "$OSTYPE" in      darwin*)  open_cmd='open' ;;      cygwin*)  open_cmd='cygstart' ;; -    linux*)   [[ $(uname -a) =~ "Microsoft" ]] && \ -                open_cmd='cmd.exe /c start' || \ -                open_cmd='xdg-open' ;; +    linux*)   ! [[ $(uname -a) =~ "Microsoft" ]] && open_cmd='xdg-open' || { +                open_cmd='cmd.exe /c start ""' +                [[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 } +              } ;;      msys*)    open_cmd='start ""' ;;      *)        echo "Platform $OSTYPE not supported"                return 1 | 
