unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Bill Wohler <wohler@newt.com>
To: emacs-devel@gnu.org
Subject: Re: MH-E patch to support nmh 1.5
Date: Mon, 29 Sep 2014 22:27:15 -0700	[thread overview]
Message-ID: <87r3ytu18s.fsf@olgas.newt.com> (raw)
In-Reply-To: 21240.1411964502@allegro.localdomain

I have committed this change to the emacs-24 branch along with a few
other documentation changes to accompany a forthcoming MH-E 8.6 release.
I merged the changes back into trunk.

Mike Kupfer <m.kupfer@acm.org> writes:

> Attached is a Bazaar bundle for emacs-24, to fix MH-E to work with
> nmh-1.5 and above.  This is my first Emacs submission, so apologies in
> advance for any rookie mistakes.
>
> mike
>
> # Bazaar merge directive format 2 (Bazaar 0.90)
> # revision_id: m.kupfer@acm.org-20140929040526-o9l4xz8v0cgv964w
> # target_branch: bzr://bzr.savannah.gnu.org/emacs/emacs-24/
> # testament_sha1: dae0aa9c4d55efb8fd1f70ddff82aa23c47c1f04
> # timestamp: 2014-09-28 21:05:58 -0700
> # base_revision_id: monnier@iro.umontreal.ca-20140927162553-\
> #   hjq3w3mbdp5jwa4s
> # 
> # Begin patch
>
> === modified file 'lisp/mh-e/ChangeLog'
> --- lisp/mh-e/ChangeLog	2014-03-17 00:50:05 +0000
> +++ lisp/mh-e/ChangeLog	2014-09-29 04:05:26 +0000
> @@ -1,3 +1,19 @@
> +2014-09-28  Mike Kupfer  <m.kupfer@acm.org>
> +
> +	* mh-comp.el (mh-bare-components): Improve the temp folder and
> +	file names as per a suggestion from Bill Wohler.  Also address
> +	XEmacs compatibility issues: use mm-make-temp-file instead of
> +	make-temp-file, and only pass one argument to delete-directory.
> +
> +2014-09-26  Mike Kupfer  <m.kupfer@acm.org>
> +
> +	* mh-comp.el (mh-insert-x-face): Ensure that mh-x-face-file is a
> +	string before trying to use it (closes SF #474).
> +	(mh-bare-components): New function to create a temporary initial
> +	components file; replaces mh-find-components.
> +	(mh-edit-again, mh-send-sub): Use mh-bare-components instead of
> +	mh-find-components (partially closes SF #468).
> +
>  2014-03-16  Bill Wohler  <wohler@newt.com>
>  
>  	* mh-folder.el (mh-regenerate-headers): Fix scan: bad message list
>
> === modified file 'lisp/mh-e/mh-comp.el'
> --- lisp/mh-e/mh-comp.el	2014-01-01 07:43:34 +0000
> +++ lisp/mh-e/mh-comp.el	2014-09-29 04:05:26 +0000
> @@ -411,6 +411,7 @@
>    (interactive (list (mh-get-msg-num t)))
>    (let* ((from-folder mh-current-folder)
>           (config (current-window-configuration))
> +         (components-file (mh-bare-components))
>           (draft
>            (cond ((and mh-draft-folder (equal from-folder mh-draft-folder))
>                   (pop-to-buffer (find-file-noselect (mh-msg-filename message))
> @@ -467,7 +468,8 @@
>             ;; Text field, that's an easy case
>             (t
>              (mh-modify-header-field field value))))))
> -     (mh-components-to-list (mh-find-components)))
> +     (mh-components-to-list components-file))
> +    (delete-file components-file)
>      (goto-char (point-min))
>      (save-buffer)
>      (mh-compose-and-send-mail
> @@ -885,22 +887,6 @@
>            (t
>             nil))))
>  
> -(defun mh-find-components ()
> -  "Return the path to the components file."
> -  (let (components)
> -    (cond
> -     ((file-exists-p
> -       (setq components
> -             (expand-file-name mh-comp-formfile mh-user-path)))
> -      components)
> -     ((file-exists-p
> -       (setq components
> -             (expand-file-name mh-comp-formfile mh-lib)))
> -      components)
> -     (t
> -      (error "Can't find %s in %s or %s"
> -             mh-comp-formfile mh-user-path mh-lib)))))
> -
>  (defun mh-send-sub (to cc subject config)
>    "Do the real work of composing and sending a letter.
>  Expects the TO, CC, and SUBJECT fields as arguments.
> @@ -910,8 +896,8 @@
>      (message "Composing a message...")
>      (let ((draft (mh-read-draft
>                    "message"
> -                  (mh-find-components)
> -                  nil)))
> +                  (mh-bare-components)
> +                  t)))
>        (mh-insert-fields "To:" to "Subject:" subject "Cc:" cc)
>        (goto-char (point-max))
>        (mh-compose-and-send-mail draft "" folder msg-num
> @@ -920,6 +906,29 @@
>        (mh-letter-mode-message)
>        (mh-letter-adjust-point))))
>  
> +(defun mh-bare-components ()
> +  "Generate a temporary, clean components file and return its path."
> +  ;; Let comp(1) create the skeleton for us.  This is particularly
> +  ;; important with nmh-1.5, because its default "components" needs
> +  ;; some processing before it can be used.  Unfortunately, comp(1)
> +  ;; doesn't have a -build option.  So, to avoid the possibility of
> +  ;; clobbering an existing draft, create a temporary directory and
> +  ;; use it as the drafts folder.  Then copy the skeleton to a regular
> +  ;; temp file, and return the regular temp file.
> +  (let (new
> +        (temp-folder (mm-make-temp-file
> +                      (concat mh-user-path "draftfolder.") t)))
> +    (mh-exec-cmd "comp" "-nowhatnowproc"
> +                 "-draftfolder" (format "+%s"
> +                                        (file-name-nondirectory temp-folder))
> +                 (if (stringp mh-comp-formfile)
> +                     (list "-form" mh-comp-formfile)))
> +    (setq new (mm-make-temp-file "comp."))
> +    (rename-file (concat temp-folder "/" "1") new t)
> +    (delete-file (concat temp-folder "/" ".mh_sequences"))
> +    (delete-directory temp-folder)
> +    new))
> +
>  (defun mh-read-draft (use initial-contents delete-contents-file)
>    "Read draft file into a draft buffer and make that buffer the current one.
>  
> @@ -1069,7 +1078,8 @@
>  (defun mh-insert-x-face ()
>    "Append X-Face, Face or X-Image-URL field to header.
>  If the field already exists, this function does nothing."
> -  (when (and (file-exists-p mh-x-face-file)
> +  (when (and (stringp mh-x-face-file)
> +             (file-exists-p mh-x-face-file)
>               (file-readable-p mh-x-face-file))
>      (save-excursion
>        (unless (or (mh-position-on-field "X-Face")
>
> # Begin bundle
> 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
> YhwNyzkgG9y8J/4u5IpwoSEVCJu+
>

-- 
Bill Wohler <wohler@newt.com> aka <Bill.Wohler@nasa.gov>
http://www.newt.com/wohler/
GnuPG ID:610BD9AD




  reply	other threads:[~2014-09-30  5:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-29  4:21 MH-E patch to support nmh 1.5 Mike Kupfer
2014-09-30  5:27 ` Bill Wohler [this message]
2014-09-30 15:31   ` Glenn Morris

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r3ytu18s.fsf@olgas.newt.com \
    --to=wohler@newt.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).