summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2007-06-07 07:00:00 +0000
committerGlenn Morris <rgm@gnu.org>2007-06-07 07:00:00 +0000
commit15ce9dcfa1dea8036f6b59cec6a5f20e1bca8f45 (patch)
tree65e5b560ecce99ed06c82c2a97363cb997d4b3ac /lisp/emacs-lisp
parent04cc80ae25db7dcf23a6125b3341a69e585c2132 (diff)
downloademacs-15ce9dcfa1dea8036f6b59cec6a5f20e1bca8f45.tar.gz
emacs-15ce9dcfa1dea8036f6b59cec6a5f20e1bca8f45.tar.bz2
emacs-15ce9dcfa1dea8036f6b59cec6a5f20e1bca8f45.zip
(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.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/bytecomp.el13
1 files changed, 9 insertions, 4 deletions
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))