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
next prev parent 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
* 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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.