diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-06-22 23:50:09 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-06-22 23:50:09 +0200 |
commit | 3e5bb9f0cb4f6d10b809665886f35fa922e0ba36 (patch) | |
tree | 1cb83559d16b1327bf04b0f17c306191051cba44 /module | |
parent | Replace define-macro with define-syntax in (hnh util). (diff) | |
download | calp-3e5bb9f0cb4f6d10b809665886f35fa922e0ba36.tar.gz calp-3e5bb9f0cb4f6d10b809665886f35fa922e0ba36.tar.xz |
Remove define-macro in (vulgar termios).
Diffstat (limited to 'module')
-rw-r--r-- | module/vulgar/termios.scm | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/module/vulgar/termios.scm b/module/vulgar/termios.scm index 532fc07e..aa26da65 100644 --- a/module/vulgar/termios.scm +++ b/module/vulgar/termios.scm @@ -99,22 +99,21 @@ -;; Macro for creating accessor bindings for slots in a list, which are wrapped -;; inside a <termios> record. Called exactly once below. -(define-macro (create-bindings! . symbols) - `(begin ,@(map - (lambda (symb i) - `(define-public ,symb - (make-procedure-with-setter - (lambda (t) (list-ref (as-list t) ,i)) - (lambda (t v) (let ((lst (as-list t))) - (list-set! lst ,i v) - (set-list! t lst)))))) - symbols - (iota (length symbols))))) - -(create-bindings! ; accessors - iflag oflag cflag lflag line cc ispeed ospeed) +(define (make-termios-accessor idx) + (make-procedure-with-setter + (lambda (t) (list-ref (as-list t) idx)) + (lambda (t v) (let ((lst (as-list t))) + (list-set! lst idx v) + (set-list! t lst))))) + +(define-public iflag (make-termios-accessor 0)) +(define-public oflag (make-termios-accessor 1)) +(define-public cflag (make-termios-accessor 2)) +(define-public lflag (make-termios-accessor 3)) +(define-public line (make-termios-accessor 4)) +(define-public cc (make-termios-accessor 5)) +(define-public ispeed (make-termios-accessor 6)) +(define-public ospeed (make-termios-accessor 7)) |