# HG changeset patch # User Richard M. Stallman # Date 1140551676 0 # Node ID 31566461e70911b529e94818eb2c44d97f017cd9 # Parent 4ef3c75869eba82934af332562f77bf8fb70b4f6 (unsafep): Don't treat &rest or &optional as variables at all. (unsafep-variable): Rename arg; doc fix. diff -r 4ef3c75869eb -r 31566461e709 lisp/emacs-lisp/unsafep.el --- 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))))