(byte-compile-condition-case): Disable warning about

symbol not naming a condition.  Allow a list of condition names.
This commit is contained in:
Richard M. Stallman 1994-01-11 07:21:47 +00:00
parent 2ea6d56151
commit 2abcddce3b

View file

@ -2681,16 +2681,24 @@ If FORM is a lambda or a macro, byte-compile it as a function."
(while clauses
(let* ((clause (car clauses))
(condition (car clause)))
(cond ((not (symbolp condition))
(cond ((not (or (symbolp condition)
(and (listp condition)
(let ((syms condition) (ok t))
(while syms
(if (not (symbolp (car syms)))
(setq ok nil))
(setq syms (cdr syms)))
ok))))
(byte-compile-warn
"%s is not a symbol naming a condition (in condition-case)"
"%s is not a condition name or list of such (in condition-case)"
(prin1-to-string condition)))
((not (or (eq condition 't)
(and (stringp (get condition 'error-message))
(consp (get condition 'error-conditions)))))
(byte-compile-warn
"%s is not a known condition name (in condition-case)"
condition)))
;; ((not (or (eq condition 't)
;; (and (stringp (get condition 'error-message))
;; (consp (get condition 'error-conditions)))))
;; (byte-compile-warn
;; "%s is not a known condition name (in condition-case)"
;; condition))
)
(setq compiled-clauses
(cons (cons condition
(byte-compile-top-level-body