* Re: drafts and expiry-target problem and solution [not found] <87r6eevweh.fsf@pascal.matem.unam.mx> @ 2008-03-18 12:53 ` Katsumi Yamaoka 2008-03-18 18:37 ` Reiner Steib 2008-03-19 0:27 ` Nils Ackermann 0 siblings, 2 replies; 5+ messages in thread From: Katsumi Yamaoka @ 2008-03-18 12:53 UTC (permalink / raw) To: nils-dated-1213237429.39274f; +Cc: bugs, ding >>>>> Nils Ackermann wrote: > This seems to be a long standing bug, I have found messages dating > back to 2001 reporting it. > Minimal setup: > In a pristine environment, using the following .gnus: > (setq gnus-select-method '(nnnil "")) > (setq nnml-get-new-mail nil) > (setq nnml-directory "~/Mail/nnml") > (setq nnml-active-file "~/Mail/nnml/active") > (setq nnml-inhibit-expiry t) > (setq gnus-secondary-select-methods > '((nnml "") > )) > (setq nnmail-expiry-target "nnml:archive") > (setq gnus-message-archive-group "nnml:archive") > (setq gnus-parameters '(("nndraft:drafts" (expiry-target . delete)))) > do the following: > Write email, save it, send it. Do it again. Second time gives > error: `nnml-save-mail: Selecting deleted buffer'. > Expectation would be no error, because overriding expiry-target in > drafts group parameters. I made a temporary user account and tested that configuration several hours. The error seems to be triggered by changing of the nnml server by `nnoo-change-server' (even if it remains the same server) because `message-disassociate-draft' doesn't specify the draft group name fully. > Background: > I like to archive all incoming and all outgoing email in the same nnml > archive folder. Therefore I set `total-expire' in the group > parameters globally (via topics), and I set `nnmail-expiry-target' and > `gnus-message-archive-group' to the same group, globally. > In the drafts group a problem appears: message mode uses the internal > expiry function `nnmh-request-expire-articles' from nnmh.el to delete > the message, immediately. If `nnmail-expiry-target' is set to a > folder, the email is not deleted but moved to this folder instead. > Of course, since the values of `nnmail-expiry-target' and > `gnus-message-archive-group' coincide, gnus tries to save the message > in this folder twice, but gives an error, I don't know why. I think > it should succeed without an error, and warn about it (with variable > to turn the warning off). This is one bug. But doesn't your patch to message.el solve it? Although I tried modifying the `nnml-open-nov' function as follows, before applying your patch, it is unnecessary, isn't it? (defun nnml-open-nov (group) (let ((buffer (cdr (assoc group nnml-nov-buffer-alist)))) (if (gnus-buffer-live-p buffer) buffer (setq buffer (nnml-get-nov-buffer group)) (push (cons group buffer) nnml-nov-buffer-alist) buffer))) > The second bug is that setting the group parameter `expiry-target' for > the drafts group to 'delete doesn't change anything. This clearly > contradicts the manual, where it is stated that group parameters > override global settings. (By the way, in my real setup the parameter > is set via the groups buffer, and not via the variable, but the result > is the same.) The reason is that `nnmh-request-expire-articles' does > not honor the group parameter `expiry-target' at all. > The following patch fixes the second bug for me, minimally. It is not > enough to change `nnmh-request-expire-articles', I also had to change > `message-disassociate-draft' from message.el to use the full group > specification "nndraft:drafts". It seems that > `gnus-group-find-parameter' needs this to find the parameters. > A quick grep through source (by parameter names) showed that there are > many places where (general) group parameters aren't honored, even if > they should be. Potentially this gives rise to a lot of bugs that > seem unrelated. Probably there are also more places where the full > group specification is missing in using `gnus-group-find-parameter'. Indeed. The patches look good to me. It is the best if you have signed a paper to FSF, but it seems to be able to treat as a tiny change. How do you wish to do? > --- nnmh.el.orig 2008-01-21 11:12:29.000000000 -0600 > +++ nnmh.el 2008-01-21 12:30:29.000000000 -0600 > @@ -256,6 +256,9 @@ > &optional server force) > (nnmh-possibly-change-directory newsgroup server) > (let* ((is-old t) > + ;; copied and modified from gnus-group.el, def of gnus-group-expire-articles-1: > + (nnmail-expiry-target > + (or (gnus-group-find-parameter group 'expiry-target t) nnmail-expiry-target)) ***** This should be the variable symbol `newsgroup'. =============================================== > article rest mod-time) > (nnheader-init-server-buffer) > --- message.el.orig 2008-03-13 20:44:50.000000000 -0600 > +++ message.el 2008-01-21 12:34:19.000000000 -0600 > @@ -5797,7 +5797,7 @@ > "Disassociate the message buffer from the drafts directory." > (when message-draft-article > (nndraft-request-expire-articles > - (list message-draft-article) "drafts" nil t))) > + (list message-draft-article) "nndraft:drafts" nil t))) > (defun message-insert-headers () > "Generate the headers for the article." > Gnus v5.11 > GNU Emacs 22.1.1 (i486-pc-linux-gnu, GTK+ Version 2.12.0) > of 2007-11-06 on terranova, modified by Ubuntu > ------------------ Environment follows ------------------ [...] Regards, ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: drafts and expiry-target problem and solution 2008-03-18 12:53 ` drafts and expiry-target problem and solution Katsumi Yamaoka @ 2008-03-18 18:37 ` Reiner Steib 2008-03-18 22:59 ` Katsumi Yamaoka 2008-03-19 0:27 ` Nils Ackermann 1 sibling, 1 reply; 5+ messages in thread From: Reiner Steib @ 2008-03-18 18:37 UTC (permalink / raw) To: Katsumi Yamaoka; +Cc: nils-dated, bugs, ding On Tue, Mar 18 2008, Katsumi Yamaoka wrote: [ Patches by Nils Ackermann ] > The patches look good to me. It is the best if you have signed a > paper to FSF, He hasn't. > but it seems to be able to treat as a tiny change. The patches are sufficiently small to be installed without papers. Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: drafts and expiry-target problem and solution 2008-03-18 18:37 ` Reiner Steib @ 2008-03-18 22:59 ` Katsumi Yamaoka 0 siblings, 0 replies; 5+ messages in thread From: Katsumi Yamaoka @ 2008-03-18 22:59 UTC (permalink / raw) To: nils-dated-1213237429.39274f; +Cc: bugs, ding >>>>> Reiner Steib wrote: > On Tue, Mar 18 2008, Katsumi Yamaoka wrote: > [ Patches by Nils Ackermann ] >> The patches look good to me. It is the best if you have signed a >> paper to FSF, > He hasn't. >> but it seems to be able to treat as a tiny change. > The patches are sufficiently small to be installed without papers. Ok, I've installed Nils Ackermann's patch in the Gnus trunk and the v5-10 branch. >>>>> Katsumi Yamaoka wrote: >> error: `nnml-save-mail: Selecting deleted buffer'. > But doesn't your patch to message.el solve it? Although I tried > modifying the `nnml-open-nov' function as follows, before applying > your patch, it is unnecessary, isn't it? > (defun nnml-open-nov (group) > (let ((buffer (cdr (assoc group nnml-nov-buffer-alist)))) > (if (gnus-buffer-live-p buffer) > buffer > (setq buffer (nnml-get-nov-buffer group)) > (push (cons group buffer) nnml-nov-buffer-alist) > buffer))) I didn't install it for the moment, since it may be no more than a workaround to hide another nnoo-related bug. Regards, ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: drafts and expiry-target problem and solution 2008-03-18 12:53 ` drafts and expiry-target problem and solution Katsumi Yamaoka 2008-03-18 18:37 ` Reiner Steib @ 2008-03-19 0:27 ` Nils Ackermann 2008-03-19 5:33 ` Katsumi Yamaoka 1 sibling, 1 reply; 5+ messages in thread From: Nils Ackermann @ 2008-03-19 0:27 UTC (permalink / raw) To: ding Katsumi Yamaoka <yamaoka@jpl.org> writes: >>>>>> Nils Ackermann wrote: >> I like to archive all incoming and all outgoing email in the same nnml >> archive folder. Therefore I set `total-expire' in the group >> parameters globally (via topics), and I set `nnmail-expiry-target' and >> `gnus-message-archive-group' to the same group, globally. > >> In the drafts group a problem appears: message mode uses the internal >> expiry function `nnmh-request-expire-articles' from nnmh.el to delete >> the message, immediately. If `nnmail-expiry-target' is set to a >> folder, the email is not deleted but moved to this folder instead. > >> Of course, since the values of `nnmail-expiry-target' and >> `gnus-message-archive-group' coincide, gnus tries to save the message >> in this folder twice, but gives an error, I don't know why. I think >> it should succeed without an error, and warn about it (with variable >> to turn the warning off). This is one bug. > > But doesn't your patch to message.el solve it? Although I tried > modifying the `nnml-open-nov' function as follows, before applying > your patch, it is unnecessary, isn't it? You're right, with respect to this bug it would probably be enough to call `message-disassociate-draft' with the full group specification. On second thought it appears to me that `message-disassociate-draft' shouldn't rely on `nnmh-request-expire-articles' to delete the mail from the drafts group. It should just delete it. Is there any deep reason for this choice? [snip] >> The second bug is that setting the group parameter `expiry-target' for >> the drafts group to 'delete doesn't change anything. This clearly >> contradicts the manual, where it is stated that group parameters >> override global settings. (By the way, in my real setup the parameter >> is set via the groups buffer, and not via the variable, but the result >> is the same.) The reason is that `nnmh-request-expire-articles' does >> not honor the group parameter `expiry-target' at all. [snip] >> A quick grep through source (by parameter names) showed that there are >> many places where (general) group parameters aren't honored, even if >> they should be. Potentially this gives rise to a lot of bugs that >> seem unrelated. Probably there are also more places where the full >> group specification is missing in using `gnus-group-find-parameter'. This seems much more serious to me. I am considering helping to rectify this. Please instruct me about signing the papers. Regards, Nils -- Info: http://www.ackermath.info/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: drafts and expiry-target problem and solution 2008-03-19 0:27 ` Nils Ackermann @ 2008-03-19 5:33 ` Katsumi Yamaoka 0 siblings, 0 replies; 5+ messages in thread From: Katsumi Yamaoka @ 2008-03-19 5:33 UTC (permalink / raw) To: nils-dated-1213237429.39274f; +Cc: ding [-- Attachment #1: Type: text/plain, Size: 594 bytes --] >>>>> Nils Ackermann wrote: > On second thought it appears to me that `message-disassociate-draft' > shouldn't rely on `nnmh-request-expire-articles' to delete the mail > from the drafts group. It should just delete it. Is there any deep > reason for this choice? I agree that `message-disassociate-draft' always deletes a draft backup since it differs from a normal message, i.e., it has a header separator, etc. But `nndraft-request-expire-articles', that uses `nnmh-request-expire-articles', is easy to use because it knows what draft to be deleted, I think. A corner-cutting way is: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: Type: text/x-patch, Size: 510 bytes --] --- nnmh.el~ 2008-03-18 22:47:32 +0000 +++ nnmh.el 2008-03-19 05:29:22 +0000 @@ -257,8 +257,10 @@ (nnmh-possibly-change-directory newsgroup server) (let ((is-old t) (nnmail-expiry-target - (or (gnus-group-find-parameter newsgroup 'expiry-target t) - nnmail-expiry-target)) + (if (string-equal newsgroup "nndraft:drafts") + 'delete + (or (gnus-group-find-parameter newsgroup 'expiry-target t) + nnmail-expiry-target))) article rest mod-time) (nnheader-init-server-buffer) [-- Attachment #3: Type: text/plain, Size: 528 bytes --] >>> A quick grep through source (by parameter names) showed that there are >>> many places where (general) group parameters aren't honored, even if >>> they should be. Potentially this gives rise to a lot of bugs that >>> seem unrelated. Probably there are also more places where the full >>> group specification is missing in using `gnus-group-find-parameter'. > This seems much more serious to me. I am considering helping to > rectify this. Please instruct me about signing the papers. Thanks. I sent a recipe to you. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-03-19 5:33 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <87r6eevweh.fsf@pascal.matem.unam.mx> 2008-03-18 12:53 ` drafts and expiry-target problem and solution Katsumi Yamaoka 2008-03-18 18:37 ` Reiner Steib 2008-03-18 22:59 ` Katsumi Yamaoka 2008-03-19 0:27 ` Nils Ackermann 2008-03-19 5:33 ` Katsumi Yamaoka
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 NNTP newsgroup(s).