Summary functions damage vm-v5-data headers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
VM |
Triaged
|
Low
|
Unassigned |
Bug Description
Johan Vromans reports (viewmail-info, 2011-08-17):
Using the attached mailbox (small) I can reproduce the following
problem:
* Start GNU/Emacs 23.2 (Fedora14) with "-q" command line option.
* Load VM 8.2.0a (vm-8.0.
* Mx vm-visit-folder, and point it to the mailbox.
4 messages, all new, are shown. The summary shows "Sheila en René".
* Visit all 4 messages; the status changes from New to Read.
* Save the mailbox.
* Exit Emacs
* Restart emacs.
* Load VM 8.2.0a (vm-8.0.
* Mx vm-visit-folder, and point it to the mailbox.
4 messages are shown. The summary shows "Sheila en Ren\351".
Inspection of the (saved) mailbox shows that in the X-VM-v5-Data header,
the name "Sheila en René" is stored encoded in Latin1. I very much doubt
if that's correct.
Follow-up
So it must be some setting in my preferences.
Hmm....
My summary format is:
(setq vm-summary-format "%n %*%a %-18.18UB %-3.3m %2d %4l %UL%I%s\n")
The actual entry in the summary is generated by vm-summary- function- B,
which is part of the bbdb package (file bbdb-vm.el).
(defun vm-summary- function- B (m &optional to-p) uninteresting- senders. " uninteresting- senders (not to-p)) uninteresting- senders (vm-su-from m)) uninteresting- senders- arrow
(vm-summary- function- B m t)) alternate- full-name (vm-su-from m))
(vm- su-full- name m)))) alternate- full-name (if to-p (vm-su-to m) (vm-su-from m))) vm-decode- mime-encoded- words-in- string
"Given a VM message returns the BBDB name of the sender.
Respects vm-summary-
(if (and vm-summary-
(let ((case-fold-search nil))
(if (string-match vm-summary-
(concat vm-summary-
(or (bbdb/vm-
(or (bbdb/vm-
(
(if to-p (vm-su-to-names m) (vm-su-full-name m))))))
This looks fine at first sight, though.
Uday's response:
No, it isn't working. As soon as I tried to use it, I got bad characters in
the summary. BBDB hasn't been maintained for a long time, and trying to
puts its data into VM headers isn't very wise.
I will put this on the To-do list to find some decent solutions.