[net.emacs] mail front end

reingold@uiucdcsp.UUCP (01/31/85)

Does anyone have a convenient emacs front end to Berkeley Unix mail
(instead of the usual rmail/smail package)?

gnu@sun.uucp (John Gilmore) (02/05/85)

> Does anyone have a convenient emacs front end to Berkeley Unix mail
> (instead of the usual rmail/smail package)?

Try mhe (which requires mh, which is public domain).  A reportedly
broken version comes with mh.5 (the newly released version).  Brian
Reid at Stanford wrote it originally and it has been hacked in
various places, including Sun.  I don't know that a complete and
wonderful and portable version exists anywhere, but you're welcome to
a copy of what I'm running.  It's a lot better than rmail; it supports
folders, and it uses the mh file structure as an underlying database,
so you can mess with the messages conveniently from OUTSIDE emacs,
like to grep or lpr or just read a few new messages when you don't
want to wait for emacs to come up.

lindahl@waltz.UUCP (02/07/85)

/**** waltz:net.emacs / uiucdcsp!reingold /  1:53 pm  Jan 31, 1985 ****/
Does anyone have a convenient emacs front end to Berkeley Unix mail
(instead of the usual rmail/smail package)?
/* ---------- */

matt@oddjob.UChicago.UUCP (Matt Crawford) (02/08/85)

In article <sun.1981> gnu@sun.uucp (John Gilmore) writes:
>> Does anyone have a convenient emacs front end to Berkeley Unix mail
>> (instead of the usual rmail/smail package)?
>
>Try mhe (which requires mh, which is public domain).  A reportedly
>broken version comes with mh.5 (the newly released version).  Brian
>Reid at Stanford wrote it originally and it has been hacked in
>various places, including Sun.  ......

