info-gnus-english
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs CVS, question regarding ticked, dormant, \Flagged with nnimap.


From: Bruno Hertz
Subject: Re: Emacs CVS, question regarding ticked, dormant, \Flagged with nnimap.
Date: Sun, 27 Mar 2005 22:52:19 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

"Bruno Hertz" <spammer.go.home@gmail.com> writes:

> Addition: the function in question seems to be gnus-update-marks,
> portion
>
>       (when (and (gnus-check-backend-function
>                   'request-set-mark gnus-newsgroup-name)
>                  (not (gnus-article-unpropagatable-p (cdr type))))
>         (let* ((old (cdr (assq (cdr type) (gnus-info-marks info))))
>                (del (gnus-remove-from-range (gnus-copy-sequence old) list))
>                (add (gnus-remove-from-range
>                      (gnus-copy-sequence list) old)))
>           (when add
>             (push (list add 'add (list (cdr type))) delta-marks))
>           (when del
>             (push (list del 'del (list (cdr type))) delta-marks))))
>
> which apparently is meant to work with any backend.
>
> Still, anybody having an idea about whether exchanging add and del
> might break anything?

OK, tracked this further down, the above remarks are apparently wrong.
The action list order applied to marks follows the order defined in
gnus-article-mark-lists, where 'ticked' comes before 'dormant'. So
ticked will be pushed first anyway onto the actions, regardless of
'add' or 'delete'. Which means it will be popped (and applied) last,
hence remove a \Flagged previously set by dormant.

Two solutions come to mind: redefine gnus-article-mark-lists, which
would be somewhat arbitrary and maybe invite for future mistakes, or
sort the actions in nnimap-request-set-mark to do deletes first.

I'm no elisp geek, so some advice on what best to do would be great.

Regards, Bruno.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]