[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Sent message still in drafts (lisp error: "Selecting deleted buffer"
From: |
Felix Natter |
Subject: |
Re: Sent message still in drafts (lisp error: "Selecting deleted buffer") |
Date: |
Sun, 31 Mar 2013 20:19:34 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) |
hi Katsumi,
now I have another backtrace (debug-on-error=t, with M-x load-library
nnml.el) with the below fix in place:
Debugger entered--Lisp error: (error "Selecting deleted buffer")
set-buffer(#<killed buffer>)
(save-excursion (set-buffer (nnml-open-nov group)) (goto-char (point-max))
(mail-header-set-number headers article) (nnheader-insert-nov headers))
nnml-add-nov("expired" 14148 [nil "Re: Freeplane Kommandozeilenoptionen"
"Felix Natter <fnatter@gmx.net>" "Sun, 31 Mar 2013 20:10:31 +0200"
"<877gkntp5e.fsf@totally-fudged-out-message-id>"
"<87obe9dgi1.fsf@bitburger.home.felix> <514E1497.4040803@web.de>
<514E58BF.5000106@web.de> <87sj3e3yz1.fsf@bitburger.home.felix>
<51577FE4.1080704@web.de> <515781A5.20106@web.de>" 2393 72
"bitburger.home.felix expired:14148" ((To . "Volker B\303\266rchers
<boercher@web.de>"))])
(while --cl-dolist-temp-- (setq ga (car --cl-dolist-temp--)) (nnml-add-nov
(car ga) (cdr ga) headers) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--)))
(let ((--cl-dolist-temp-- group-art) ga) (while --cl-dolist-temp-- (setq ga
...) (nnml-add-nov ... ... headers) (setq --cl-dolist-temp-- ...)) nil)
(catch (quote --cl-block-nil--) (let (... ga) (while --cl-dolist-temp-- ...
... ...) nil))
(cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
(block nil (let (... ga) (while --cl-dolist-temp-- ... ... ...) nil))
(dolist (ga group-art) (nnml-add-nov (car ga) (cdr ga) headers))
(if nnmail-group-names-not-encoded-p (dolist (ga group-art) (nnml-add-nov ...
... headers)) (dolist (ga group-art) (nnml-add-nov ... ... headers)))
(let* ((chars ...) (extension ...) decoded dec file first headers) (when
nnmail-group-names-not-encoded-p (dolist ... ...) (setq dec decoded))
(nnmail-insert-xref group-art) (run-hooks (quote
nnmail-prepare-save-mail-hook)) (run-hooks (quote nnml-prepare-save-mail-hook))
(goto-char (point-min)) (while (looking-at "From ") (replace-match
"X-From-Line: ") (forward-line 1)) (dolist (ga group-art) (if
nnmail-group-names-not-encoded-p ... ... ...) (if first ... ... ...)) (setq
headers (nnml-parse-head chars)) (if nnmail-group-names-not-encoded-p (dolist
... ...) (dolist ... ...)))
nnml-save-mail((("expired" . 14148)) "")
(car (nnml-save-mail (list ...) server))
(setq result (car (nnml-save-mail ... server)))
(and (nnmail-activate (quote nnml)) (setq result (car ...)) (progn
(nnmail-save-active nnml-group-alist nnml-active-file) (and last ...)))
(if (stringp group) (and (nnmail-activate ...) (setq result ...) (progn ...
...)) (and (nnmail-activate ...) (if ... ... ...) (when last ... ... ...)))
(let (result) (when nnmail-cache-accepted-message-ids (nnmail-cache-insert
... group ... ...)) (if (stringp group) (and ... ... ...) (and ... ... ...))
result)
nnml-request-accept-article("expired" "" nil)
gnus-request-accept-article("nnml:expired" nil nil t)
nnmail-expiry-target-group("nnml:expired" "drafts")
nnmh-request-expire-articles((145) "drafts" nil t)
apply(nnmh-request-expire-articles ((145) "drafts" nil t))
nnoo-parent-function(nndraft nnmh-request-expire-articles ((145) "drafts" nil
t))
nndraft-request-expire-articles((145) "drafts" nil t)
message-disassociate-draft()
message-send(nil)
message-send-and-exit(nil)
call-interactively(message-send-and-exit nil nil)
Please tell me if you need additional information.
Thank you very much!
Best Regards,
Felix
Katsumi Yamaoka <yamaoka@jpl.org> writes:
> Felix Natter <fnatter@gmx.net> wrote:
>> Katsumi Yamaoka <yamaoka@jpl.org> writes:
> [...]
>>> I found some other problems on expiring sent drafts to a group.
>>> The principal one is that a draft is not like a normal article:
>>>
>>> ・There is a separator between the header and the body.
>>> - You can't read its body in an expiry group.
>>> - Xref herder, etc. are put at the end of the body.
>>> ・Non-ASCII text has not been encoded properly.
>>> ・Attachments do not necessarily exist when re-using it.
>
>> So the problem is that when I send a draft, its content is subject
>> to expiry, and this does not work because a draft is not like
>> a normal article (and with the "G c" below we tell Gnus to delete
>> and not expire sent drafts)?
>
> Maybe that a draft is not a normal article is not a direct cause
> of your problem. Though I haven't yet investigated why sometimes
> it fails with the message "Selecting deleted buffer".
>
>>> It will cost to improve it.
>
>> What do you mean by "costs to improve it"?
>
> Sorry for my funny English. I meant that it will take time (IOW,
> cost me time ;-) to improve the Lisp code so as to transform
> a draft message, that is copied or moved to a normal group, to
> a normal article.
>
> [...]
>> Yes, I am doing that:
>> (setq nnmail-expiry-target "nnml:expired")
> [...]
>>> how about setting a group parameter so that only sent drafts
>>> are deleted?
> [...]
>> If that works, then I think it's a good idea to mention this problem
>> in the Gnus documentation?
>
> I have another idea. That is to make the behavior of expiring of
> drafts be always `delete' no matter what nnmail-expiry-target is.
> It lets you and friends have no need to have such a special group
> parameter. Ones who want to have a local copy of a sent message
> can use Gcc, that saves it as a normal article. WDYT?
>
--
Felix Natter