summaryrefslogtreecommitdiff
path: root/emacsmail.sh.in
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-06-08 22:30:19 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-06-08 23:03:05 -0400
commit8c67cad1f2bbcaabe23586643d670ba08f3d2a05 (patch)
tree812d0cba8c0d157d8c22b67093c8f6c8a3bcd099 /emacsmail.sh.in
parent482ff021e313131af25eb6c8d70bd4d414c32105 (diff)
Clean up. Mostly have error handling be a mode.
You probably want to ignore whitespace change when viewing this diff.
Diffstat (limited to 'emacsmail.sh.in')
-rw-r--r--emacsmail.sh.in58
1 files changed, 26 insertions, 32 deletions
diff --git a/emacsmail.sh.in b/emacsmail.sh.in
index f3b1fce..f1a3e1c 100644
--- a/emacsmail.sh.in
+++ b/emacsmail.sh.in
@@ -1,6 +1,6 @@
#!@bash@
-# Copyright (C) 2014 Luke Shumaker <lukeshu@sbcglobal.net>
+# Copyright (C) 2014, 2016 Luke Shumaker <lukeshu@sbcglobal.net>
#
# This file is not considered part of GNU Emacs.
#
@@ -32,43 +32,37 @@ usage() {
main() {
declare -a flags=()
- declare error=false
declare mode=normal
emacs_getopt_init
declare args
- args="$(emacs_getopt '' '' "$@")" || error=true
- eval set -- "$args"
- while true; do
- case "$1" in
- -V|--version) shift; mode=version;;
- -H|--help) shift; mode=usage;;
- --) shift; break;;
- *)
- if [[ $1 =~ $emacs_getopt_2 ]]; then
- flags+=("$1" "$2"); shift 2
- else
- flags+=("$1"); shift 1
- fi
- ;;
- esac
- done
- urls=("$@")
- if [[ $mode == normal ]]; then
- [[ ${#urls[@]} = 1 ]] || error=true
+ if ! args="$(emacs_getopt '' '' "$@")"; then
+ mode=error
+ else
+ eval set -- "$args"
+ while true; do
+ case "$1" in
+ -V|--version) shift; mode=version;;
+ -H|--help) shift; mode=usage;;
+ --) shift; break;;
+ *)
+ if [[ $1 =~ $emacs_getopt_2 ]]; then
+ flags+=("$1" "$2"); shift 2
+ else
+ flags+=("$1"); shift 1
+ fi
+ ;;
+ esac
+ done
+ urls=("$@")
+ if [[ $mode == normal ]]; then
+ [[ ${#urls[@]} = 1 ]] || mode=error
+ fi
fi
- if $error; then
- usage >&2
- return 1
- fi
- case "$mode" in
- usage) usage; return 0;;
- version) version; return 0;;
- esac
-
- emacsclient "${flags[@]}" --eval \
- "(browse-url-mail $(emacs_quote "${urls[@]}"))"
+ next "$mode" \
+ emacsclient "${flags[@]}" --eval \
+ "(browse-url-mail $(emacs_quote "${urls[@]}"))"
}
main "$@"