aboutsummaryrefslogtreecommitdiff
path: root/sh
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2017-01-02 15:19:09 +1300
committerTom Ryder <tom@sanctum.geek.nz>2017-01-02 15:19:30 +1300
commit2a29d5e6873ebe0fe46cf7a0bd007f1dd6a5364b (patch)
tree6d3463a3177ce3e2f68b73f2c7579c51ad45c889 /sh
parentBind the calculator key on my keyboard (diff)
downloaddotfiles-2a29d5e6873ebe0fe46cf7a0bd007f1dd6a5364b.tar.gz
dotfiles-2a29d5e6873ebe0fe46cf7a0bd007f1dd6a5364b.zip
Work around newline-stripping in param expansion
Diffstat (limited to 'sh')
-rw-r--r--sh/shrc.d/ad.sh7
-rw-r--r--sh/shrc.d/bd.sh7
-rw-r--r--sh/shrc.d/pd.sh7
-rw-r--r--sh/shrc.d/rd.sh7
-rw-r--r--sh/shrc.d/sd.sh7
-rw-r--r--sh/shrc.d/ud.sh7
6 files changed, 30 insertions, 12 deletions
diff --git a/sh/shrc.d/ad.sh b/sh/shrc.d/ad.sh
index d3e5a90a..4916b0e6 100644
--- a/sh/shrc.d/ad.sh
+++ b/sh/shrc.d/ad.sh
@@ -65,10 +65,13 @@ ad() {
done
- # Print the target
- printf '%s\n' "$dir"
+ # Print the target with trailing slash to work around newline stripping
+ printf '%s/' "${dir%/}"
)"
+ # Remove trailing slash
+ set -- "${1%/}"
+
# If the subshell printed nothing, return with failure
[ -n "$1" ] || return
diff --git a/sh/shrc.d/bd.sh b/sh/shrc.d/bd.sh
index 1043a8cb..bf64a9aa 100644
--- a/sh/shrc.d/bd.sh
+++ b/sh/shrc.d/bd.sh
@@ -55,10 +55,13 @@ bd() {
exit 1
fi
- # Print the target
- printf '%s\n' "$dirname"
+ # Print the target with trailing slash to work around newline stripping
+ printf '%s/' "${dirname%/}"
)"
+ # Remove trailing slash
+ set -- "${1%/}"
+
# If the subshell printed nothing, return with failure
[ -n "$1" ] || return
diff --git a/sh/shrc.d/pd.sh b/sh/shrc.d/pd.sh
index de4ea23b..ce43837b 100644
--- a/sh/shrc.d/pd.sh
+++ b/sh/shrc.d/pd.sh
@@ -25,10 +25,13 @@ pd() {
exit 1
fi
- # Print the target
- printf '%s\n' "$dirname"
+ # Print the target with trailing slash to work around newline stripping
+ printf '%s/' "${dirname%/}"
)"
+ # Remove trailing slash
+ set -- "${1%/}"
+
# If the subshell printed nothing, return with failure
[ -n "$1" ] || return
diff --git a/sh/shrc.d/rd.sh b/sh/shrc.d/rd.sh
index 9fd99a55..3b699c0d 100644
--- a/sh/shrc.d/rd.sh
+++ b/sh/shrc.d/rd.sh
@@ -51,10 +51,13 @@ rd() {
exit 1
fi
- # Print the target
- printf '%s\n' "$new"
+ # Print the target with trailing slash to work around newline stripping
+ printf '%s/' "${new%/}"
)"
+ # Remove trailing slash
+ set -- "${1%/}"
+
# If the subshell printed nothing, return with failure
[ -n "$1" ] || return
diff --git a/sh/shrc.d/sd.sh b/sh/shrc.d/sd.sh
index ce59bf99..4d63b7d6 100644
--- a/sh/shrc.d/sd.sh
+++ b/sh/shrc.d/sd.sh
@@ -72,10 +72,13 @@ sd() {
;;
esac
- # Print the target
- printf '%s\n' "$1"
+ # Print the target with trailing slash to work around newline stripping
+ printf '%s/' "${1%/}"
)"
+ # Remove trailing slash
+ set -- "${1%/}"
+
# If the subshell printed nothing, return with failure
[ -n "$1" ] || return
diff --git a/sh/shrc.d/ud.sh b/sh/shrc.d/ud.sh
index 44a3a81d..79f4b5e7 100644
--- a/sh/shrc.d/ud.sh
+++ b/sh/shrc.d/ud.sh
@@ -34,10 +34,13 @@ ud() {
exit 1
fi
- # Print the target
- printf '%s\n' "$dirname"
+ # Print the target with trailing slash to work around newline stripping
+ printf '%s/' "${dirname%/}"
)"
+ # Remove trailing slash
+ set -- "${1%/}"
+
# If the subshell printed nothing, return with failure
[ -n "$1" ] || return