From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.user/4744 Path: news.gmane.org!not-for-mail From: "Bruno Hertz" Newsgroups: gmane.emacs.gnus.user Subject: Re: Emacs CVS, question regarding ticked, dormant, \Flagged with nnimap. Date: Sun, 27 Mar 2005 22:52:19 +0200 Organization: Arcor Message-ID: References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1138670652 24711 80.91.229.2 (31 Jan 2006 01:24:12 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 31 Jan 2006 01:24:12 +0000 (UTC) Original-X-From: nobody Tue Jan 17 17:34:15 2006 Original-Path: quimby.gnus.org!newsfeed1.e.nsc.no!uio.no!npeer.de.kpn-eurorings.net!newsfeed.arcor.de!news.arcor.de!not-for-mail Original-Newsgroups: gnu.emacs.gnus User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) Cancel-Lock: sha1:jZ201PpPoWFMC0UDFvCf5B0eNe0= Original-NNTP-Posting-Date: 27 Mar 2005 22:51:49 MEST Original-NNTP-Posting-Host: f31694af.newsread4.arcor-online.net Original-X-Trace: DXC=I2]=iJX78VD[T26?78J:ejgIfPPldDjW\KbG]kaMHFYk:AnJB[CMmlbcBnoQ:^EOWb^5_We]PLG8R:R3H "Bruno Hertz" 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.