Re: [PATCH 1/3] emacs: Fix mail composition under Emacs 23

2016-01-06 Thread Michal Sojka
On Tue, Jan 05 2016, David Bremner wrote:
> Michal Sojka  writes:
>
>> +(when return-action (nconc args '(return-action)))
>> +(apply 'message-setup-1
>> +   ;; The following sexp is copied from `message-mail'
>
>> +   (nconc
>> +`((To . ,(or to "")) (Subject . ,(or subject "")))
>
> I missed this the first time, but I a bit worried about this used of
> nconc. It seems to fall under "A common pitfall is to use a quoted
> constant list as a non-last argument to ‘nconc’"  (from the elisp
> manual).  In any case it's not really performance critical code (I
> guess?) so maybe we could just use append?

Yes, this make sense. As the nconc is already in master, I'll not
combine the fix for this with 1/3, but I'm sending a separate patch that
applies after 3/3.

-Michal
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH 1/3] emacs: Fix mail composition under Emacs 23

2016-01-04 Thread David Bremner
Michal Sojka  writes:

> +(when return-action (nconc args '(return-action)))
> +(apply 'message-setup-1
> +;; The following sexp is copied from `message-mail'

> +(nconc
> + `((To . ,(or to "")) (Subject . ,(or subject "")))

I missed this the first time, but I a bit worried about this used of
nconc. It seems to fall under "A common pitfall is to use a quoted
constant list as a non-last argument to ‘nconc’"  (from the elisp
manual).  In any case it's not really performance critical code (I
guess?) so maybe we could just use append?

The other use of nconc is more understandable to me.
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 1/3] emacs: Fix mail composition under Emacs 23

2016-01-02 Thread Michal Sojka
Commit 570c0aeb40bd0c3af8174624a55e968f62c44f09 reworked
notmuch-mua-mail function in a way that worked only under Emacs 24.
The reason was that message-setup-1 took one argument less in Emacs
23.

We fix this by only supplying the return-action argument when it is
actually set by the caller.
---
 emacs/notmuch-mua.el | 30 ++
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el
index a66a306..d4950cb 100644
--- a/emacs/notmuch-mua.el
+++ b/emacs/notmuch-mua.el
@@ -320,18 +320,24 @@ modified. This function is notmuch addaptation of
   (notmuch-user-name) " <" (notmuch-user-primary-email) 
">")) other-headers))
 
   (notmuch-mua-pop-to-buffer (message-buffer-name "mail" to))
-  (message-setup-1
-   ;; The following sexp is copied from `message-mail'
-   (nconc
-`((To . ,(or to "")) (Subject . ,(or subject "")))
-;; C-h f compose-mail says that headers should be specified as
-;; (string . value); however all the rest of message expects
-;; headers to be symbols, not strings (eg message-header-format-alist).
-;; http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00337.html
-;; We need to convert any string input, eg from rmail-start-mail.
-(dolist (h other-headers other-headers)
-  (if (stringp (car h)) (setcar h (intern (capitalize (car h)))
-   yank-action send-actions return-action)
+  (let ((args (list yank-action send-actions)))
+;; message-setup-1 in Emacs 23 does not accept return-action
+;; argument. Pass it only if it is supplied by the caller. This
+;; will never be the case when we're called by `compose-mail' in
+;; Emacs 23.
+(when return-action (nconc args '(return-action)))
+(apply 'message-setup-1
+  ;; The following sexp is copied from `message-mail'
+  (nconc
+   `((To . ,(or to "")) (Subject . ,(or subject "")))
+   ;; C-h f compose-mail says that headers should be specified as
+   ;; (string . value); however all the rest of message expects
+   ;; headers to be symbols, not strings (eg 
message-header-format-alist).
+   ;; 
http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00337.html
+   ;; We need to convert any string input, eg from rmail-start-mail.
+   (dolist (h other-headers other-headers)
+ (if (stringp (car h)) (setcar h (intern (capitalize (car h)))
+  args))
   (notmuch-fcc-header-setup)
   (message-sort-headers)
   (message-hide-headers)
-- 
2.6.4

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch