X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-emacs-mua;h=98103972f400c69af957b51e8bbfa390109c3e21;hp=02d7fd74d67c539db9f7ff7b84a57d4e14c57b0f;hb=60ac94fe58635f9c40724afa0f35965fc9ff1afc;hpb=6a833a6e83865f6999707cc30768d07e1351c2cb diff --git a/notmuch-emacs-mua b/notmuch-emacs-mua index 02d7fd74..98103972 100755 --- a/notmuch-emacs-mua +++ b/notmuch-emacs-mua @@ -38,9 +38,8 @@ NO_WINDOW= USE_EMACSCLIENT= AUTO_DAEMON= CREATE_FRAME= - -# The crux of it all: construct an elisp progn and eval it. -ELISP="(prog1 'done (require 'notmuch) (notmuch-mua-new-mail)" +ELISP= +MAILTO= # Short options compatible with mutt(1). while getopts :s:c:b:i:h opt; do @@ -95,7 +94,7 @@ while getopts :s:c:b:i:h opt; do ELISP="${ELISP} (message-goto-bcc) (insert \"${OPTARG}, \")" ;; --body|i) - ELISP="${ELISP} (message-goto-body) (cd \"${PWD}\") (insert-file \"${OPTARG}\")" + ELISP="${ELISP} (message-goto-body) (insert-file \"${OPTARG}\")" ;; --print) PRINT_ONLY=1 @@ -127,16 +126,39 @@ done # Positional parameters. for arg; do escape -v arg "${arg}" - ELISP="${ELISP} (message-goto-to) (insert \"${arg}, \")" + case $arg in + mailto:*) + if [ -n "${MAILTO}" ]; then + echo "$0: more than one mailto: argument." >&2 + exit 1 + fi + MAILTO="${arg}" + ;; + *) + ELISP="${ELISP} (message-goto-to) (insert \"${arg}, \")" + ;; + esac done +if [ -n "${MAILTO}" ]; then + if [ -n "${ELISP}" ]; then + echo "$0: mailto: is not compatible with other message parameters." >&2 + exit 1 + fi + ELISP="(browse-url-mail \"${MAILTO}\")" +else + ELISP="(notmuch-mua-new-mail) ${ELISP}" +fi + # Kill the terminal/frame if we're creating one. if [ -z "$USE_EMACSCLIENT" -o -n "$CREATE_FRAME" -o -n "$NO_WINDOW" ]; then - ELISP="${ELISP} (setq message-exit-actions (list #'save-buffers-kill-terminal))" + ELISP="${ELISP} (message-add-action #'save-buffers-kill-terminal 'exit)" fi -# End progn. -ELISP="${ELISP})" +escape -v pwd "$PWD" + +# The crux of it all: construct an elisp progn and eval it. +ELISP="(prog1 'done (require 'notmuch) (cd \"$pwd\") ${ELISP})" if [ -n "$PRINT_ONLY" ]; then echo ${ELISP}