From 3e5bb9f0cb4f6d10b809665886f35fa922e0ba36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 22 Jun 2022 23:50:09 +0200 Subject: Remove define-macro in (vulgar termios). --- module/vulgar/termios.scm | 31 +++++++++++++++---------------- 1 file 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 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)) -- cgit v1.2.3