"Bruno Hertz" <[EMAIL PROTECTED]> 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.
_______________________________________________
Info-gnus-english mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/info-gnus-english

Reply via email to