(in-package :lisp-on-lines)
+(define-layered-function line-in (name)
+ (:method-combination append)
+ (:method append (thing)
+ '()))
+
(defmacro defline (name (specializer &rest layers-and-combination-keywords) &body docstring-and-body)
`(progn
- ,(eval-when
- (:compile-toplevel :load-toplevel :execute)
- (unless (fboundp (contextl::get-layered-function-definer-name name))
- `(define-layered-function ,name (arg)
- (:method-combination append))))
(define-layered-method
,name
,@layers-and-combination-keywords
,(or (cdr docstring-and-body) (car docstring-and-body)))))
-(defun line-out (component object &key (line #'line-in) args)
- (apply #'display component object (append args (funcall line object))))
-
-(defmacro call-line (from line &rest args)
- (with-unique-names (lines object)
- `(multiple-value-bind (,lines ,object)
- (funcall ,line)
- (call-display-with-context ,from ,object nil (append ,args ,lines)))))
-