I installed mh.5 recently and indeed the mhe mlisp package was not
compatible with the new release of mh.  The mhe package assumed that
message numbers were 3 digits (they can now be four digits) and that
the current-folder is in the .mh_profile (it is now in the context
file).  Also, there was the peculiar spelling of "error-occurred"
for which UCI must by now be famous.  The package is not yet perfect,
but it works.  You may have to use the "x-s" (salvage) command often.
Here are the diffs to the .ml files.  Fixed version is on the right.
================================================
diff -r ./mh-cache.ml /usr/lib/emacs/newmaclib/mh-cache.ml
32c32
< 		   (if (error-occured 
---
> 		   (if (error-occurred 
78c78
< 	    (goto-character (+ (dot) 3))
---
> 	    (goto-character (+ (dot) 4))
80c80
< 	    (if (> lastmsg 900)
---
> 	    (if (> lastmsg 1800)
140c140
< 		   (error-occured 
---
> 		   (error-occurred 
176c176
< 	(while (! (error-occured
---
> 	(while (! (error-occurred
178,179c178,179
< 			  (re-search-forward "^...\\+")
< 			  (re-search-forward "^...\\D\\|^...\\^\\|^...\\+")
---
> 			  (re-search-forward "^....\\+")
> 			  (re-search-forward "^....\\D\\|^....\\^\\|^....\\+")
193c193
< 	(if (error-occured 
---
> 	(if (error-occurred 
207c207
< 		  (while (< (length curmsg) 3)
---
> 		  (while (< (length curmsg) 4)
209c209
< 		  (if (error-occured 
---
> 		  (if (error-occurred 
218c218
< 		  (goto-character (+ (dot) 3))
---
> 		  (goto-character (+ (dot) 4))
246,247c246,247
< 	    (while (! (error-occured
< 			  (re-search-forward "^...\\D\\|^...\\^")))
---
> 	    (while (! (error-occurred
> 			  (re-search-forward "^....\\D\\|^....\\^")))
260c260
< 	(error-occured 
---
> 	(error-occurred 
270c270
< 		  (error-occured
---
> 		  (error-occurred
diff -r ./mh-e.ml /usr/lib/emacs/newmaclib/mh-e.ml
34c34
<     (setq bboard-path "/dev/null"); UCI
---
>     (setq bboard-path "/usr/spool/news"); UCI
36c36
<     (setq mh-progs "/usr/uci")	; UCI
---
>     (setq mh-progs "/usr/new/mh"); oddjob
53a54
>       (save-window-excursion
62c63,65
< 	(setq range (arg 2))
---
> 	(setq range (arg 2 (concat "+" folder " range? [all] ")))
> 	(if (= 0 (length range))
> 	    (setq range "all"))
70c73
< 		      (error-occured (recursive-edit))
---
> 		      (error-occurred (recursive-edit))
73a77
>       )
77c81
< ; The letter "D" is placed in column 4 of the header line, and the message
---
> ; The letter "D" is placed in column 5 of the header line, and the message
86c90
< 	(goto-character (+ (dot) 3))
---
> 	(goto-character (+ (dot) 4))
94c98
< 		   (if (error-occured
---
> 		   (if (error-occurred
121,125c125,128
< 	(error-message "B: command not implemented at UCI."); UCI
< ;UCI	(setq which (get-bboard-name))
< ;UCI	(&mh-read-folder which "" t-buffer-filename t-buffer-filename)
< ;UCI	(setq mh-annotate 0)
< ;UCI	(setq mh-writeable 0)
---
> 	(setq which (get-bboard-name))
> 	(&mh-read-folder which "" t-buffer-filename t-buffer-filename)
> 	(setq mh-annotate 0)
> 	(setq mh-writeable 0)
316,323c319,326
< (defun (fast-filter-region UseUsersShell
< 		(setq UseUsersShell use-users-shell)
< 		(setq use-users-shell 0)
< 		(filter-region
< 		    (arg 1 ": fast-filter-region (through command) "))
< 		(setq use-users-shell UseUsersShell)
<        )
< )
---
> ;(defun (fast-filter-region UseUsersShell
> ;		(setq UseUsersShell use-users-shell)
> ;		(setq use-users-shell 0)
> ;		(filter-region
> ;		    (arg 1 ": fast-filter-region (through command) "))
> ;		(setq use-users-shell UseUsersShell)
> ;       )
> ;)
336c339
< 	    (error-occured (kill-process "newtime"))
---
> 	    (error-occurred (kill-process "newtime"))
diff -r ./mh-edit.ml /usr/lib/emacs/newmaclib/mh-edit.ml
8c8
< 	    (error-occured
---
> 	    (error-occurred
diff -r ./mh-forw.ml /usr/lib/emacs/newmaclib/mh-forw.ml
28c28
< 			 (error-occured
---
> 			 (error-occurred
diff -r ./mh-inc.ml /usr/lib/emacs/newmaclib/mh-inc.ml
24c24
< 		   (goto-character (+ (dot) 3))
---
> 		   (goto-character (+ (dot) 4))
32c32
< 		   (error-occured (search-forward " Mail")
---
> 		   (error-occurred (search-forward " Mail")
diff -r ./mh-mode.ml /usr/lib/emacs/newmaclib/mh-mode.ml
33c33
< 			      (error-occured (search-forward ":"))
---
> 			      (error-occurred (search-forward ":"))
68c68
< 	(error-occured		; avoids trashing mail header.
---
> 	(error-occurred		; avoids trashing mail header.
80c80
< 				      (error-occured (justify-mail-region))
---
> 				      (error-occurred (justify-mail-region))
diff -r ./mh-move.ml /usr/lib/emacs/newmaclib/mh-move.ml
14c14
< 	      (goto-character (+ (dot) 3))
---
> 	      (goto-character (+ (dot) 4))
29c29
< 	(goto-character (+ (dot) 3))
---
> 	(goto-character (+ (dot) 4))
47c47
< 	       (if (error-occured 
---
> 	       (if (error-occurred 
diff -r ./mh-repl.ml /usr/lib/emacs/newmaclib/mh-repl.ml
5c5
< 	    (error-occured
---
> 	    (error-occurred
17c17
< 		(if (error-occured (read-file fn))
---
> 		(if (error-occurred (read-file fn))
22c22
< 		(error-occured 
---
> 		(error-occurred 
39c39
< 		   (error-occured
---
> 		   (error-occurred
diff -r ./mh-send.ml /usr/lib/emacs/newmaclib/mh-send.ml
9c9
< 	    (error-occured 
---
> 	    (error-occurred 
25c25
< 		   (error-occured
---
> 		   (error-occurred
diff -r ./mh-shell.ml /usr/lib/emacs/newmaclib/mh-shell.ml
33c33
< 		      (error-occured (re-replace-string "\n\n* *" "; "))
---
> 		      (error-occurred (re-replace-string "\n\n* *" "; "))
diff -r ./mh-show.ml /usr/lib/emacs/newmaclib/mh-show.ml
7c7
< 	    (error-occured
---
> 	    (error-occurred
diff -r ./mh-unmark.ml /usr/lib/emacs/newmaclib/mh-unmark.ml
12c12
< 	(goto-character (+ (dot) 3))
---
> 	(goto-character (+ (dot) 4))
18c18
< 		      (if (error-occured 
---
> 		      (if (error-occurred 
44c44
< 		      (if (error-occured 
---
> 		      (if (error-occurred 
diff -r ./mh-util.ml /usr/lib/emacs/newmaclib/mh-util.ml
11c11
< 	    (goto-character (+ (dot) 3))
---
> 	    (goto-character (+ (dot) 4))
42c42
< 	    (error-occured 
---
> 	    (error-occurred 
52,58c52
< 	    (error-occured 
< 		(search-forward "current-folder:")
< 		(while (looking-at "[\t ]") (forward-character))
< 		(set-mark) (end-of-line)
< 		(setq mh-folder (region-to-string))
< 	    )
< 	    (if (error-occured (search-forward "\nmhe:"))
---
> 	    (if (error-occurred (search-forward "\nmhe:"))
62d55
< ;UCI		      (insert-string "mhe: audit")
64a58,66
> 	    )
> 	    (if (error-occurred
> 		    (read-file (concat mh-path "/context"))
> 		    (search-forward "current-folder:")
> 		    (while (looking-at "[\t ]") (forward-character))
> 		    (set-mark) (end-of-line)
> 		    (setq mh-folder (region-to-string))
> 		)
> 		(setq mh-folder "inbox")
_____________________________________________________
Matt		University	crawford@anl-mcs.arpa
Crawford	of Chicago	ihnp4!oddjob!matt