chiark / gitweb /
Merge branch 'master' of metalzone:etc/profile
authorMark Wooding <mdw@distorted.org.uk>
Sat, 21 Nov 2009 11:21:07 +0000 (11:21 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 21 Nov 2009 11:21:07 +0000 (11:21 +0000)
* 'master' of metalzone:etc/profile:
  dot/emacs: Consolidate chunks of `add-hook' settings and similar.
  el/dot-emacs.el: Turn on `reveal-mode' because it wins.
  bin/mdw-editor: Use `emacsclient' to edit files.
  dot/emacs: Always start the servers in Emacs 23.
  dot/emacs: Set frame parameters unconditionally.
  el/dot-emacs.el: Add `indent' and `debug' declarations to macros.
  dot/emacs, el/dot-emacs.el: Fix font configuration.
  dot/gnus.el: Use fancy tree drawing if using window-system output.
  dot/xinitrc: Run Emacs with GDK_NATIVE_WINDOWS=1.
  dot/xinitrc: Search for Emacs 23, and prefer it over other Emacsen.

Conflicts:
dot/emacs -- server startup differences

1  2 
dot/emacs
el/dot-emacs.el

diff --combined dot/emacs
index 2959e75d56b74a858736890d2a11860f30f4c587,1b7b5c1146b554fba64a0e4cf84c7c58c44cafa7..480abd116fba4cc21a0870c4742995b7ae67d719
+++ b/dot/emacs
  ;; Emacs server behaviour.
  
  (and (or window-system (>= emacs-major-version 23))
 -     (trap (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$"))
 -         (start-server)
 -         (gnuserv-start)))
 +     (progn (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$")
 +                gnuserv-frame t)
 +          (trap (server-start))
 +          (trap (gnuserv-start))))
  
  ;; Control backup behaviour.
  
        (mdw-uniquify-alist
         '((width . 78)
         (height . 33)
-        (vertical-scroll-bars . right))
-        (and window-system
-           '((cursor-type . bar)
-             (cursor-blink . t)
-             (left-fringe . 5)
-             (right-fringe . 5)
-             (scroll-bar-width . 15)))
-        '((cursor-color . "red"))
+        (vertical-scroll-bars . right)
+        (cursor-type . bar)
+        (cursor-blink . t)
+        (left-fringe . 5)
+        (right-fringe . 5)
+        (scroll-bar-width . 15)
+        (cursor-color . "red"))
         (if mdw-black-background
           '((background-color . "black")
             (foreground-color . "white")
    (windmove-default-keybindings))
  (setq windmove-wrap-around t)
  (trap (iswitchb-mode))
