viewmail-info
[Top][All Lists]
Advanced

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

Re: [VM] bug with labels in virtual folders


From: John Hein
Subject: Re: [VM] bug with labels in virtual folders
Date: Tue, 8 Jan 2013 11:12:38 -0700 (MST)

Julian Bradfield wrote at 09:00 +0000 on Jan  8, 2013:
 > After a year (or maybe two) of elapsed time and probably tens of hours
 > staring at the lisp debugger, I have finally tracked down the most
 > annoying (for me) outstanding bug in vm. That is, I've fixed it, but I
 > don't understand the fix or the bug!
 >
 > My vm is Uday's private 8.2.X branch of 6 February 2012, but I think
 > this bug is still in trunk (haven't tried it, though).

I can't reproduce this with emacs 24.2.1 and vm trunk rev 1476.
Revisiting after 'l b', quit has both labels a & b.


 > Here's the bug description:
 > 
 > Create a folder (say /tmp/I) containing a single message.
 > Visit the folder, and add the label "a" to the message.
 > Quit the folder.
 > 
 > Now do
 > (setq vm-virtual-folder-alist
 >       '(
 >      ("V" (("/tmp/I") (any)))))
 > 
 > Visit the virtual folder V.
 > Add the label "b" to the message.
 > The summary mode line will show the message as having labels "a" and
 > "b", as expected; but in fact the message has only the new label "b".
 > To see this, save the folder, quit, and re-visit the real folder (or
 > the virtual folder).
 > 
 > The thing that happened this morning was that I spent so long staring
 > at one line in the debugger that the flush timer fired while I was
 > doing so, which magically made the bug not happen.
 > 
 > The following patch appears to fix the bug:
 > 
 > *** vm-undo.el       2012/11/26 15:09:10     1.1
 > --- vm-undo.el       2013/01/08 08:27:02     1.2
 > ***************
 > *** 597,603 ****
 >         (vm-set-labels-of m labels)
 >         (vm-set-label-string-of m nil)
 >         (vm-mark-for-summary-update m)
 > !       (if (eq vm-flush-interval t)
 >        (vm-stuff-virtual-message-data m)
 >      (vm-set-stuff-flag-of m t))))))
 >   
 > --- 597,604 ----
 >         (vm-set-labels-of m labels)
 >         (vm-set-label-string-of m nil)
 >         (vm-mark-for-summary-update m)
 > !       ;; deferring stuffing breaks labels in virtual folders
 > !       (if t ;(eq vm-flush-interval t)
 >        (vm-stuff-virtual-message-data m)
 >      (vm-set-stuff-flag-of m t))))))
 >   
 > 
 > This does raise the question in my mind as to whether the other
 > similarly deferred uses of vm-stuff-virtual-message-data are
 > dangerous.
 >




reply via email to

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