+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
;; 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)
(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)))))
"\\" (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)))
+
\f
;;;; Support for yanking and text properties.
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 "[.?!][]\"'\e$B!I\e$,1r}\e(B)}]*"
"*Regexp matching the basic end of a sentence, not including following space."