summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/files.el27
-rw-r--r--lisp/subr.el6
-rw-r--r--lisp/textmodes/ispell.el2
-rw-r--r--lisp/textmodes/paragraphs.el2
5 files changed, 37 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a0d8e64a1fc..f914e5dbc48 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
+2006-04-06 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * subr.el (string-or-null-p): New function.
+
+ * textmodes/paragraphs.el (sentence-end): Use string-or-null-p.
+
+ * textmodes/ispell.el (ispell-local-dictionary): Use
+ string-or-null-p.
+
+ * files.el: Update comment about safe-local-variable declarations.
+
2006-04-06 J.D. Smith <jdsmith@as.arizona.edu>
* progmodes/idlwave.el: Updated to IDLWAVE version 6.0. See
diff --git a/lisp/files.el b/lisp/files.el
index 7ab7d593e4c..2ca497e09b1 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2322,13 +2322,22 @@ asking you for confirmation."
;; Safe local variables:
;;
-;; For variables defined by minor modes, put the safety declarations
-;; here, not in the file defining the minor mode (when Emacs visits a
-;; file specifying that local variable, the minor mode file may not be
-;; loaded yet). For variables defined by major modes, the safety
-;; declarations can go into the major mode's file, since that will be
-;; loaded before file variables are processed.
+;; For variables defined by major modes, the safety declarations can go into
+;; the major mode's file, since that will be loaded before file variables are
+;; processed.
+;;
+;; For variables defined by minor modes, put the safety declarations in the
+;; file defining the minor mode after the defcustom/defvar using an autoload
+;; cookie, e.g.:
+;;
+;; ;;;###autoload(put 'variable 'safe-local-variable 'stringp)
+;;
+;; Otherwise, when Emacs visits a file specifying that local variable, the
+;; minor mode file may not be loaded yet.
+;;
+;; For variables defined in the C source code the declaration should go here:
+;; FIXME: Some variables should be moved according to the rules above.
(let ((string-or-null (lambda (a) (or (stringp a) (null a)))))
(eval
`(mapc (lambda (pair)
@@ -2340,15 +2349,15 @@ asking you for confirmation."
(c-file-style . stringp)
(c-indent-level . integerp)
(comment-column . integerp)
- (compile-command . ,string-or-null)
+ (compile-command . string-or-null-p)
(fill-column . integerp)
- (fill-prefix . ,string-or-null)
+ (fill-prefix . string-or-null-p)
(indent-tabs-mode . t)
(kept-new-versions . integerp)
(left-margin . t)
(no-byte-compile . t)
(no-update-autoloads . t)
- (outline-regexp . ,string-or-null)
+ (outline-regexp . string-or-null-p)
(tab-width . integerp) ;; C source code
(truncate-lines . t) ;; C source code
(version-control . t)))))
diff --git a/lisp/subr.el b/lisp/subr.el
index f515b6b3753..9aba6195816 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1916,6 +1916,12 @@ a system-dependent default device name is used."
"\\" (substring argument end (1+ end)))
start (1+ end)))
(concat result (substring argument start)))))))
+
+(defun string-or-null-p (object)
+ "Return t if OBJECT is a string or nil.
+Otherwise, return nil."
+ (or (stringp object) (null object)))
+
;;;; Support for yanking and text properties.
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 8a08f9dd078..da77508dce3 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -462,7 +462,7 @@ is automatically set when defined in the file with either
:type '(choice string
(const :tag "default" nil))
:group 'ispell)
-;;;###autoload(put 'ispell-local-dictionary 'safe-local-variable (lambda (a) (or (stringp a) (null a))))
+;;;###autoload(put 'ispell-local-dictionary 'safe-local-variable 'string-or-null-p)
(make-variable-buffer-local 'ispell-local-dictionary)
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el
index c62f337e456..6693be4e0c9 100644
--- a/lisp/textmodes/paragraphs.el
+++ b/lisp/textmodes/paragraphs.el
@@ -163,7 +163,7 @@ function `sentence-end'. You should always use this function
to obtain the value of this variable."
:group 'paragraphs
:type '(choice regexp (const :tag "Use default value" nil)))
-;;;###autoload(put 'sentence-end 'safe-local-variable (lambda (a) (or (stringp a) (null a))))
+;;;###autoload(put 'sentence-end 'safe-local-variable 'string-or-null-p)
(defcustom sentence-end-base "[.?!][]\"'$B!I$,1r}(B)}]*"
"*Regexp matching the basic end of a sentence, not including following space."