(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))
(and (string-match "^nnimap\\+" group)
- (not (string-match ":\\(crap\\|spam\\)\\." group)))))
+ (not (string-match ":\\(crap\\|spam\\|lists\\)\\." group)))))
bbdb-user-mail-names
(concat "^"
"\\(" "\\(mdw\\|markw\\|root\\|postmaster\\)"
"@\\(\\(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)
- (cond ((string-match (concat "^reply-[0-9a-f]+-[0-9a-f]+_"
- "HTML-[0-9]+-[0-9]+-[0-9]+"
- "@\\(nationwide-communications\\.co\\.uk\\)")
- addr)
- (concat "nationwide@" (match-string 1 addr)))
- ((string-match (concat "^[0-9]+@bugs\\."
- "\\(" "debian\\.org"
- "\\|" "distorted\\.org\\.uk"
- "\\)")
- addr)
- (concat "submit@bugs." (match-string 1 addr)))
+ (cond ((null addr)
+ nil)
+ ((or (string-match (concat "^reply-[0-9a-f]+-[0-9a-f]+_"
+ "HTML-[0-9]+-[0-9]+-[0-9]+"
+ "@\\(nationwide-communications\\."
+ "co\\.uk\\)$")
+ addr)
+ (string-match (concat "^[0-9]+@bugs\\."
+ "\\(" "debian\\.org"
+ "\\|" "distorted\\.org\\.uk"
+ "\\)$")
+ addr)
+ (and (string-match "^news\\([0-9]+\\)@\\(.*\\)$" addr)
+ (string= (md5 (match-string 2 addr))
+ "879b795aed959b1a000e9f95c132b16c")))
+ nil)
+ ((string-match "^\\([^@+]+\\)\\+[^@]*\\(@.*\\)$" addr)
+ (concat (match-string 1 addr) (match-string 2 addr)))
(t addr))))
;; Customization.
;; Default frame size.
- (setq default-frame-alist
+ (setq frame-background-mode (if mdw-black-background 'dark 'light)
+ default-frame-alist
`((width . ,(if (>= emacs-major-version 21) 77 78))
(height . 33)
(vertical-scroll-bars . right)
(tool-bar-lines . 0)
(menu-bar-lines . 1)
(cursor-color . "red")
- (background-mode . ,(if mdw-black-background 'dark 'light)))
+ (background-mode . ,frame-background-mode))
initial-frame-alist
`((width . ,(if (>= emacs-major-version 21) 77 78))
(menu-bar-lines . ,(if window-system 1 0)))
(global-set-key [?\C-x ?3] 'mdw-split-window-horizontally)
(global-set-key [?\M-#] 'calc-dispatch)
(global-set-key [?\C-x ?/] 'auto-fill-mode)
- (global-set-key [?\C-x ?w ?d] 'mdw-divvy-window)
+ (global-set-key [?\C-c ?w ?d] 'mdw-divvy-window)
(global-set-key [insertchar] 'overwrite-mode)
(global-set-key [?\C-x ?\C-n] 'skel-create-file)
(global-set-key [?\C-x ?4 ?n] 'skel-create-file-other-window)
"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
;;;--------------------------------------------------------------------------
;;; General fontification.
+ (make-face 'mdw-virgin-face)
+
(defmacro mdw-define-face (name &rest body)
"Define a face, and make sure it's actually set as the definition."
(declare (indent 1)
(debug 0))
`(progn
- (make-face ',name)
+ (copy-face 'mdw-virgin-face ',name)
(defvar ,name ',name)
(put ',name 'face-defface-spec ',body)
(face-spec-set ',name ',body nil)))