From fe541a2743944789a066e5bcdf461d88791a18f8 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 21 Feb 2006 19:54:36 +0000 Subject: [PATCH] (unsafep): Don't treat &rest or &optional as variables at all. (unsafep-variable): Rename arg; doc fix. --- lisp/emacs-lisp/unsafep.el | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el index 41e98694c71..aeaf653aef6 100644 --- a/lisp/emacs-lisp/unsafep.el +++ b/lisp/emacs-lisp/unsafep.el @@ -148,10 +148,10 @@ of symbols with local bindings." ((eq fun 'lambda) ;;First arg is temporary bindings (mapc #'(lambda (x) - (let ((y (unsafep-variable x t))) - (if y (throw 'unsafep y))) (or (memq x '(&optional &rest)) - (push x unsafep-vars))) + (let ((y (unsafep-variable x t))) + (if y (throw 'unsafep y)) + (push x unsafep-vars)))) (cadr form)) (unsafep-progn (cddr form))) ((eq fun 'let) @@ -247,17 +247,16 @@ and throws a reason to `unsafep' if unsafe. Returns SYM." (if reason (throw 'unsafep reason)) sym)) -(defun unsafep-variable (sym global-okay) - "Return nil if SYM is safe as a let-binding sym -\(because it already has a temporary binding or is a non-risky buffer-local -variable), otherwise a reason why it is unsafe. Failing to be locally bound -is okay if GLOBAL-OKAY is non-nil." +(defun unsafep-variable (sym to-bind) + "Return nil if SYM is safe to set or bind, or a reason why not. +If TO-BIND is nil, check whether SYM is safe to set. +If TO-BIND is t, check whether SYM is safe to bind." (cond ((not (symbolp sym)) `(variable ,sym)) ((risky-local-variable-p sym nil) `(risky-local-variable ,sym)) - ((not (or global-okay + ((not (or to-bind (memq sym unsafep-vars) (local-variable-p sym))) `(global-variable ,sym)))) -- 2.11.4.GIT