"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
(mdw-whitespace-mode 1)))
(add-hook 'hack-local-variables-hook 'mdw-post-local-vars-misc-mode-config)
-(defadvice toggle-read-only (after mdw-angry-fruit-salad activate)
- (when mdw-do-misc-mode-hacking
- (setq show-trailing-whitespace (not buffer-read-only))
- (mdw-whitespace-mode (if buffer-read-only 0 1))))
+(defmacro mdw-advise-update-angry-fruit-salad (&rest funcs)
+ `(progn ,@(mapcar (lambda (func)
+ `(defadvice ,func
+ (after mdw-angry-fruit-salad activate)
+ (when mdw-do-misc-mode-hacking
+ (setq show-trailing-whitespace
+ (not buffer-read-only))
+ (mdw-whitespace-mode (if buffer-read-only 0 1)))))
+ funcs)))
+(mdw-advise-update-angry-fruit-salad toggle-read-only
+ read-only-mode
+ view-mode
+ view-mode-enable
+ view-mode-disable)
(eval-after-load 'gtags
'(progn
(t :background "red" :foreground "white" :weight bold))
(mdw-define-face message-cited-text
(default :slant italic)
- (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (((type tty)) :foreground "cyan") (t :foreground "SkyBlue1"))
(mdw-define-face message-header-cc
- (default :weight bold)
+ (default :slant italic)
(((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
(mdw-define-face message-header-newsgroups
- (default :weight bold)
+ (default :slant italic)
(((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
(mdw-define-face message-header-subject
- (default :weight bold)
(((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
(mdw-define-face message-header-to
- (default :weight bold)
(((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
(mdw-define-face message-header-xheader
- (default :weight bold)
+ (default :slant italic)
(((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
(mdw-define-face message-header-other
- (default :weight bold)
+ (default :slant italic)
(((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
(mdw-define-face message-header-name
+ (default :weight bold)
(((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+
(mdw-define-face which-func
(t nil))
+(mdw-define-face gnus-header-name
+ (default :weight bold)
+ (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+(mdw-define-face gnus-header-subject
+ (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+(mdw-define-face gnus-header-from
+ (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+(mdw-define-face gnus-header-to
+ (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+(mdw-define-face gnus-header-content
+ (default :slant italic)
+ (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+
+(mdw-define-face gnus-cite-1
+ (((type tty)) :foreground "cyan") (t :foreground "SkyBlue1"))
+(mdw-define-face gnus-cite-2
+ (((type tty)) :foreground "blue") (t :foreground "RoyalBlue2"))
+(mdw-define-face gnus-cite-3
+ (((type tty)) :foreground "magenta") (t :foreground "MediumOrchid"))
+(mdw-define-face gnus-cite-4
+ (((type tty)) :foreground "red") (t :foreground "firebrick2"))
+(mdw-define-face gnus-cite-5
+ (((type tty)) :foreground "yellow") (t :foreground "burlywood2"))
+(mdw-define-face gnus-cite-6
+ (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+(mdw-define-face gnus-cite-7
+ (((type tty)) :foreground "cyan") (t :foreground "SlateBlue1"))
+(mdw-define-face gnus-cite-8
+ (((type tty)) :foreground "blue") (t :foreground "RoyalBlue2"))
+(mdw-define-face gnus-cite-9
+ (((type tty)) :foreground "magenta") (t :foreground "purple2"))
+(mdw-define-face gnus-cite-10
+ (((type tty)) :foreground "red") (t :foreground "DarkOrange2"))
+(mdw-define-face gnus-cite-11
+ (t :foreground "grey"))
+
(mdw-define-face diff-header
(t nil))
(mdw-define-face diff-index
;;;--------------------------------------------------------------------------
;;; C programming configuration.
-;; Linux kernel hacking.
-
-(defvar linux-c-mode-hook)
-
-(defun linux-c-mode ()
- (interactive)
- (c-mode)
- (setq major-mode 'linux-c-mode)
- (setq mode-name "Linux C")
- (run-hooks 'linux-c-mode-hook))
-
;; Make C indentation nice.
(defun mdw-c-lineup-arglist (langelem)
;; Other stuff.
(mdw-c-style)
- (setq c-hanging-comment-ender-p nil)
- (setq c-backslash-column 72)
- (setq c-label-minimum-indentation 0)
- (setq mdw-fill-prefix mdw-c-comment-fill-prefix)
+ (setq c-hanging-comment-ender-p nil
+ c-backslash-column 72
+ c-label-minimum-indentation 0
+ mdw-fill-prefix mdw-c-comment-fill-prefix)
;; Now define things to be fontified.
(make-local-variable 'font-lock-keywords)