aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-06-22 23:50:09 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-06-22 23:50:09 +0200
commit3e5bb9f0cb4f6d10b809665886f35fa922e0ba36 (patch)
tree1cb83559d16b1327bf04b0f17c306191051cba44
parentReplace define-macro with define-syntax in (hnh util). (diff)
downloadcalp-3e5bb9f0cb4f6d10b809665886f35fa922e0ba36.tar.gz
calp-3e5bb9f0cb4f6d10b809665886f35fa922e0ba36.tar.xz
Remove define-macro in (vulgar termios).
-rw-r--r--module/vulgar/termios.scm31
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))