diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2019-01-01 01:11:08 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2019-01-01 01:11:08 +1300 |
commit | e19bb8fb3c8350bee288327abd978a59eb3dc0f7 (patch) | |
tree | 754d2d883b27477f53f0fece44ef9edc7e4238f0 /sh | |
parent | Merge branch 'release/v4.2.0' (diff) | |
parent | Bump VERSION (diff) | |
download | dotfiles-954586e6ed7dfbd525e6ec8d1adc4f0c0bc0a48e.tar.gz (sig) dotfiles-954586e6ed7dfbd525e6ec8d1adc4f0c0bc0a48e.zip |
Merge branch 'release/v4.3.0'v4.3.0
* release/v4.3.0:
Bump VERSION
Switch to using GNU Emacs on development machines
Trim some trailing whitespace
Clarify control flow in shell scripts
Add clarifying comment
Translate a short-circuit into a conditional
Add a cheeky error message to sd()
Strip trailing slashes from sd() target
Correct error message from sd()
Diffstat (limited to 'sh')
-rw-r--r-- | sh/profile.d/visual.sh | 10 | ||||
-rw-r--r-- | sh/shrc | 6 | ||||
-rw-r--r-- | sh/shrc.d/sd.sh | 16 |
3 files changed, 27 insertions, 5 deletions
diff --git a/sh/profile.d/visual.sh b/sh/profile.d/visual.sh index 119d81c7..94aee963 100644 --- a/sh/profile.d/visual.sh +++ b/sh/profile.d/visual.sh @@ -1,3 +1,9 @@ -# Use first found implementation of vi(1) -VISUAL='vi' +# If emacs is installed, and ~/.emacs exists, use emacs as the visual editor; +# otherwise, use the system's vi +if command -v emacs >/dev/null 2>&1 && + [ -f "$HOME"/.emacs ] ; then + VISUAL=emacs +else + VISUAL=vi +fi export VISUAL @@ -8,13 +8,15 @@ command -p stty -ixon -ctlecho 2>/dev/null HISTSIZE=$((1 << 12)) # If HOSTNAME isn't set by this shell, we'll do it -[ -n "$HOSTNAME" ] || HOSTNAME=$(uname -n) +if [ -z "$HOSTNAME" ] ; then + HOSTNAME=$(uname -n) +fi # Don't warn me about new mail unset -v MAILCHECK # Load all the POSIX-compatible functions from ~/.shrc.d; more advanced shells -# like bash will have their own functions +# like bash will have their own functions in addition to these for sh in "$HOME"/.shrc.d/*.sh ; do [ -e "$sh" ] || continue . "$sh" diff --git a/sh/shrc.d/sd.sh b/sh/shrc.d/sd.sh index 04b50f6d..10597832 100644 --- a/sh/shrc.d/sd.sh +++ b/sh/shrc.d/sd.sh @@ -38,12 +38,26 @@ sd() { return 2 fi + # Strip trailing slashes + while : ; do + case $1 in + *?/) set -- "${1%/}" ;; + *) break ;; + esac + done + # Read sole optional argument case $1 in + # Root has no siblings + /) + printf >&2 'sd(): Radical misunderstanding\n' + return 2 + ;; + # Slashes aren't allowed */*) - printf >&2 'bd(): Illegal slash\n' + printf >&2 'sd(): Illegal slash\n' return 2 ;; |