(and (library-exists-p file)
(autoload symbol file docstring interactivep type)))
+(defun mdw-kick-menu-bar (&optional frame)
+ "Regenerate FRAME's menu bar so it doesn't have empty menus."
+ (interactive)
+ (unless frame (setq frame (selected-frame)))
+ (let ((old (frame-parameter frame 'menu-bar-lines)))
+ (set-frame-parameter frame 'menu-bar-lines 0)
+ (set-frame-parameter frame 'menu-bar-lines old)))
+
;; Splitting windows.
(unless (fboundp 'scroll-bar-columns)
(mdw-define-face default
(((type w32)) :family "courier new" :height 85)
- (((type x)) :family "6x13" :height 130)
+ (((type x)) :family "6x13" :foundry "trad" :height 130)
(((type color)) :foreground "white" :background "black")
(t nil))
(mdw-define-face fixed-pitch
(((type w32)) :family "courier new" :height 85)
- (((type x)) :family "6x13" :height 130)
+ (((type x)) :family "6x13" :foundry "trad" :height 130)
(t :foreground "white" :background "black"))
(if (>= emacs-major-version 23)
(mdw-define-face variable-pitch
(((class color)) :background "red")
(t :inverse-video t))
(mdw-define-face highlight
- (((class color)) :background "DarkSeaGreen4")
+ (((type x) (class color)) :background "DarkSeaGreen4")
+ (((type tty) (class color)) :background "cyan")
(t :inverse-video t))
(mdw-define-face holiday-face
(mdw-define-face which-func
(t nil))
+(mdw-define-face diff-header
+ (t nil))
(mdw-define-face diff-index
(t :weight bold))
(mdw-define-face diff-file-header
(t :foreground "red"))
(mdw-define-face diff-context
(t nil))
+(mdw-define-face diff-refine-change
+ (((class color) (type x)) :background "RoyalBlue4")
+ (t :underline t))
(mdw-define-face erc-input-face
(t :foreground "red"))
;; Ellipses used to indicate hidden text (and similar).
(mdw-define-face mdw-ellipsis-face
(((type tty)) :foreground "blue") (t :foreground "grey60"))
-(let ((dot (make-glyph-code ?. 'mdw-ellipsis-face)))
+(let ((dollar (make-glyph-code ?$ 'mdw-ellipsis-face))
+ (backslash (make-glyph-code ?\ 'mdw-ellipsis-face))
+ (dot (make-glyph-code ?. 'mdw-ellipsis-face))
+ (bar (make-glyph-code ?| mdw-ellipsis-face)))
+ (set-display-table-slot standard-display-table 0 dollar)
+ (set-display-table-slot standard-display-table 1 backslash)
(set-display-table-slot standard-display-table 4
- (vector dot dot dot)))
+ (vector dot dot dot))
+ (set-display-table-slot standard-display-table 5 bar))
;;;--------------------------------------------------------------------------
;;; C programming configuration.
"<" arm-assembler-mode-syntax-table)
(modify-syntax-entry ?\n ">" arm-assembler-mode-syntax-table)
(modify-syntax-entry ?_ "_" arm-assembler-mode-syntax-table)
+ (modify-syntax-entry ?' "\"'" arm-assembler-mode-syntax-table)
(make-local-variable 'comment-start)
(setq comment-start ";")
(run-hooks 'mdw-sgml-mode-hook))
;;;--------------------------------------------------------------------------
+;;; Configuration files.
+
+(defvar mdw-conf-quote-normal nil
+ "*Control syntax category of quote characters `\"' and `''.
+If this is `t', consider quote characters to be normal
+punctuation, as for `conf-quote-normal'. If this is `nil' then
+leave quote characters as quotes. If this is a list, then
+consider the quote characters in the list to be normal
+punctuation. If this is a single quote character, then consider
+that character only to be normal punctuation.")
+(defun mdw-conf-quote-normal-acceptable-value-p (value)
+ "Is the VALUE is an acceptable value for `mdw-conf-quote-normal'?"
+ (or (booleanp value)
+ (every (lambda (v) (memq v '(?\" ?')))
+ (if (listp value) value (list value)))))
+(put 'mdw-conf-quote-normal 'safe-local-variable '
+ mdw-conf-quote-normal-acceptable-value-p)
+
+(defun mdw-fix-up-quote ()
+ "Apply the setting of `mdw-conf-quote-normal'."
+ (let ((flag mdw-conf-quote-normal))
+ (cond ((eq flag t)
+ (conf-quote-normal t))
+ ((not flag)
+ nil)
+ (t
+ (let ((table (copy-syntax-table (syntax-table))))
+ (mapc (lambda (ch) (modify-syntax-entry ch "." table))
+ (if (listp flag) flag (list flag)))
+ (set-syntax-table table)
+ (and font-lock-mode (font-lock-fontify-buffer)))))))
+(defun mdw-fix-up-quote-hack ()
+ "Unpleasant hack to call `mdw-fix-up-quote' at the right time.
+Annoyingly, `hack-local-variables' is done after `set-auto-mode'
+so we wouldn't see a local-variable setting of
+`mdw-conf-quote-normal' in `conf-mode-hook'. Instead, wire
+ourselves onto `hack-local-variables-hook' here, and check the
+setting once it's actually been made."
+ (add-hook 'hack-local-variables-hook 'mdw-fix-up-quote t t))
+(add-hook 'conf-mode-hook 'mdw-fix-up-quote-hack t)
+
+;;;--------------------------------------------------------------------------
;;; Shell scripts.
(defun mdw-setup-sh-script-mode ()