(other-window 1))
(select-window win)))
+(defun mdw-frame-width-for-columns (columns width)
+ "Return the preferred width for a frame with so many COLUMNS of WIDTH."
+ (let ((sb-width (mdw-horizontal-window-overhead)))
+ (- (* columns (+ width sb-width))
+ sb-width)))
+
(defun mdw-set-frame-width (columns &optional width)
"Set the current frame to be the correct width for COLUMNS columns.
P")
(setq width (if width (prefix-numeric-value width)
(mdw-preferred-column-width)))
- (let ((sb-width (mdw-horizontal-window-overhead)))
- (set-frame-width (selected-frame)
- (- (* columns (+ width sb-width))
- sb-width))
- (mdw-divvy-window width)))
+ (set-frame-width (selected-frame)
+ (mdw-frame-width-for-columns columns width))
+ (mdw-divvy-window width))
(defcustom mdw-frame-width-fudge
(cond ((<= emacs-major-version 20) 1)
(setq even-window-sizes nil
even-window-heights nil)
+(setq display-buffer-reuse-frames nil)
+
;; Rename buffers along with files.
(defvar mdw-inhibit-rename-buffer nil
(defadvice gnus-other-frame (around mdw-hack-frame-width compile activate)
"Always arrange for mail/news frames to be 80 columns wide."
(let ((default-frame-alist (cons `(width . ,(+ 80 mdw-frame-width-fudge))
- (cl-delete 'width default-frame-alist
- :key #'car))))
+ (delete* 'width default-frame-alist
+ :key #'car))))
ad-do-it))
;; Preferred programs.
(line-height . 10.55)
(space-width . 5.1)
(avg-char-width . 5.1)))
- (cl-remove 'CourierCondensed ps-font-info-database
- :key #'car)))))
+ (remove* 'CourierCondensed ps-font-info-database
+ :key #'car)))))
;; Arrange to strip overlays from the buffer before we print . This will
;; prevent `flyspell' from interfering with the printout. (It would be less
(t :inverse-video t))
(mdw-define-face viper-search (t :inherit isearch))
+(mdw-define-face compilation-error
+ (((class color)) :foreground "red" :weight bold)
+ (t :weight bold))
+(mdw-define-face compilation-warning
+ (((class color)) :foreground "orange" :weight bold)
+ (t :weight bold))
+(mdw-define-face compilation-info
+ (((class color)) :foreground "green" :weight bold)
+ (t :weight bold))
+(mdw-define-face compilation-line-number
+ (t :weight bold))
+(mdw-define-face compilation-column-number
+ (((min-colors 64)) :foreground "lightgrey"))
+(setq compilation-message-face 'mdw-virgin-face)
+(setq compilation-enter-directory-face 'font-lock-comment-face)
+(setq compilation-leave-directory-face 'font-lock-comment-face)
+
(mdw-define-face holiday-face
(t :background "red"))
(mdw-define-face calendar-today-face
(t :weight bold))
(mdw-define-face font-lock-variable-name-face
(t :slant italic))
-(mdw-define-face font-lock-comment-delimiter-face
- (((min-colors 64)) :slant italic :foreground "SeaGreen1")
- (((class color)) :foreground "green")
- (t :weight bold))
(mdw-define-face font-lock-comment-face
(((min-colors 64)) :slant italic :foreground "SeaGreen1")
(((class color)) :foreground "green")
(t :weight bold))
+(mdw-define-face font-lock-comment-delimiter-face
+ (t :inherit font-lock-comment-face))
(mdw-define-face font-lock-string-face
(((min-colors 64)) :foreground "SkyBlue1")
(((class color)) :foreground "cyan")
(t :weight bold))
+(mdw-define-face font-lock-doc-face
+ (t :inherit font-lock-string-face))
(mdw-define-face message-separator
(t :background "red" :foreground "white" :weight bold))
(add-hook 'post-command-hook 'mdw-update-terminal-title)
;;;--------------------------------------------------------------------------
+;;; Ediff hacking.
+
+(defvar mdw-ediff-previous-windows)
+(defun mdw-ediff-setup ()
+ (setq mdw-ediff-previous-windows (current-window-configuration)))
+(defun mdw-ediff-suspend-or-quit ()
+ (set-window-configuration mdw-ediff-previous-windows))
+(add-hook 'ediff-before-setup-hook 'mdw-ediff-setup)
+(add-hook 'ediff-quit-hook 'mdw-ediff-suspend-or-quit t)
+(add-hook 'ediff-suspend-hook 'mdw-ediff-suspend-or-quit t)
+
+;;;--------------------------------------------------------------------------
;;; C programming configuration.
;; Make C indentation nice.
(push item output)))
(nreverse output)))
-(cl-defmacro mdw-define-c-style (name (&optional parent) &rest assocs)
+(defmacro* mdw-define-c-style (name (&optional parent) &rest assocs)
"Define a C style, called NAME (a symbol) based on PARENT, setting ASSOCs.
A function, named `mdw-define-c-style/NAME', is defined to actually install
the style using `c-add-style', and added to the hook
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face)))))
+ '(0 mdw-punct-face)))
+ font-lock-syntactic-face-function . nil))
;; Hack key bindings.
(local-set-key [?{] 'mdw-self-insert-and-indent)
(eq lisp-indent-backquote-substitution-mode 'corrected))
(save-excursion
(goto-char (elt state 1))
- (cl-incf loop-indentation
+ (incf loop-indentation
(cond ((eq (char-before) ?,) -1)
((and (eq (char-before) ?@)
(progn (backward-char)