proposed patches to notmuch-emacs-mua

  • From: Joseph Mingrone <jrm@xxxxxxx>
  • To: notmuch@xxxxxxxxxxxxx
  • Date: Sat, 22 Jul 2017 11:49:26 -0300

Hi,

(Apologies if you get this twice.  I am sending a second time, since
there seems to be a problem with the notmuch@xxxxxxxxxxxxxxx list at the
moment.)

The first patch removes a few bash-specific calls to make
notmuch-emacs-mua POSIX compliant.  This is useful for systems that do
not include bash in the base system.  The downside is that, instead of
using a built-in bash feature, it calls sed.

The second patch deals with how file contents are inserted into the
message body.  It makes the insertion happen just before the signature
(if one exists) instead of at the very beginning of the message.  This
is useful when users have hooks to insert MML at the beginning of the
message.

The third patch includes a few trivial changes to silence a few
shellcheck.net warnings.

Joseph

From 8f7b2b0f95a1d08320604984866069d910bd2eb1 Mon Sep 17 00:00:00 2001
From: Joseph Mingrone <jrm@xxxxxxx>
Date: Thu, 20 Jul 2017 20:23:39 -0300
Subject: [PATCH 1/3] Remove bash-specific calls to make notmuch-emacs-mua
 POSIX compliant

---
 emacs/notmuch-emacs-mua | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/emacs/notmuch-emacs-mua b/emacs/notmuch-emacs-mua
index a5214977..1af2f413 100755
--- a/emacs/notmuch-emacs-mua
+++ b/emacs/notmuch-emacs-mua
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
 #
 # notmuch-emacs-mua - start composing a mail on the command line
 #
@@ -26,8 +26,8 @@ set -eu
 # calling convention: escape -v var "$arg" (like in bash printf).
 escape ()
 {
-    local __escape_arg__=${3//\\/\\\\}
-    printf -v $2 '%s' "${__escape_arg__//\"/\\\"}"
+    __escape_arg__="$(printf '%s' "$3" | sed -e 's|\\|\\\\|g' -e 
's|\"|\\\"|g')"
+    eval "$2=\$__escape_arg__"
 }
 
 EMACS=${EMACS:-emacs}
-- 
2.13.3

From e44343e36b5591c3ffbb150c64da4855aa9127f0 Mon Sep 17 00:00:00 2001
From: Joseph Mingrone <jrm@xxxxxxx>
Date: Thu, 20 Jul 2017 20:28:06 -0300
Subject: [PATCH 2/3] Use message-goto-signature to insert file in message body

Users may call, e.g., mml-secure-message-sign to insert MML at the top
of the message.  By using message-goto-signature to insert file
contents into the body of the message, the MML remains at the top.
---
 emacs/notmuch-emacs-mua | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/emacs/notmuch-emacs-mua b/emacs/notmuch-emacs-mua
index 1af2f413..521dd342 100755
--- a/emacs/notmuch-emacs-mua
+++ b/emacs/notmuch-emacs-mua
@@ -95,7 +95,7 @@ while getopts :s:c:b:i:h opt; do
            ELISP="${ELISP} (message-goto-bcc) (insert \"${OPTARG}, \")"
            ;;
        --body|i)
-           ELISP="${ELISP} (message-goto-body) (insert-file \"${OPTARG}\")"
+           ELISP="${ELISP} (message-goto-signature) (insert-file 
\"${OPTARG}\")"
            ;;
        --print)
            PRINT_ONLY=1
-- 
2.13.3

From b552bdaad1686256ca1da388be0c714d4f0974f0 Mon Sep 17 00:00:00 2001
From: Joseph Mingrone <jrm@xxxxxxx>
Date: Thu, 20 Jul 2017 20:35:24 -0300
Subject: [PATCH 3/3] Trivial changes to silence a few shellcheck.net warnings

---
 emacs/notmuch-emacs-mua | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/emacs/notmuch-emacs-mua b/emacs/notmuch-emacs-mua
index 521dd342..c66a0c00 100755
--- a/emacs/notmuch-emacs-mua
+++ b/emacs/notmuch-emacs-mua
@@ -150,14 +150,14 @@ if [ -n "${MAILTO}" ]; then
        exit 1
     fi
     ELISP="(browse-url-mail \"${MAILTO}\")"
-elif [ -z "${ELISP}" -a -n "${HELLO}" ]; then
+elif [ -z "${ELISP}" ] && [ -n "${HELLO}" ]; then
     ELISP="(notmuch)"
 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
+if [ -z "$USE_EMACSCLIENT" ] || [ -n "$CREATE_FRAME" ] || [ -n "$NO_WINDOW" ]; 
then
     ELISP="${ELISP} (message-add-action #'save-buffers-kill-terminal 'exit)"
 fi
 
@@ -167,13 +167,13 @@ escape -v pwd "$PWD"
 ELISP="(prog1 'done (require 'notmuch) (cd \"$pwd\") ${ELISP})"
 
 if [ -n "$PRINT_ONLY" ]; then
-    echo ${ELISP}
+    echo "${ELISP}"
     exit 0
 fi
 
 if [ -n "$USE_EMACSCLIENT" ]; then
     # Evaluate the progn.
-    exec ${EMACSCLIENT} ${NO_WINDOW} ${CREATE_FRAME} ${AUTO_DAEMON} --eval 
"${ELISP}"
+    exec "${EMACSCLIENT}" ${NO_WINDOW} ${CREATE_FRAME} ${AUTO_DAEMON} --eval 
"${ELISP}"
 else
-    exec ${EMACS} ${NO_WINDOW} --eval "${ELISP}"
+    exec "${EMACS}" ${NO_WINDOW} --eval "${ELISP}"
 fi
-- 
2.13.3

Attachment: signature.asc
Description: PGP signature

Other related posts: