summaryrefslogtreecommitdiff
path: root/lib/functions.zsh
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2018-06-29 20:20:56 +0200
committerMarc Cornellà <marc.cornella@live.com>2018-06-30 21:13:08 +0200
commitf898ada8e3d25c7d1ea309b487711a4e0a2c07b6 (patch)
tree5121cf0e185de7e51bea559ac52e2a14048670e2 /lib/functions.zsh
parent12086593a432d754d9c28bf6a66a1196e79877a3 (diff)
downloadzsh-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/functions.zsh')
-rw-r--r--lib/functions.zsh7
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