[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/textmodes/conf-mode.el,v
From: |
Richard M. Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/textmodes/conf-mode.el,v |
Date: |
Sat, 09 Sep 2006 23:20:39 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Richard M. Stallman <rms> 06/09/09 23:20:39
Index: conf-mode.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/textmodes/conf-mode.el,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- conf-mode.el 6 Feb 2006 12:12:26 -0000 1.14
+++ conf-mode.el 9 Sep 2006 23:20:39 -0000 1.15
@@ -442,6 +442,9 @@
(setq imenu-generic-expression
'(("Parameters" "^[ \t]*\\(.+?\\)[=: \t]" 1))))
+(defvar conf-space-keywords-override nil
+ "Value to be put in `conf-space-keywords' after `conf-space-mode'.")
+
;;;###autoload
(define-derived-mode conf-space-mode conf-unix-mode "Conf[Space]"
"Conf Mode starter for space separated conf files.
@@ -465,23 +468,32 @@
add /dev/audio desktop
add /dev/mixer desktop"
(conf-mode-initialize "#" 'conf-space-font-lock-keywords)
- (set (make-local-variable 'conf-assignment-sign)
- nil)
- ;; This doesn't seem right, but the next two depend on conf-space-keywords
- ;; being set, while after-change-major-mode-hook might set up imenu, needing
- ;; the following result:
- (hack-local-variables-prop-line)
- (hack-local-variables)
+ (make-local-variable 'conf-assignment-sign)
+ (setq conf-assignment-sign nil)
(cond (current-prefix-arg
- (set (make-local-variable 'conf-space-keywords)
+ (make-local-variable 'conf-space-keywords-override)
+ ;; By setting conf-space-keywords-override
+ ;; we arrange for the hook function below
+ ;; to override any value of conf-space-keywords
+ ;; specified in a local variables list.
+ (setq conf-space-keywords-override
(if (> (prefix-numeric-value current-prefix-arg) 0)
(read-string "Regexp to match keywords: "))))
- (conf-space-keywords)
(buffer-file-name
- (set (make-local-variable 'conf-space-keywords)
+ ;; By setting conf-space-keywords directly,
+ ;; we let a value in the local variables list take precedence.
+ (make-local-variable 'conf-space-keywords)
+ (setq conf-space-keywords
(assoc-default buffer-file-name conf-space-keywords-alist
'string-match))))
- (set (make-local-variable 'conf-assignment-regexp)
+ ;; This is stuff to be done after parsing the local variables, once
+ ;; any local variable spec fo rconf-space-keywords is already in effect.
+ (push (lambda ()
+ (when conf-space-keywords-override
+ (setq conf-space-keywords
+ conf-space-keywords-override))
+ (make-local-variable 'conf-assignment-regexp)
+ (setq conf-assignment-regexp
(if conf-space-keywords
(concat "\\(?:" conf-space-keywords "\\)[ \t]+.+?\\([ \t]+\\|$\\)")
".+?\\([ \t]+\\|$\\)"))
@@ -493,6 +505,7 @@
"\\)[ \t]+\\([^ \t\n]+\\)\\(?:[ \t]\\|$\\)")
"^[ \t]*\\([^ \t\n[]+\\)\\(?:[ \t]\\|$\\)")
1))))
+ hack-local-variables-hook))
;;;###autoload
(define-derived-mode conf-colon-mode conf-unix-mode "Conf[Colon]"
- [Emacs-diffs] Changes to emacs/lisp/textmodes/conf-mode.el,v,
Richard M. Stallman <=