Commit a1b4049d authored by Bill Wohler's avatar Bill Wohler

Upgraded to mh-e version 6.1.1.

parent 3dcdb054
2002-10-01 Bill Wohler <wohler@newt.com>
* MH-E-NEWS: Upgraded to mh-e version 6.1.1.
2002-09-16 Jonathan Yavner <jyavner@engineer.com>
* ses-example.ses: New file: example spreadsheet.
......
This diff is collapsed.
This file is automatically generated from news-mh-e.txinfo. Do not edit.
User-visible changes to mh-e in version 4.0 from 3.8
Note: there are many internal changes to mh-e in this release. If you
have the previous version loaded into your Emacs, you will probably not
be able to load this version on top of it.
New Features in mh-e
====================
Background folder collection. The first time you are prompted for a
folder, you must wait while mh-e collects the names of all existing
folders. Now however, if you abort, collecting will continue in the
background, and you can do something else in Emacs until the collection
completes. Normally, mh-e will begin collecting folders names in the
background when you first load it; you can disable this feature by
setting `mh-auto-folder-collect' to nil.
There is support for composing MIME messages using the `mhn' program
from MH 6.8. See the documentation string for mh-edit-mhn. (While
composing a letter, type `C-h k C-c C-e'.) See also mhn(1). There is
as yet no support for reading MIME messages.
`mh-show', typically on `.', repositions to the start of the message if
the message is already visible. It used to do nothing in this case.
The function `mh-unshar-msg' is renamed `mh-store-msg'. It now does
uudecoding, too. Someday it should do MIME. It remembers the last
directory you used and offers it as the default for next time.
New function `mh-header-display', on `,', displays the message with all
headers, including those normally not displayed. Type `.' to display
the message normally again.
New function `mh-list-sequences' lists the sequences in use in the
current folder.
New function `mh-version' displays version information about MH and
mh-e. Please use the output in bug reports.
`mh-quit' now burys the folder buffer and show buffer.
New mh-e hooks and customization variables
==========================================
`mh-pick-mode-hook': new hook called by new mode `mh-pick-mode'. The
pick buffer didn't used to have its own mode. Another advantage of
`mh-pick-mode' is that `C-h m' works in the pick buffer.
`mail-citation-hook': new variable for supercite.
`mh-refile-msg-hook': new hook called by `mh-refile-msg' (and
`mh-refile-or-write-again' when refiling).
`mh-msg-folder-hook': new hook used by `mh-refile-msg' and `mh-to-fcc'
to provide a default folder for user prompt.
`mh-show-hook': new hook called by `mh-show'.
`mh-delete-msg-hook': new hook called by `mh-delete-msg'.
`mh-show-mode-hook': new hook called by new mode `mh-show-mode' for
`show-' buffers.
`mh-comp-formfile': new variable so can customize `components' file.
`mh-sortm-args': new variable, a list of extra arguments to be passed to
sortm by `mh-sort-folder'. Give an argument to `mh-sort-folder' to
suppress this behavior.
`mh-send-prog': new variable so can customize name of `send' program in
case of name conflicts.
`mh-scan-prog': new variable so can customize name of `scan' program to
generate custom effects.
`mh-inc-prog': new variable so can customize name of `inc' program to do
fancy management of incoming messages.
`mh-forwarded-letter-subject': new function used by `mh-forward' to
compute the Subject line of the new message. It is a small function
which can be replaced by the user for customization. Uses the new
variable `mh-forward-subject-format', which allows some simple
customizations without rewriting even `mh-forwarded-letter-subject'.
`mh-new-draft-cleaned-headers': new variable, header lines removed by
`mh-edit-again' and `mh-extract-rejected-mail' before offering a message
as a new draft.
`mh-signature-file-name': new variable used by `mh-insert-signature' to
so can customize name of the file to insert.
`mh-read-address': new function called to read all To: and Cc:
addresses.
`mh-msg-folder-hook': new hook used by `mh-refile-msg' and `mh-to-fcc'
to provide a default folder for user prompt.
Key binding changes in mh-e
===========================
`,' runs new function `mh-header-display'. It is like `.' but it
displays *all* the headers.
`M-#' runs the new function `mh-delete-seq'. One used to have to type
`C-u M-%' to delete a sequence.
`<' no longer does `mh-first-msg', but `M->' now does `mh-last-msg'.
This allows first and last to be consistent (`>' was taken) and is more
likely to be discovered by chance anyway.
`M-d' runs `mh-redistribute', `r' runs `mh-reply' (on the theory that
the more commonly used function should be easier to type, and the
obscure action of redistributing can be harder to type).
`M-o' changed to `C-o' (`mh-write-msg-to-file'). It was interfering
with arrow keys for some people.
`M-n' now runs `mh-store-msg' (formerly `mh-unshar-msg').
`b' no longer runs `mh-quit'; use `q' instead. `b' may be used in a
future version for something else.
Minor improvements to mh-e
==========================
The mh-e code is now divided into multiple Emacs Lisp files, so it
starts up faster because Emacs doesn't have to load all of it at once.
(This change also makes it easier for the maintainer to manage things.)
When searching for the directory containing the MH programs, search the
user's PATH in addition to the built-in directories, to increase the
chance of finding the MH programs.
The subject for a forwarded message no longer has ugly square brackets
around it.
The name of the folder is no longer appears twice in the show buffer
mode line.
When typing a folder name in the minibuffer, parent folders complete to
the trailing slash (/), for easier typing of subfolders.
The folder buffer mode name changed from `mh-e scan' or `mh-e show' to
`MH-Folder', which makes the hook name easier to guess. Added
`mh-showing' to `minor-mode-alist' so there is still an indication in
the mode line of whether messages will be shown automatically.
`mh-rename-seq' does completion on the old sequence name.
If called by a user who has never used MH on this system before, mh-e
runs the MH program `install-mh' to get them set up.
Undo history for previous messages is not kept to avoid wasting memory.
The internal temp buffer used by mh-e has `buffer-offer-save' explicitly
nil. This change benefits people who change the `buffer-offer-save'
default.
Bug fixes to mh-e
=================
`mh-to-field': don't bomb if no To: field.
`mh-get-new-mail': restore annotations, e.g., cur, even if no new mail.
`mh-rename-seq': verify that the new seq name was accepted by `mark'
before updating state.
`mh-internal-seq': the Previous sequence is not notated, since it would
notate everything scanned.
`mh-read-draft': don't call `find-file-noselect' so an `auto-mode-alist'
doesn't trigger `mh-letter-mode-hook' twice. Faster, too.
`mh-show': If user moves onto a message that doesn't exist, don't leave
the cursor in the show pane.
`mh-delete-scan-msgs': use `equal', not `=', on the result of
`mh-get-msg-num', since it may be nil.
`mh-get-field': do anchored search so searching for `reply-to:' doesn't
find `in-reply-to:'.
`mh-widen': do nothing if not narrowed.
`mh-clean-message-header': find end of headers even if no body.
......@@ -59,6 +59,11 @@ See the files mac/README and mac/INSTALL for build instructions.
* Changes in Emacs 21.4
** MH-E changes.
Upgraded to mh-e version 6.1.1. There have been major changes since
version 5.0.2; see MH-E-NEWS for details.
+++
** The `emacsclient' understand the options `--eval' and `--display'
which tell Emacs resp. to evaluate the given elisp expressions and
......
2002-10-01 Bill Wohler <wohler@newt.com>
* mail/mh-comp.el, mail/mh-e.el, mail/mh-funcs.el,
mail/mh-mime.el, mail/mh-pick.el, mail/mh-seq.el,
mail/mh-utils.el, mail/mh-xemacs-compat.el, mail/reply2.pbm,
mail/reply2.xpm, toolbar/execute.pbm, toolbar/execute.xpm,
toolbar/page-down.pbm, toolbar/page-down.xpm, toolbar/refile.pbm,
toolbar/refile.xpm, toolbar/repack.pbm, toolbar/repack.xpm,
toolbar/rescan.pbm, toolbar/rescan.xpm, toolbar/show.pbm,
toolbar/show.xpm, toolbar/widen.pbm, toolbar/widen.xpm: Upgraded
to mh-e version 6.1.1. Full ChangeLog available in
http://prdownloads.sourceforge.net/mh-e/mh-e-6.1.tgz?download .
There were no user-visible changes in 6.1.1 from 6.1--only the
section of the Makefile that installs the files into Emacs was
changed.
2002-10-01 Juanma Barranquero <lektu@terra.es>
* eshell/esh-module.el (eshell-load-defgroups): Add "no-byte-compile: t"
......
This diff is collapsed.
This diff is collapsed.
;;; mh-funcs.el --- mh-e functions not everyone will use right away
;; Time-stamp: <2001-07-14 13:08:45 pavel>
;; Copyright (C) 1993, 1995 Free Software Foundation, Inc.
;; Copyright (C) 1993, 1995, 2001, 2002 Free Software Foundation, Inc.
;; Author: Bill Wohler <wohler@newt.com>
;; Maintainer: Bill Wohler <wohler@newt.com>
;; Keywords: mail
;; See: mh-e.el
;; This file is part of GNU Emacs.
......@@ -28,7 +32,7 @@
;;; Change Log:
;; $Id: mh-funcs.el,v 1.5 1996/01/14 07:34:30 erik Exp $
;; $Id: mh-funcs.el,v 1.12 2002/04/07 19:20:56 wohler Exp $
;;; Code:
......@@ -71,7 +75,7 @@ digest are inserted into the folder after that message."
(defun mh-copy-msg (msg-or-seq folder)
"Copy the specified MESSAGE(s) to another FOLDER without deleting them.
"Copy the specified MSG-OR-SEQ to another FOLDER without deleting them.
Default is the displayed message. If optional prefix argument is
provided, then prompt for the message sequence."
(interactive (list (if current-prefix-arg
......@@ -84,10 +88,12 @@ provided, then prompt for the message sequence."
(mh-notate-seq msg-or-seq mh-note-copied mh-cmd-note)))
(defun mh-kill-folder ()
"Remove the current folder."
"Remove the current folder and all included messages.
Removes all of the messages (files) within the specified current folder,
and then removes the folder (directory) itself."
(interactive)
(if (or mh-do-not-confirm
(yes-or-no-p (format "Remove folder %s? " mh-current-folder)))
(if (yes-or-no-p (format "Remove folder %s (and all included messages)?"
mh-current-folder))
(let ((folder mh-current-folder))
(if (null mh-folder-list)
(mh-set-folder-list))
......@@ -100,23 +106,27 @@ provided, then prompt for the message sequence."
(mh-set-folder-modified-p nil) ; so kill-buffer doesn't complain
(if (get-buffer mh-show-buffer)
(kill-buffer mh-show-buffer))
(kill-buffer folder))
(if (get-buffer folder)
(kill-buffer folder)))
(message "Folder not removed")))
(defun mh-list-folders ()
"List mail folders."
(interactive)
(with-output-to-temp-buffer mh-temp-buffer
(save-excursion
(switch-to-buffer mh-temp-buffer)
(erase-buffer)
(message "Listing folders...")
(mh-exec-cmd-output "folders" t (if mh-recursive-folders
"-recurse"
(let ((temp-buffer mh-temp-folders-buffer))
(with-output-to-temp-buffer temp-buffer
(save-excursion
(set-buffer temp-buffer)
(erase-buffer)
(message "Listing folders...")
(mh-exec-cmd-output "folders" t (if mh-recursive-folders
"-recurse"
"-norecurse"))
(goto-char (point-min))
(message "Listing folders...done"))))
(goto-char (point-min))
(view-mode 1)
(setq view-exit-action 'kill-buffer)
(message "Listing folders...done")))))
(defun mh-pack-folder (range)
......@@ -197,10 +207,10 @@ Otherwise just send the message's body without the headers."
(defun mh-print-msg (msg-or-seq)
"Print MESSAGE(s) (default: displayed message) on printer.
"Print MSG-OR-SEQ (default: displayed message) on printer.
If optional prefix argument provided, then prompt for the message sequence.
The variable mh-lpr-command-format is used to generate the print command.
The messages are formatted by mhl. See the variable mhl-formfile."
The variable `mh-lpr-command-format' is used to generate the print command.
The messages are formatted by mhl. See the variable `mhl-formfile'."
(interactive (list (if current-prefix-arg
(reverse (mh-seq-to-msgs
(mh-read-seq-default "Print" t)))
......@@ -211,7 +221,7 @@ The messages are formatted by mhl. See the variable mhl-formfile."
(let ((print-command
(if (numberp msg-or-seq)
(format "%s -nobell -clear %s %s | %s"
(expand-file-name "mhl" mh-lib)
(expand-file-name "mhl" mh-lib-progs)
(mh-msg-filename msg-or-seq)
(if (stringp mhl-formfile)
(format "-form %s" mhl-formfile)
......@@ -223,7 +233,7 @@ The messages are formatted by mhl. See the variable mhl-formfile."
(format "Sequence from %s" mh-current-folder))))
(format "(scan -clear %s ; %s -nobell -clear %s %s) | %s"
(mapconcat (function (lambda (msg) msg)) msg-or-seq " ")
(expand-file-name "mhl" mh-lib)
(expand-file-name "mhl" mh-lib-progs)
(if (stringp mhl-formfile)
(format "-form %s" mhl-formfile)
"")
......@@ -254,8 +264,8 @@ The messages are formatted by mhl. See the variable mhl-formfile."
(defun mh-sort-folder (&optional extra-args)
"Sort the messages in the current folder by date.
Calls the MH program sortm to do the work.
The arguments in the list mh-sortm-args are passed to sortm
if this function is passed an argument."
The arguments in the list `mh-sortm-args' are passed to sortm
if the optional argument EXTRA-ARGS is given."
(interactive "P")
(mh-process-or-undo-commands mh-current-folder)
(setq mh-next-direction 'forward)
......@@ -267,7 +277,8 @@ if this function is passed an argument."
(defun mh-undo-folder (&rest ignore)
"Undo all pending deletes and refiles in current folder."
"Undo all pending deletes and refiles in current folder.
Argument IGNORE is deprecated."
(interactive)
(cond ((or mh-do-not-confirm
(yes-or-no-p "Undo all commands in folder? "))
......@@ -286,7 +297,7 @@ if this function is passed an argument."
"Store the file(s) contained in the current message into DIRECTORY.
The message can contain a shar file or uuencoded file.
Default directory is the last directory used, or initially the value of
mh-store-default-directory or the current directory."
`mh-store-default-directory' or the current directory."
(interactive (list (let ((udir (or mh-store-default-directory default-directory)))
(read-file-name "Store message in directory: "
udir udir nil))))
......
;;; mh-mime.el --- mh-e support for composing MIME messages
;; Time-stamp: <2001-07-15 09:52:45 pavel>
;; Copyright (C) 1993, 1995 Free Software Foundation, Inc.
;; Copyright (C) 1993, 1995, 2001, 2002 Free Software Foundation, Inc.
;; Author: Bill Wohler <wohler@newt.com>
;; Maintainer: Bill Wohler <wohler@newt.com>
;; Keywords: mail
;; See: mh-e.el
;; This file is part of GNU Emacs.
......@@ -28,14 +32,13 @@
;;; Change Log:
;; $Id: mh-mime.el,v 1.8 1998/09/23 21:51:50 kwzh Exp $
;; $Id: mh-mime.el,v 1.26 2002/04/07 19:20:56 wohler Exp $
;;; Code:
(provide 'mh-mime)
(require 'mh-comp)
;; To do:
;; paragraph code should not fill # lines if MIME enabled.
;; implement mh-auto-edit-mhn (if non-nil, \\[mh-send-letter]
......@@ -54,31 +57,96 @@ MH profile.")
(defvar mh-edit-mhn-hook nil
"Invoked on the formatted letter by \\<mh-letter-mode-map>\\[mh-edit-mhn].")
;;;###autoload
(defun mh-have-file-command ()
"Return t if 'file' command is on the system.
'file -i' is used to get MIME type of composition insertion."
(when (not (boundp 'mh-have-file-command))
(load "executable" t t) ; executable-find not autoloaded in emacs20
(setq mh-have-file-command
(and (fboundp 'executable-find)
(executable-find "file") ; file command exists
; and accepts -i and -b args.
(zerop (call-process "file" nil nil nil "-i" "-b"
(expand-file-name "inc" mh-progs))))))
mh-have-file-command)
(defun mh-file-mime-type (filename)
"Return MIME type of FILENAME from file command.
Returns nil if file command not on system."
(cond
((not (mh-have-file-command))
nil) ;No file command, exit now.
((not (and (file-exists-p filename)(file-readable-p filename)))
nil)
(t
(save-excursion
(let ((tmp-buffer (get-buffer-create mh-temp-buffer)))
(set-buffer tmp-buffer)
(unwind-protect
(progn
(call-process "file" nil '(t nil) nil "-b" "-i"
(expand-file-name filename))
(goto-char (point-min))
(if (not (re-search-forward mh-media-type-regexp nil t))
nil
(match-string 0)))
(kill-buffer tmp-buffer)))))))
(defvar mh-mhn-compose-insert-p nil
"Buffer-local variable to know whether MIME insertion was done.
Triggers an automatic call to `mh-edit-mhn' in `mh-send-letter'.")
(make-variable-buffer-local 'mh-mhn-compose-insert-p)
;;; This is needed for Emacs20 which doesn't have mailcap-mime-types.
(defvar mh-mime-content-types
'(("text/plain") ("text/richtext")
("multipart/mixed") ("multipart/alternative") ("multipart/digest")
("multipart/parallel")
("message/rfc822") ("message/partial") ("message/external-body")
("application/octet-stream") ("application/postscript")
("image/jpeg") ("image/gif")
("audio/basic")
("video/mpeg"))
"Legal MIME content types. See documentation for \\[mh-edit-mhn].")
'(("application/mac-binhex40") ("application/msword")
("application/octet-stream") ("application/pdf") ("application/pgp-keys")
("application/pgp-signature") ("application/pkcs7-signature")
("application/postscript") ("application/rtf")
("application/vnd.ms-excel") ("application/vnd.ms-powerpoint")
("application/vnd.ms-project") ("application/vnd.ms-tnef")
("application/wordperfect5.1") ("application/wordperfect6.0")
("application/zip")
("audio/basic") ("audio/mpeg")
("image/gif") ("image/jpeg") ("image/png")
("message/delivery-status")
("message/external-body") ("message/partial") ("message/rfc822")
("text/enriched") ("text/html") ("text/plain") ("text/rfc822-headers")
("text/richtext") ("text/xml")
("video/mpeg") ("video/quicktime"))
"Legal MIME content types.
See documentation for \\[mh-edit-mhn].")
(defvar mh-media-type-regexp
(concat (regexp-opt '("text" "image" "audio" "video" "application"
"multipart" "message") t)
"/[-.+a-zA-Z0-9]+")
"Regexp matching valid media types used in MIME attachment compositions.")
(defun mh-mhn-compose-insertion (filename type description attributes)
"Add a directive to insert a MIME message part from a file.
This is the typical way to insert non-text parts in a message.
Arguments are FILENAME, which tells where to find the file, TYPE, the
MIME content type, and DESCRIPTION, a line of text for the
Content-description header. See also \\[mh-edit-mhn]."
(interactive (let ((filename (read-file-name "Insert contents of: ")))
This is the typical way to insert non-text parts in a message. Arguments are
FILENAME, which tells where to find the file, TYPE, the MIME content type,
DESCRIPTION, a line of text for the Content-Description field. ATTRIBUTES is a
comma separated list of name=value pairs that is appended to the Content-Type
field of the attachment.
See also \\[mh-edit-mhn]."
(interactive (let ((filename (read-file-name "Insert contents of: ")))
(list
filename
(completing-read "Content-type: "
mh-mime-content-types nil nil nil)
(read-string "Content-description: ")
(read-string "Content-Attributes: "
(or (mh-file-mime-type filename)
(completing-read "Content-Type: "
(if (and (require 'mailcap nil t)
(fboundp 'mailcap-mime-types))
(mapcar 'list (mailcap-mime-types))
mh-mime-content-types)))
(read-string "Content-Description: ")
(read-string "Content-Attributes: "
(concat "name=\""
(file-name-nondirectory filename)
"\"")))))
......@@ -86,6 +154,7 @@ Content-description header. See also \\[mh-edit-mhn]."
(defun mh-mhn-compose-type (filename type
&optional description attributes comment)
(setq mh-mhn-compose-insert-p t)
(beginning-of-line)
(insert "#" type)
(and attributes
......@@ -109,9 +178,12 @@ Content-description header. See also \\[mh-edit-mhn]."
(interactive (list
(read-string "Remote host: ")
(read-string "Remote filename: ")
(completing-read "External Content-type: "
mh-mime-content-types nil nil nil)
(read-string "External Content-description: ")))
(completing-read "External Content-Type: "
(if (and (require 'mailcap nil t)
(fboundp 'mailcap-mime-types))
(mapcar 'list (mailcap-mime-types))
mh-mime-content-types))
(read-string "External Content-Description: ")))
(mh-mhn-compose-external-type "anon-ftp" host filename
type description))
......@@ -136,6 +208,7 @@ See also \\[mh-edit-mhn]."
(defun mh-mhn-compose-external-type (access-type host filename type
&optional description
attributes extra-params comment)
(setq mh-mhn-compose-insert-p t)
(beginning-of-line)
(insert "#@" type)
(and attributes
......@@ -167,6 +240,7 @@ See also \\[mh-edit-mhn]."
(if mh-sent-from-msg
(format " [%d]" mh-sent-from-msg)
"")))))
(setq mh-mhn-compose-insert-p t)
(beginning-of-line)
(insert "#forw [")
(and description
......@@ -187,35 +261,45 @@ See also \\[mh-edit-mhn]."
(defun mh-edit-mhn (&optional extra-args)
"Format the current draft for MIME, expanding any mhn directives.
Process the current draft with the mhn program, which,
using directives already inserted in the draft, fills in
all the MIME components and header fields.
Process the current draft with the mhn program, which, using directives
already inserted in the draft, fills in all the MIME components and header
fields.
This step should be done last just before sending the message.
The mhn program is part of MH version 6.8 or later.
The `\\[mh-revert-mhn-edit]' command undoes this command.
The arguments in the list `mh-mhn-args' are passed to mhn
if this function is passed an argument.
For assistance with creating mhn directives to insert
various types of components in a message, see
\\[mh-mhn-compose-insertion] (generic insertion from a file),
\\[mh-mhn-compose-anon-ftp] (external reference to file via anonymous ftp),
\\[mh-mhn-compose-external-compressed-tar] \
\(reference to compressed tar file via anonymous ftp), and
\\[mh-mhn-compose-forw] (forward message)."
The `\\[mh-revert-mhn-edit]' command undoes this command. The arguments in the
list `mh-mhn-args' are passed to mhn if this function is passed an optional
prefix argument EXTRA-ARGS.
For assistance with creating mhn directives to insert various types of
components in a message, see \\[mh-mhn-compose-insertion] (generic insertion
from a file), \\[mh-mhn-compose-anon-ftp] (external reference to file via
anonymous ftp), \\[mh-mhn-compose-external-compressed-tar] \ \(reference to
compressed tar file via anonymous ftp), and \\[mh-mhn-compose-forw] (forward
message). If these helper functions are used, `mh-edit-mhn' is run
automatically when the draft is sent.
The mhn program is part of MH version 6.8 or later."
(interactive "*P")
(save-buffer)
(message "mhn editing...")
(mh-exec-cmd-error (format "mhdraft=%s" buffer-file-name)
"mhn" (if extra-args mh-mhn-args) buffer-file-name)
(cond
(mh-nmh-p
(mh-exec-cmd-error nil
"mhbuild" (if extra-args mh-mhn-args) buffer-file-name))
(t
(mh-exec-cmd-error (format "mhdraft=%s" buffer-file-name)
"mhn" (if extra-args mh-mhn-args) buffer-file-name)))
(setq mh-mhn-compose-insert-p nil)
(revert-buffer t t)
(message "mhn editing...done")
(run-hooks 'mh-edit-mhn-hook))
(defun mh-revert-mhn-edit (noconfirm)
"Undoes the effect of \\[mh-edit-mhn] by reverting to the backup file.
Optional non-nil argument means don't ask for confirmation."
"Undo the effect of \\[mh-edit-mhn] by reverting to the backup file.
Optional non-nil argument NOCONFIRM means don't ask for confirmation."
(interactive "*P")
(if (null buffer-file-name)
(error "Buffer does not seem to be associated with any file"))
......@@ -230,11 +314,11 @@ Optional non-nil argument means don't ask for confirmation."
".orig")))))
(setq backup-strings (cdr backup-strings)))
(or backup-strings
(error "mhn backup file for %s no longer exists!" buffer-file-name))
(error "Backup file for %s no longer exists!" buffer-file-name))
(or noconfirm
(yes-or-no-p (format "Revert buffer from file %s? "
backup-file))
(error "mhn edit revert not confirmed"))
(error "Revert not confirmed"))
(let ((buffer-read-only nil))
(erase-buffer)
(insert-file-contents backup-file))
......
;;; mh-pick.el --- make a search pattern and search for a message in mh-e
;; Time-stamp: <2001-12-20 18:55:31 pavel>
;; Copyright (C) 1993, 1995 Free Software Foundation, Inc.
;; Copyright (C) 1993, 1995, 2001 Free Software Foundation, Inc.
;; Author: Bill Wohler <wohler@newt.com>
;; Maintainer: Bill Wohler <wohler@newt.com>
;; Keywords: mail
;; See: mh-e.el
;; This file is part of GNU Emacs.
......@@ -26,12 +30,14 @@