(other-window 1))
(select-window win)))
+;; Transient mark mode hacks.
+
+(defadvice exchange-point-and-mark
+ (around mdw-highlight (&optional arg) activate compile)
+ "Maybe don't actually exchange point and mark.
+If `transient-mark-mode' is on and the mark is inactive, then
+just activate it. A non-trivial prefix argument will force the
+usual behaviour. A trivial prefix argument (i.e., just C-u) will
+activate the mark and temporarily enable `transient-mark-mode' if
+it's currently off."
+ (cond ((or mark-active
+ (and (not transient-mark-mode) (not arg))
+ (and arg (or (not (consp arg))
+ (not (= (car arg) 4)))))
+ ad-do-it)
+ (t
+ (or transient-mark-mode (setq transient-mark-mode 'only))
+ (set-mark (mark t)))))
+
;; Functions for sexp diary entries.
(defun mdw-weekday (l)
(insert "\nNP: ")
(insert-file-contents np-file)))))
+(defun mdw-version-< (ver-a ver-b)
+ "Answer whether VER-A is strictly earlier than VER-B.
+VER-A and VER-B are version numbers, which are strings containing digit
+sequences separated by `.'."
+ (let* ((la (mapcar (lambda (x) (car (read-from-string x)))
+ (split-string ver-a "\\.")))
+ (lb (mapcar (lambda (x) (car (read-from-string x)))
+ (split-string ver-b "\\."))))
+ (catch 'done
+ (while t
+ (cond ((null la) (throw 'done lb))
+ ((null lb) (throw 'done nil))
+ ((< (car la) (car lb)) (throw 'done t))
+ ((= (car la) (car lb)) (setq la (cdr la) lb (cdr lb))))))))
+
(defun mdw-check-autorevert ()
"Sets global-auto-revert-ignore-buffer appropriately for this buffer.
This takes into consideration whether it's been found using
(t
(local-set-key "\C-m" 'newline-and-indent))))
(local-set-key [C-return] 'newline)
- (make-variable-buffer-local 'page-delimiter)
+ (make-local-variable 'page-delimiter)
(setq page-delimiter "\f\\|^.*-\\{6\\}.*$")
(setq comment-column 40)
(auto-fill-mode 1)
(run-with-idle-timer 0 nil #'x-close-connection frame-display))))
(add-hook 'delete-frame-functions 'mdw-last-one-out-turn-off-the-lights)
-(defvar mdw-frame-parameters-alist
- '((nil (menu-bar-lines . 0))))
-(defun mdw-set-frame-parameters (frame)
- (let ((params (assq (if (fboundp 'window-system)
- (window-system frame)
- window-system)
- mdw-frame-parameters-alist)))
- (when params
- (modify-frame-parameters frame (cdr params)))))
-(add-hook 'after-make-frame-functions 'mdw-set-frame-parameters)
-
;;;--------------------------------------------------------------------------
;;; General fontification.
(mdw-define-face comint-highlight-prompt
(t :weight bold))
-(mdw-define-face comint-highlight-input)
+(mdw-define-face comint-highlight-input
+ (t nil))
(mdw-define-face trailing-whitespace
(((class color)) :background "red")
(t :foreground "green"))
(mdw-define-face diff-removed
(t :foreground "red"))
-(mdw-define-face diff-context)
+(mdw-define-face diff-context
+ (t nil))
(mdw-define-face erc-input-face
(t :foreground "red"))
(interactive)
(sgml-mode)
(mdw-standard-fill-prefix "")
- (make-variable-buffer-local 'sgml-delimiters)
+ (make-local-variable 'sgml-delimiters)
(setq sgml-delimiters
'("AND" "&" "COM" "--" "CRO" "&#" "DSC" "]" "DSO" "[" "DTGC" "]"
"DTGO" "[" "ERO" "&" "ETAGO" ":e" "GRPC" ")" "GRPO" "(" "LIT" "\""
(eshell/pwd)
right)))
(setq eshell-prompt-function 'mdw-eshell-prompt)
-(setq eshell-prompt-regexp "^\\[[^]]+\\]")
+(setq eshell-prompt-regexp "^\\[[^]>]+\\(\\]\\|>>?\\)")
(defalias 'eshell/e 'find-file)
(defalias 'eshell/w3m 'w3m-goto-url)
(defun mdw-setup-smalltalk ()
(and mdw-auto-indent
(local-set-key "\C-m" 'smalltalk-newline-and-indent))
- (make-variable-buffer-local 'mdw-auto-indent)
+ (make-local-variable 'mdw-auto-indent)
(setq mdw-auto-indent nil)
(local-set-key "\C-i" 'smalltalk-reindent))
(multiple-value-bind . ((&whole 4 &rest 1) 4 &body))))))
(defun mdw-common-lisp-indent ()
- (make-variable-buffer-local 'lisp-indent-function)
+ (make-local-variable 'lisp-indent-function)
(setq lisp-indent-function 'common-lisp-indent-function))
(setq lisp-simple-loop-indentation 2