viewmail-info
[Top][All Lists]
Advanced

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

[VM] bug with labels in virtual folders


From: Julian Bradfield
Subject: [VM] bug with labels in virtual folders
Date: Tue, 08 Jan 2013 09:00:24 +0000
User-agent: slrn/0.9.9p1 (Linux)

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).

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]