From: Mark Wooding Date: Thu, 14 Apr 2016 13:00:09 +0000 (+0100) Subject: Merge branch 'master' of https://git.distorted.org.uk/~mdw/profile X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/profile/commitdiff_plain/b76d1b814f813f9d5e692e002b1c8f644b79bc14?hp=-c Merge branch 'master' of https://git.distorted.org.uk/~mdw/profile * 'master' of https://git.distorted.org.uk/~mdw/profile: dot/emacs (bbdb-canonicalize-net-hook): Ignore a personal address scheme. dot/emacs (bbdb-canonicalize-net-hook): Ignore uninteresting addresses. dot/emacs (bbdb-canonicalize-net-hook): Handle `nil' address. dot/emacs: Don't auto-snarf email addresses from mailing lists. dot/emacs: Squash away `blah+...@some.domain' suffixes for BBDB. dot/gnus-local.el.distorted: Now I have my own newscookie. dot/screenrc: Add tracking of activity in other windows. el/dot-emacs.el: More assertive zapping of faces. dot/emacs: Set `frame-background-mode' variable. dot/emacs: Move `C-x w d' to `C-c w d'. --- b76d1b814f813f9d5e692e002b1c8f644b79bc14 diff --combined dot/emacs index 48053fe,b03ff68..c32d836 --- a/dot/emacs +++ b/dot/emacs @@@ -196,12 -196,11 +196,12 @@@ (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\\)" @@@ -209,21 -208,27 +209,28 @@@ "@\\(\\(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. @@@ -495,7 -500,8 +502,8 @@@ ;; 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) @@@ -507,7 -513,7 +515,7 @@@ (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))) @@@ -553,7 -559,7 +561,7 @@@ (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) diff --combined el/dot-emacs.el index fae5e01,a1cba54..dd8dc2f --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@@ -238,32 -238,6 +238,32 @@@ frame is actually mapped on the screen. "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 @@@ -1124,12 -1098,14 +1124,14 @@@ doesn't match any of the regular expres ;;;-------------------------------------------------------------------------- ;;; 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)))