Subject: bug#3964: 23.1.50; checkdoc more safe-local-variable

From: Kevin Ryde <[email-masked]>
Date: Thu, 30 Jul 2009 09:05:43 +1000

I noticed a couple of checkdoc.el variables which could have
safe-local-variable settings.  I struck checkdoc-arguments-in-order-flag
and checkdoc-symbol-words in bongo.el.

The checkdoc-symbol-words docstring invites you to set it as a local
variable, so it in particular ought to have something for what's safe.

2009-07-30  Kevin Ryde  <[email-masked]>

	* emacs-lisp/checkdoc.el (checkdoc-force-history-flag,
	checkdoc-arguments-in-order-flag): Add safe-local-variable booleanp.
	(checkdoc-symbol-words): Add safe-local-variable for list of strings,
	clarify docstring that the value is strings not symbols.

*** checkdoc.el	23 Jul 2009 07:41:51 +1000	1.72
--- checkdoc.el	28 Jul 2009 14:29:14 +1000	
***************
*** 223,228 ****
--- 223,229 ----
  This helps document the evolution of, and recent changes to, the package."
    :group 'checkdoc
    :type 'boolean)
+ ;;;###autoload(put 'checkdoc-force-history-flag 'safe-local-variable 'booleanp)
  
  (defcustom checkdoc-permit-comma-termination-flag nil
    "Non-nil means the first line of a docstring may end with a comma.
***************
*** 270,275 ****
--- 271,277 ----
  made in the style guide relating to order."
    :group 'checkdoc
    :type 'boolean)
+ ;;;###autoload(put 'checkdoc-arguments-in-order-flag 'safe-local-variable 'booleanp)
  
  (defvar checkdoc-style-hooks nil
    "Hooks called after the standard style check is completed.
***************
*** 307,317 ****
  with a universal argument.")
  
  (defcustom checkdoc-symbol-words nil
!   "A list of symbols which also happen to make good words.
! These symbol-words are ignored when unquoted symbols are searched for.
  This should be set in an Emacs Lisp file's local variables."
    :group 'checkdoc
    :type '(repeat (symbol :tag "Word")))
  
  (defvar checkdoc-proper-noun-list
    '("ispell" "xemacs" "emacs" "lisp")
--- 309,327 ----
  with a universal argument.")
  
  (defcustom checkdoc-symbol-words nil
!   "A list of symbol names (strings) which also happen to make good words.
! These words are ignored when unquoted symbols are searched for.
  This should be set in an Emacs Lisp file's local variables."
    :group 'checkdoc
    :type '(repeat (symbol :tag "Word")))
+ ;;;###autoload(put 'checkdoc-symbol-words 'safe-local-variable 'checkdoc-list-of-strings-p)
+ 
+ ;;;###autoload
+ (defun checkdoc-list-of-strings-p (obj)
+   ;; this is a function so it might be shared by checkdoc-proper-noun-list
+   ;; and/or checkdoc-ispell-lisp-words in the future
+   (and (listp obj)
+        (not (memq nil (mapcar 'stringp obj)))))
  
  (defvar checkdoc-proper-noun-list
    '("ispell" "xemacs" "emacs" "lisp")