diff options
Diffstat (limited to 'scm/extant-input.scm')
| -rw-r--r-- | scm/extant-input.scm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/scm/extant-input.scm b/scm/extant-input.scm new file mode 100644 index 0000000..d50a7fe --- /dev/null +++ b/scm/extant-input.scm @@ -0,0 +1,15 @@ +(define-module (extant input) + #:export (register-handler!)) + +(define *handlers* '()) + +(define (register-handler! proc) + (set! *handlers* (cons proc *handlers*))) + +(define (dispatch-input text) + (let loop ((handlers *handlers*)) + (if (null? handlers) + `((text . "No handlers found!") + (style . "error")) + (let ((result ((car handlers) text))) + (or result (loop (cdr handlers))))))) |
