Changeset 338
- Timestamp:
- Jan 19, 2004, 4:40:07 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lib/macros.lisp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lib/macros.lisp
r324 r338 252 252 `(',condition ,fn)) 253 253 (list `',condition 254 ` (require-type ,handler 'function)))))254 `,handler)))) 255 255 clauses)) 256 256 (cluster (gensym))) … … 1707 1707 (let ((method-combination '(standard)) 1708 1708 (generic-function-class 'standard-generic-function) 1709 options methods option-keywords method-class)1709 options declarations methods option-keywords method-class) 1710 1710 (flet ((bad-option (o) 1711 1711 (signal-program-error "Bad option: ~s to ~s." o 'defgeneric))) … … 1715 1715 (if (eq keyword :method) 1716 1716 (push `(,defmethod ,function-name ,@(%cdr o)) methods) 1717 (cond ((memq keyword (prog1 option-keywords (push keyword option-keywords))) 1717 (cond ((and (not (eq keyword 'declare)) 1718 (memq keyword (prog1 option-keywords (push keyword option-keywords)))) 1718 1719 (signal-program-error "Duplicate option: ~s to ~s" keyword 'defgeneric)) 1719 1720 ((eq keyword :method-name) ; used by generic-flet … … 1729 1730 (setq generic-function-class (%cadr o))) 1730 1731 ((eq keyword 'declare) 1731 (push (list :declare (cdr o)) options))1732 (push (cadr o) declarations)) 1732 1733 ((eq keyword :argument-precedence-order) 1733 1734 (dolist (arg (cdr o)) … … 1747 1748 (dolist (m methods) 1748 1749 (push `(:method-class ,method-class) (cddr m)))) 1750 (when declarations 1751 (setq options `((:declarations ,declarations ,@options)))) 1749 1752 (values method-combination generic-function-class options methods))) 1750 1753 … … 2573 2576 2574 2577 (defmacro with-terminal-input (&body body) 2575 (let* (( old-owner(gensym)))2576 `(let* ((, old-owner(%request-terminal-input)))2578 (let* ((got-it (gensym))) 2579 `(let* ((,got-it (%request-terminal-input))) 2577 2580 (unwind-protect 2578 2581 (progn ,@body) 2579 ( %restore-terminal-input ,old-owner)))))2582 (if ,got-it (%restore-terminal-input)))))) 2580 2583 2581 2584 (defmacro do-unexhausted-lisp-threads ((thread) &body body)
Note:
See TracChangeset
for help on using the changeset viewer.
