summaryrefslogtreecommitdiff
path: root/lib/functions.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/functions.zsh')
-rw-r--r--lib/functions.zsh36
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"
}
-