- (global-set-key [?\C-x ?w left] 'windmove-left)
- (global-set-key [?\C-x ?w ?h] 'windmove-left)
- (global-set-key [?\C-x ?w up] 'windmove-up)
- (global-set-key [?\C-x ?w ?k] 'windmove-up)
- (global-set-key [?\C-x ?w down] 'windmove-down)
- (global-set-key [?\C-x ?w ?j] 'windmove-down)
- (global-set-key [?\C-x ?w right] 'windmove-right)
- (global-set-key [?\C-x ?w ?l] 'windmove-right)
- (global-set-key [?\C-x ?g ?l] 'org-store-link)
- (global-set-key [?\C-x ?g ?a] 'org-agenda)
- (global-set-key [?\C-x ?g ?b] 'org-iswitchb)
- (global-set-key [?\C-x ?t ?i] 'timeclock-in)
- (global-set-key [?\C-x ?t ?c] 'timeclock-change)
- (global-set-key [?\C-x ?t ?o] 'timeclock-out)
- (global-set-key [?\C-x ?t ?r] 'timeclock-reread-log)
- (global-set-key [?\C-x ?t ?w] 'timeclock-workday-remaining-string)
- (global-set-key [?\C-x ?t ?s] 'timeclock-status-string)
- (global-set-key [?\C-x ?t ?p] 'nc-timesheet-prepare)
- (global-set-key [?\C-x ?t ?\C-m] 'nc-timesheet-submit)
- (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 [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)
- (global-set-key [?\C-x ?5 ?n] 'skel-create-file-other-frame)
- (global-set-key [delete] 'delete-char)
- (global-set-key [?\M-q] 'mdw-fill-paragraph)
- (global-set-key [?\C-h ?\C-m] 'manual-entry)
- (global-set-key [C-M-backspace] 'backward-kill-sexp)
- (global-set-key [mode-line C-mouse-1] 'mouse-tear-off-window)
- (global-set-key [vertical-scroll-bar C-down-mouse-1]
-               'mouse-drag-vertical-line)
- (global-set-key [vertical-scroll-bar C-mouse-1]
-               #'(lambda () (interactive)))
- (global-set-key [XF86WakeUp] "")
- (and (not mdw-fast-startup) (fboundp 'hippie-expand)
-      (global-set-key [?\M-/] 'hippie-expand))
+ (progn
+   (global-set-key [?\C-x ?w left] 'windmove-left)
+   (global-set-key [?\C-x ?w ?h] 'windmove-left)
+   (global-set-key [?\C-x ?w up] 'windmove-up)
+   (global-set-key [?\C-x ?w ?k] 'windmove-up)
+   (global-set-key [?\C-x ?w down] 'windmove-down)
+   (global-set-key [?\C-x ?w ?j] 'windmove-down)
+   (global-set-key [?\C-x ?w right] 'windmove-right)
+   (global-set-key [?\C-x ?w ?l] 'windmove-right)
+   (global-set-key [?\C-x ?g ?l] 'org-store-link)
+   (global-set-key [?\C-x ?g ?a] 'org-agenda)
+   (global-set-key [?\C-x ?g ?b] 'org-iswitchb)
+   (global-set-key [?\C-x ?t ?i] 'timeclock-in)
+   (global-set-key [?\C-x ?t ?c] 'timeclock-change)
+   (global-set-key [?\C-x ?t ?o] 'timeclock-out)
+   (global-set-key [?\C-x ?t ?r] 'timeclock-reread-log)
+   (global-set-key [?\C-x ?t ?w] 'timeclock-workday-remaining-string)
+   (global-set-key [?\C-x ?t ?s] 'timeclock-status-string)
+   (global-set-key [?\C-x ?t ?p] 'nc-timesheet-prepare)
+   (global-set-key [?\C-x ?t ?\C-m] 'nc-timesheet-submit)
+   (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 [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)
+   (global-set-key [?\C-x ?5 ?n] 'skel-create-file-other-frame)
+   (global-set-key [delete] 'delete-char)
+   (global-set-key [?\M-q] 'mdw-fill-paragraph)
+   (global-set-key [?\C-h ?\C-m] 'manual-entry)
+   (global-set-key [C-M-backspace] 'backward-kill-sexp)
+   (global-set-key [mode-line C-mouse-1] 'mouse-tear-off-window)
+   (global-set-key [vertical-scroll-bar C-down-mouse-1]
+                 'mouse-drag-vertical-line)
+   (global-set-key [vertical-scroll-bar C-mouse-1]
+                 #'(lambda () (interactive)))
+   (global-set-key [XF86WakeUp] "")
+   (and (not mdw-fast-startup) (fboundp 'hippie-expand)
+        (global-set-key [?\M-/] 'hippie-expand)))
  
  (eval-after-load "dired"
    '(progn
  (and (fboundp 'lazy-lock-mode)
       (setq font-lock-support-mode 'lazy-lock-mode))
  ; (setq lazy-lock-defer-contextually t)
- (setq lazy-lock-defer-time nil)
- (setq font-lock-maximum-decoration 3)
- (setq lazy-lock-minimum-size 0)
- (setq lazy-lock-stealth-time 5)
- (setq lazy-lock-stealth-lines 100)
(setq lazy-lock-stealth-verbose t)
+ (setq lazy-lock-defer-time nil
+       font-lock-maximum-decoration 3
+       lazy-lock-minimum-size 0
+       lazy-lock-stealth-time 5
+       lazy-lock-stealth-lines 100
      lazy-lock-stealth-verbose t)
  
- (add-hook 'after-make-frame-functions 'mdw-do-set-font)
- (add-hook 'term-setup-hook (lambda () (mdw-do-set-font (selected-frame))))
- (add-hook 'window-setup-hook (lambda () (mdw-do-set-font (selected-frame))))
+ (progn
+   (add-hook 'c-mode-hook 'mdw-fontify-c-and-c++ t)
+   (add-hook 'objc-mode-hook 'mdw-fontify-c-and-c++ t)
+   (add-hook 'c++-mode-hook 'mdw-fontify-c-and-c++ t)
+   (add-hook 'linux-c-mode-hook #'(lambda () (setq c-basic-offset 8)))
+   (add-hook 'asm-mode-hook 'mdw-fontify-asm t)
  
- (add-hook 'c-mode-hook 'mdw-fontify-c-and-c++ t)
- (add-hook 'objc-mode-hook 'mdw-fontify-c-and-c++ t)
- (add-hook 'c++-mode-hook 'mdw-fontify-c-and-c++ t)
- (add-hook 'linux-c-mode-hook #'(lambda () (setq c-basic-offset 8)))
- (add-hook 'asm-mode-hook 'mdw-fontify-asm t)
+   (add-hook 'icon-mode-hook 'mdw-fontify-icon t)
  
- (add-hook 'icon-mode-hook 'mdw-fontify-icon t)
+   (add-hook 'apcalc-mode-hook 'mdw-misc-mode-config t)
+   (add-hook 'apcalc-mode-hook 'mdw-fontify-apcalc t)
  
(add-hook 'apcalc-mode-hook 'mdw-misc-mode-config t)
(add-hook 'apcalc-mode-hook 'mdw-fontify-apcalc t)
  (add-hook 'java-mode-hook 'mdw-fontify-java t)
  (add-hook 'csharp-mode-hook 'mdw-fontify-csharp t)
  
- (add-hook 'java-mode-hook 'mdw-fontify-java t)
- (add-hook 'csharp-mode-hook 'mdw-fontify-csharp t)
+   (add-hook 'awk-mode-hook 'mdw-fontify-awk t)
  
- (add-hook 'awk-mode-hook 'mdw-fontify-awk t)
+   (add-hook 'perl-mode-hook 'mdw-fontify-perl t)
+   (add-hook 'cperl-mode-hook 'mdw-fontify-perl t))
  
- (add-hook 'perl-mode-hook 'mdw-fontify-perl t)
- (add-hook 'cperl-mode-hook 'mdw-fontify-perl t)
- (setq-default py-indent-offset 2)
- (add-hook 'python-mode-hook 'mdw-fontify-python t)
- (add-hook 'pyrex-mode-hook 'mdw-fontify-pyrex t)
- (setq py-python-command-args `("-i" "-colors" ,(if mdw-black-background
-                                                  "Linux"
-                                                "LightBG")))
+ (progn
+   (setq-default py-indent-offset 2
+               py-python-command-args
+               `("-i" "-colors" ,(if mdw-black-background
+                                     "Linux" "LightBG")))
+   (add-hook 'python-mode-hook 'mdw-fontify-python t)
+   (add-hook 'pyrex-mode-hook 'mdw-fontify-pyrex t))
  
  (setq-default tcl-indent-level 2)
  (add-hook 'tcl-mode-hook 'mdw-fontify-tcl t)
  
  (add-hook 'rexx-mode-hook 'mdw-fontify-rexx t)
  
- (setq sml-nested-if-indent t)
- (setq sml-case-indent nil)
- (setq sml-indent-level 4)
(setq sml-type-of-indent nil)
+ (setq sml-nested-if-indent t
+       sml-case-indent nil
+       sml-indent-level 4
      sml-type-of-indent nil)
  (add-hook 'sml-mode-hook 'mdw-fontify-sml t)
  
  (add-hook 'haskell-mode-hook 'mdw-fontify-haskell t)
  (add-hook 'smalltalk-mode-hook 'mdw-fontify-smalltalk t)
  (add-hook 'smalltalk-mode-hook 'mdw-setup-smalltalk t)
  
- (add-hook 'emacs-lisp-mode-hook 'mdw-fontify-lispy t)
- (add-hook 'scheme-mode-hook 'mdw-fontify-lispy t)
- (add-hook 'lisp-mode-hook 'mdw-fontify-lispy t)
- (add-hook 'inferior-lisp-mode-hook 'mdw-fontify-lispy t)
- (add-hook 'lisp-interaction-mode-hook 'mdw-fontify-lispy t)
- (add-hook 'slime-repl-mode-hook 'mdw-fontify-lispy t)
- (add-hook 'lisp-mode-hook 'mdw-common-lisp-indent t)
- (add-hook 'inferior-lisp-mode-hook
+ (progn
+   (add-hook 'emacs-lisp-mode-hook 'mdw-fontify-lispy t)
+   (add-hook 'scheme-mode-hook 'mdw-fontify-lispy t)
+   (add-hook 'lisp-mode-hook 'mdw-fontify-lispy t)
+   (add-hook 'inferior-lisp-mode-hook 'mdw-fontify-lispy t)
+   (add-hook 'lisp-interaction-mode-hook 'mdw-fontify-lispy t)
+   (add-hook 'slime-repl-mode-hook 'mdw-fontify-lispy t)
+   (add-hook 'lisp-mode-hook 'mdw-common-lisp-indent t)
+   (add-hook 'inferior-lisp-mode-hook
          #'(lambda ()
-             (local-set-key "\C-m" 'comint-send-and-indent)) t)
+             (local-set-key "\C-m" 'comint-send-and-indent)) t))
  
  (add-hook 'text-mode-hook 'mdw-text-mode t)
  
diff --combined el/dot-emacs.el
index f535f10e328715ad790e09b73cb978be7c8bac91,069f202e4d89c3606e93cc149b0fb5006181be53..1112f35599b5b9dfeb1914873b34e0842f740b59
@@@ -48,6 -48,8 +48,8 @@@ This may be at the expense of cool feat
  
  (defmacro mdw-regexps (&rest list)
    "Turn a LIST of strings into a single regular expression at compile-time."
+   (declare (indent nil)
+          (debug 0))
    `',(make-regexp list))
  
  ;; Some error trapping.
@@@ -57,6 -59,8 +59,8 @@@
  
  (defmacro trap (&rest forms)
    "Execute FORMS without allowing errors to propagate outside."
+   (declare (indent 0)
+          (debug t))
    `(condition-case err
         ,(if (cdr forms) (cons 'progn forms) (car forms))
       (error (message "Error (trapped): %s in %s"
@@@ -501,42 -505,6 +505,42 @@@ CHECK is fboundp, and returning the cor
          (setq answer func)))
      answer))
  
 +(eval-after-load "w3m-search"
 +  '(progn
 +     (dolist
 +       (item
 +        '(("g" "Google" "http://www.google.co.uk/search?q=%s")
 +          ("gd" "Google Directory"
 +           "http://www.google.com/search?cat=gwd/Top&q=%s")
 +          ("gg" "Google Groups" "http://groups.google.com/groups?q=%s")
 +          ("ward" "Ward's wiki" "http://c2.com/cgi/wiki?%s")
 +          ("gi" "Images" "http://images.google.com/images?q=%s")
 +          ("rfc" "RFC"
 +           "http://metalzone.distorted.org.uk/ftp/pub/mirrors/rfc/rfc%s.txt.gz")
 +          ("wp" "Wikipedia"
 +           "http://en.wikipedia.org/wiki/Special:Search?go=Go&search=%s")
 +          ("imdb" "IMDb" "http://www.imdb.com/Find?%s")
 +          ("nc-wiki" "nCipher wiki"
 +           "http://wiki.ncipher.com/wiki/bin/view/Devel/?topic=%s")
 +          ("map" "Google maps" "http://maps.google.co.uk/maps?q=%s&hl=en")
 +          ("lp" "Launchpad bug by number"
 +           "https://bugs.launchpad.net/bugs/%s")
 +          ("lppkg" "Launchpad bugs by package"
 +           "https://bugs.launchpad.net/%s")
 +          ("msdn" "MSDN"
 +           "http://social.msdn.microsoft.com/Search/en-GB/?query=%s&ac=8")
 +          ("debbug" "Debian bug by number"
 +           "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s")
 +          ("debbugpkg" "Debian bugs by package"
 +           "http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=%s")
 +          ("ljlogin" "LJ login" "http://www.livejournal.com/login.bml")))
 +       (add-to-list 'w3m-search-engine-alist
 +                  (list (cadr item) (caddr item) nil))
 +       (add-to-list 'w3m-uri-replace-alist
 +                  (list (concat "\\`" (car item) ":")
 +                        'w3m-search-uri-replace
 +                        (cadr item))))))
 +
  ;;;--------------------------------------------------------------------------
  ;;; Paragraph filling.
  
@@@ -682,21 -650,13 +686,13 @@@ case.
         (gtags-mode))
    (outline-minor-mode t)
    (hs-minor-mode t)
-   (mdw-set-font))
+   (reveal-mode t)
+   (trap (turn-on-font-lock)))
  
  (eval-after-load 'gtags
    '(dolist (key '([mouse-2] [mouse-3]))
       (define-key gtags-mode-map key nil)))
  
- ;; Set up all sorts of faces.
- (defvar mdw-set-font nil)
- (defvar mdw-punct-face 'mdw-punct-face "Face to use for punctuation")
- (make-face 'mdw-punct-face)
- (defvar mdw-number-face 'mdw-number-face "Face to use for numbers")
- (make-face 'mdw-number-face)
  ;; Backup file handling.
  
  (defvar mdw-backup-disable-regexps nil
@@@ -718,148 -678,155 +714,173 @@@ doesn't match any of the regular expres
           answer))))
  (setq backup-enable-predicate 'mdw-backup-enable-predicate)
  
 +;; Frame cleanup.
 +
 +(defun mdw-last-one-out-turn-off-the-lights (frame)
 +  "Disconnect from an X display if this was the last frame on that display."
 +  (let ((frame-display (frame-parameter frame 'display)))
 +    (when (and frame-display
 +             (eq window-system 'x)
 +             (not (some (lambda (fr)
 +                          (message "checking frame %s" frame)
 +                          (and (not (eq fr frame))
 +                               (string= (frame-parameter frame 'display)
 +                                        frame-display)
 +                               (progn "frame %s still uses us" nil)))
 +                        (frame-list))))
 +      (message "turn out the lights")
 +      (run-with-idle-timer 0 nil #'x-close-connection frame-display))))
 +(add-hook 'delete-frame-functions 'mdw-last-one-out-turn-off-the-lights)
 +
  ;;;--------------------------------------------------------------------------
  ;;; General fontification.
  
- (defun mdw-set-fonts (frame faces)
-   (while faces
-     (let ((face (caar faces)))
-       (or (facep face) (make-face face))
-       (set-face-attribute face frame
-                         :family 'unspecified
-                         :width 'unspecified
-                         :height 'unspecified
-                         :weight 'unspecified
-                         :slant 'unspecified
-                         :foreground 'unspecified
-                         :background 'unspecified
-                         :underline 'unspecified
-                         :overline 'unspecified
-                         :strike-through 'unspecified
-                         :box 'unspecified
-                         :inverse-video 'unspecified
-                         :stipple 'unspecified
-                         ;:font 'unspecified
-                         :inherit 'unspecified)
-       (apply 'set-face-attribute face frame (cdar faces))
-       (setq faces (cdr faces)))))
- (defun mdw-do-set-font (&optional frame)
-   (interactive)
-   (mdw-set-fonts (and (boundp 'frame) frame)  `(
-     (default :foreground "white" :background "black"
-       ,@(cond ((eq window-system 'w32)
-              '(:family "courier new" :height 85))
-             ((eq window-system 'x)
-              '(:family "misc-fixed" :height 130 :width semi-condensed))))
-     (fixed-pitch)
-     (minibuffer-prompt)
-     (mode-line :foreground "blue" :background "yellow"
-              :box (:line-width 1 :style released-button))
-     (mode-line-inactive :foreground "yellow" :background "blue"
-                       :box (:line-width 1 :style released-button))
-     (scroll-bar :foreground "black" :background "lightgrey")
-     (fringe :foreground "yellow" :background "black")
-     (show-paren-match-face :background "darkgreen")
-     (show-paren-mismatch-face :background "red")
-     (font-lock-warning-face :background "red" :weight bold)
-     (highlight :background "DarkSeaGreen4")
-     (holiday-face :background "red")
-     (calendar-today-face :foreground "yellow" :weight bold)
-     (comint-highlight-prompt :weight bold)
-     (comint-highlight-input)
-     (font-lock-builtin-face :weight bold)
-     (font-lock-type-face :weight bold)
-     (region :background ,(if window-system "grey30" "blue"))
-     (isearch :background "palevioletred2")
-     (mdw-punct-face :foreground ,(if window-system "burlywood2" "yellow"))
-     (mdw-number-face :foreground "yellow")
-     (font-lock-function-name-face :weight bold)
-     (font-lock-variable-name-face :slant italic)
-     (font-lock-comment-delimiter-face
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :slant italic)
-     (font-lock-comment-face
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :slant italic)
-     (font-lock-string-face :foreground ,(if window-system "SkyBlue1" "cyan"))
-     (font-lock-keyword-face :weight bold)
-     (font-lock-constant-face :weight bold)
-     (font-lock-reference-face :weight bold)
-     (message-cited-text
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :slant italic)
-     (message-separator :background "red" :foreground "white" :weight bold)
-     (message-header-cc
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :weight bold)
-     (message-header-newsgroups
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :weight bold)
-     (message-header-subject
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :weight bold)
-     (message-header-to
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :weight bold)
-     (message-header-xheader
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :weight bold)
-     (message-header-other
-        :foreground ,(if window-system "SeaGreen1" "green")
-        :weight bold)
-     (message-header-name
-        :foreground ,(if window-system "SeaGreen1" "green"))
-     (woman-bold :weight bold)
-     (woman-italic :slant italic)
-     (p4-depot-added-face :foreground "green")
-     (p4-depot-branch-op-face :foreground "yellow")
-     (p4-depot-deleted-face :foreground "red")
-     (p4-depot-unmapped-face
-        :foreground ,(if window-system "SkyBlue1" "cyan"))
-     (p4-diff-change-face :foreground "yellow")
-     (p4-diff-del-face :foreground "red")
-     (p4-diff-file-face :foreground "SkyBlue1")
-     (p4-diff-head-face :background "grey10")
-     (p4-diff-ins-face :foreground "green")
-     (diff-index :weight bold)
-     (diff-file-header :weight bold)
-     (diff-hunk-header :foreground "SkyBlue1")
-     (diff-function :foreground "SkyBlue1" :weight bold)
-     (diff-header :background "grey10")
-     (diff-added :foreground "green")
-     (diff-removed :foreground "red")
-     (diff-context)
-     (whizzy-slice-face :background "grey10")
-     (whizzy-error-face :background "darkred")
-     (trailing-whitespace :background "red")
- )))
- (defun mdw-set-font ()
-   (trap
-     (turn-on-font-lock)
-     (if (not mdw-set-font)
-       (progn
-         (setq mdw-set-font t)
-         (mdw-do-set-font nil)))))
+ (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)
+      (defvar ,name ',name)
+      (put ',name 'face-defface-spec ',body)
+      ))
+ (mdw-define-face default
+   (((type w32)) :family "courier new" :height 85)
+   (((type x)) :family "6x13" :height 130)
+   (t :foreground "white" :background "black"))
+ (mdw-define-face fixed-pitch
+   (((type w32)) :family "courier new" :height 85)
+   (((type x)) :family "6x13" :height 130)
+   (t :foreground "white" :background "black"))
+ (mdw-define-face region
+   (((type tty)) :background "blue") (t :background "grey30"))
+ (mdw-define-face minibuffer-prompt
+   (t :weight bold))
+ (mdw-define-face mode-line
+   (t :foreground "blue" :background "yellow"
+      :box (:line-width 1 :style released-button)))
+ (mdw-define-face mode-line-inactive
+   (t :foreground "yellow" :background "blue"
+      :box (:line-width 1 :style released-button)))
+ (mdw-define-face scroll-bar
+   (t :foreground "black" :background "lightgrey"))
+ (mdw-define-face fringe
+   (t :foreground "yellow"))
+ (mdw-define-face show-paren-match-face
+   (t :background "darkgreen"))
+ (mdw-define-face show-paren-mismatch-face
+   (t :background "red"))
+ (mdw-define-face highlight
+   (t :background "DarkSeaGreen4"))
+ (mdw-define-face holiday-face
+   (t :background "red"))
+ (mdw-define-face calendar-today-face
+   (t :foreground "yellow" :weight bold))
+ (mdw-define-face comint-highlight-prompt
+   (t :weight bold))
+ (mdw-define-face comint-highlight-input
+   (t :slant italic))
+ (mdw-define-face trailing-whitespace
+   (t :background "red"))
+ (mdw-define-face mdw-punct-face
+   (((type tty)) :foreground "yellow") (t :foreground "burlywood2"))
+ (mdw-define-face mdw-number-face
+   (t :foreground "yellow"))
+ (mdw-define-face font-lock-function-name-face
+   (t :weight bold))
+ (mdw-define-face font-lock-keyword-face
+   (t :weight bold))
+ (mdw-define-face font-lock-constant-face
+   (t :slant italic))
+ (mdw-define-face font-lock-builtin-face
+   (t :weight bold))
+ (mdw-define-face font-lock-reference-face
+   (t :weight bold))
+ (mdw-define-face font-lock-variable-name-face
+   (t :slant italic))
+ (mdw-define-face font-lock-comment-delimiter-face
+   (default :slant italic)
+   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (mdw-define-face font-lock-comment-face
+   (default :slant italic)
+   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (mdw-define-face font-lock-string-face
+   (t :foreground "SkyBlue1"))
+ (mdw-define-face message-separator
+   (t :background "red" :foreground "white" :weight bold))
+ (mdw-define-face message-cited-text
+   (default :slant italic)
+   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (mdw-define-face message-header-cc
+   (default :weight bold)
+   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (mdw-define-face message-header-newsgroups
+   (default :weight bold)
+   (((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)
+   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (mdw-define-face message-header-other
+   (default :weight bold)
+   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (mdw-define-face message-header-name
+   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+ (mdw-define-face diff-index
+   (t :weight bold))
+ (mdw-define-face diff-file-header
+   (t :weight bold))
+ (mdw-define-face diff-hunk-header
+   (t :foreground "SkyBlue1"))
+ (mdw-define-face diff-function
+   (t :foreground "SkyBlue1" :weight bold))
+ (mdw-define-face diff-header
+   (t :background "grey10"))
+ (mdw-define-face diff-added
+   (t :foreground "green"))
+ (mdw-define-face diff-removed
+   (t :foreground "red"))
+ (mdw-define-face diff-context)
+ (mdw-define-face woman-bold
+   (t :weight bold))
+ (mdw-define-face woman-italic
+   (t :slant italic))
+ (mdw-define-face p4-depot-added-face
+   (t :foreground "green"))
+ (mdw-define-face p4-depot-branch-op-face
+   (t :foreground "yellow"))
+ (mdw-define-face p4-depot-deleted-face
+   (t :foreground "red"))
+ (mdw-define-face p4-depot-unmapped-face
+   (t :foreground "SkyBlue1"))
+ (mdw-define-face p4-diff-change-face
+   (t :foreground "yellow"))
+ (mdw-define-face p4-diff-del-face
+   (t :foreground "red"))
+ (mdw-define-face p4-diff-file-face
+   (t :foreground "SkyBlue1"))
+ (mdw-define-face p4-diff-head-face
+   (t :background "grey10"))
+ (mdw-define-face p4-diff-ins-face
+   (t :foreground "green"))
+ (mdw-define-face whizzy-slice-face
+   (t :background "grey10"))
+ (mdw-define-face whizzy-error-face
+   (t :background "darkred"))
  
  ;;;--------------------------------------------------------------------------
  ;;; C programming configuration.
@@@ -2248,21 -2215,6 +2269,21 @@@ strip numbers instead.
       (define-key term-raw-map [M-left] 'term-send-meta-left)
       (define-key term-raw-map [?\e ?\M-O ?D] 'term-send-meta-left)))
  
 +;;;--------------------------------------------------------------------------
 +;;; Inferior Emacs Lisp.
 +
 +(setq comint-prompt-read-only t)
 +
 +(eval-after-load "comint"
 +  '(progn
 +     (define-key comint-mode-map "\C-w" 'comint-kill-region)
 +     (define-key comint-mode-map [C-S-backspace] 'comint-kill-whole-line)))
 +
 +(eval-after-load "ielm"
 +  '(progn
 +     (define-key ielm-map "\C-w" 'comint-kill-region)
 +     (define-key ielm-map [C-S-backspace] 'comint-kill-whole-line)))
 +
  ;;;----- That's all, folks --------------------------------------------------
  
  (provide 'dot-emacs)