Mercurial > emacs
changeset 69082:31566461e709
(unsafep): Don't treat &rest or &optional as variables at all.
(unsafep-variable): Rename arg; doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 21 Feb 2006 19:54:36 +0000 |
parents | 4ef3c75869eb |
children | d148e515073b |
files | lisp/emacs-lisp/unsafep.el |
diffstat | 1 files changed, 8 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/unsafep.el Tue Feb 21 19:53:15 2006 +0000 +++ b/lisp/emacs-lisp/unsafep.el Tue Feb 21 19:54:36 2006 +0000 @@ -148,10 +148,10 @@ ((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 @@ (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))))