diff options
Diffstat (limited to 'lib/functions.zsh')
-rw-r--r-- | lib/functions.zsh | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh index efb73a1bd..f9d4a9717 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -16,19 +16,28 @@ function take() { } function open_command() { + emulate -L zsh + setopt shwordsplit + local open_cmd # define the open command case "$OSTYPE" in - darwin*) open_cmd="open" ;; - cygwin*) open_cmd="cygstart" ;; - linux*) open_cmd="xdg-open" ;; + darwin*) open_cmd='open' ;; + cygwin*) open_cmd='cygstart' ;; + linux*) open_cmd='xdg-open' ;; + msys*) open_cmd='start ""' ;; *) echo "Platform $OSTYPE not supported" return 1 ;; esac - nohup $open_cmd "$@" &>/dev/null + # don't use nohup on OSX + if [[ "$OSTYPE" == darwin* ]]; then + $open_cmd "$@" &>/dev/null + else + nohup $open_cmd "$@" &>/dev/null + fi } # @@ -67,7 +76,7 @@ function try_alias_value() { # # Arguments: # 1. name - The variable to set -# 2. val - The default value +# 2. val - The default value # Return value: # 0 if the variable exists, 3 if it was set # @@ -81,12 +90,12 @@ function default() { # # Arguments: # 1. name - The env variable to set -# 2. val - The default value +# 2. val - The default value # Return value: # 0 if the env variable exists, 3 if it was set # function env_default() { - env | grep -q "^$1=" && return 0 + env | grep -q "^$1=" && return 0 export "$1=$2" && return 3 } @@ -101,7 +110,7 @@ zmodload zsh/langinfo # # By default, reserved characters and unreserved "mark" characters are # not escaped by this function. This allows the common usage of passing -# an entire URL in, and encoding just special characters in it, with +# an entire URL in, and encoding just special characters in it, with # the expectation that reserved and mark characters are used appropriately. # The -r and -m options turn on escaping of the reserved and mark characters, # respectively, which allows arbitrary strings to be fully escaped for @@ -111,8 +120,8 @@ zmodload zsh/langinfo # Returns nonzero if encoding failed. # # Usage: -# omz_urlencode [-r] [-m] <string> -# +# omz_urlencode [-r] [-m] [-P] <string> +# # -r causes reserved characters (;/?:@&=+$,) to be escaped # # -m causes "mark" characters (_.!~*''()-) to be escaped @@ -177,8 +186,8 @@ function omz_urlencode() { # URL-decode a string # # Decodes a RFC 2396 URL-encoded (%-escaped) string. -# This decodes the '+' and '%' escapes in the input string, and leaves -# other characters unchanged. Does not enforce that the input is a +# This decodes the '+' and '%' escapes in the input string, and leaves +# other characters unchanged. Does not enforce that the input is a # valid URL-encoded string. This is a convenience to allow callers to # pass in a full URL or similar strings and decode them for human # presentation. @@ -196,7 +205,7 @@ function omz_urldecode { local caller_encoding=$langinfo[CODESET] local LC_ALL=C export LC_ALL - + # Change + back to ' ' local tmp=${encoded_url:gs/+/ /} # Protect other escapes to pass through the printf unchanged @@ -220,4 +229,3 @@ function omz_urldecode { echo -E "$decoded" } - |