(trap (bbdb-initialize 'gnus 'sendmail 'message)))
(setq bbdb-file "~/etc/brain/bbdb"
bbdb-north-american-phone-numbers-p nil
+ bbdb-extract-address-components-func 'bbdb-extract-address-components
bbdb/news-auto-create-p
(lambda ()
(let ((group gnus-newsgroup-name))
"@\\(\\(dist\\|esc\\)orted\\.org\\.uk\\|odin\\.gg\\)"
"\\|" "distorted\\.mdw@g\\(\\|oogle\\)mail.com"
"\\|" "mwooding@\\(good\\|blackberry\\)\\.com"
+ "\\|" "mark\\.wooding@trustonic\\.com"
"\\)$")
bbdb-canonicalize-net-hook
(lambda (addr)
</edit>
</match>
- <match targets="pattern">
+ <match target="pattern">
<test name="family"><string>Geneva</string></test>
<edit mode="append" name="family"><string>FreeSans</string></edit>
</match>
"Save match data around the `markdown-mode' `after-change-functions' hook."
(save-match-data ad-do-it))
+;; Bug fix for `bbdb-canonicalize-address': on Emacs 24, `run-hook-with-args'
+;; always returns nil, with the result that all email addresses are lost.
+;; Replace the function entirely.
+(defadvice bbdb-canonicalize-address
+ (around mdw-bug-fix activate compile)
+ "Don't use `run-hook-with-args', because that doesn't work."
+ (let ((net (ad-get-arg 0)))
+
+ ;; Make sure this is a proper hook list.
+ (if (functionp bbdb-canonicalize-net-hook)
+ (setq bbdb-canonicalize-net-hook (list bbdb-canonicalize-net-hook)))
+
+ ;; Iterate over the hooks until things converge.
+ (let ((donep nil))
+ (while (not donep)
+ (let (next (changep nil)
+ hook (hooks bbdb-canonicalize-net-hook))
+ (while hooks
+ (setq hook (pop hooks))
+ (setq next (funcall hook net))
+ (if (not (equal next net))
+ (setq changep t
+ net next)))
+ (setq donep (not changep)))))
+ (setq ad-return-value net)))
+
;; Transient mark mode hacks.
(defadvice exchange-point-and-mark