From: Glenn Morris Date: Thu, 7 Jun 2007 07:00:00 +0000 (+0000) Subject: (byte-compile-warnings): Add new option `make-local'. X-Git-Tag: emacs-pretest-23.0.90~12440 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=15ce9dcfa1dea8036f6b59cec6a5f20e1bca8f45;p=emacs.git (byte-compile-warnings): Add new option `make-local'. (byte-compile-warnings-safe-p): Add `make-local'. (byte-compile-make-variable-buffer-local): Allow byte-compile-warnings to suppress this warning. --- diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index f1761c125ac..0a37f098a7b 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -101,6 +101,8 @@ ;; `cl-warnings' (calls to CL functions) ;; `interactive-only' (calls to commands that are ;; not good to call from Lisp) +;; `make-local' (dubious calls to +;; `make-variable-buffer-local') ;; byte-compile-compatibility Whether the compiler should ;; generate .elc files which can be loaded into ;; generic emacs 18. @@ -356,14 +358,16 @@ Elements of the list may be: cl-functions calls to runtime functions from the CL package (as distinguished from macros and aliases). interactive-only - commands that normally shouldn't be called from Lisp code." + commands that normally shouldn't be called from Lisp code. + make-local calls to make-variable-buffer-local that may be incorrect." :group 'bytecomp :type `(choice (const :tag "All" t) (set :menu-tag "Some" (const free-vars) (const unresolved) (const callargs) (const redefine) (const obsolete) (const noruntime) - (const cl-functions) (const interactive-only)))) + (const cl-functions) (const interactive-only) + (const make-local)))) (put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p) ;;;###autoload (defun byte-compile-warnings-safe-p (x) @@ -374,7 +378,7 @@ Elements of the list may be: (when (memq e '(free-vars unresolved callargs redefine obsolete noruntime - cl-functions interactive-only)) + cl-functions interactive-only make-local)) e)) x) x)))) @@ -3888,7 +3892,8 @@ that suppresses all warnings during execution of BODY." ;; Warn about misuses of make-variable-buffer-local. (byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local) (defun byte-compile-make-variable-buffer-local (form) - (if (eq (car-safe (car-safe (cdr-safe form))) 'quote) + (if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote) + (memq 'make-local byte-compile-warnings)) (byte-compile-warn "`make-variable-buffer-local' should be called at toplevel")) (byte-compile-normal-call form))