karl@triceratops.cis.ohio-state.edu (Karl Kleinpaste) (05/11/89)
I have been experimenting with reading mail using GNUS. So far, I'm finding it really quite satisfactory. I have a ~karl/Memos directory, and a .forward file which knows how to aim my mail into appropriate increasingly-numbered files there (altogether too complex; I can discriminate classes of mail on all kinds of criteria, usually the From_ originator), and there is a .newsrc-:Memos file which describes the structure. Fine and dandy so far. I have a couple of problems and suggestions, though, which I thought I'd share in the hope of improving things and finding resolution. [1] There is no `forwarding' function in GNUS as there is in RMAIL. That is, I want to forward a message whole to another person. I took a copy of rmail-forward out of rmail.el and hacked it slightly to become gnus-Subject-forward, which is now bound to F for me. (See below.) Also, I added a few headers to gnus-ignored-headers, specifically, Errors-To:, Precedence:, and Received:. (The latter is most important.) [2] A large problem is that GNUS cannot read both real news and a private directory structure in the same Emacs, due to the replacement of certain functions by mhspool.el. This requires me to keep 2 Emacses running in order to be able to switch between news and mail readily. Would it be possible to recode the relevant portions of the GNUS functions so that any function call (gnus-some-function arg1 arg2) was written instead as ((gnus-which some-function) arg1 arg2) where gnus-which returns the appropriate type of function (either news-reading or directory-reading) for the current type of operation? [3] An alternative mechanism for [2] would be to treat news as part of one's own private structure. I attempted this. I symlinked /usr/spool/news into ~karl/Memos/netnews. Then .newsrc-:Memos was edited to include all of my normal .newsrc, with all Usenet groups prefixed with "netnews.", but it didn't work. (This was fortunate, I suppose, based on what I learned immediately afterward...) GNUS spawns "ls -R" to read a private directory structure. Although this is fine for small private directories, it is really bad for the entire netnews structure (especially when we keep 3+ weeks of news around). More importantly, Sun's "ls" won't traverse symlinks with "-R." Significantly, a Pyramid "ls" *will* traverse symlinks with "-R," which means that this would work on a Pyramid, but it would take a horrendous amount of time. Is there any possibility of reworking the manner of private directory analysis so that it doesn't require "ls -R"? An auxiliary pseudo-active file, perhaps? --Karl Additional function gnus-Subject-forward: (defun gnus-Subject-forward () "Forward the current message to another user." (interactive) (switch-to-buffer gnus-Article-buffer) (let ((forward-buffer gnus-Article-buffer) (subject (concat "[" (mail-strip-quoted-names (mail-fetch-field "From")) ": " (or (mail-fetch-field "Subject") "") "]"))) ;; There are always 2 buffers visible; use this window. (mail nil nil subject) (save-excursion (goto-char (point-max)) (forward-line 1) (insert-buffer forward-buffer))))