~ruther/guix-local

a8f3424b25cbbc585126420bcc1434c4a2398588 — Ludovic Courtès 10 years ago 0a17fd7
syscalls: Wrap TCSA* constants in 'tcsetattr-action' macro.

* guix/build/syscalls.scm (tcsetattr-action): New macro.
(TCSANOW, TCSADRAIN, TCSAFLUSH): Remove.
(tcsetattr): Adjust docstring accordingly.
* tests/syscalls.scm ("tcsetattr"): Adjust accordingly.
2 files changed, 9 insertions(+), 9 deletions(-)

M guix/build/syscalls.scm
M tests/syscalls.scm
M guix/build/syscalls.scm => guix/build/syscalls.scm +8 -8
@@ 110,9 110,7 @@
            termios-input-speed
            termios-output-speed
            local-flags
            TCSANOW
            TCSADRAIN
            TCSAFLUSH
            tcsetattr-action
            tcgetattr
            tcsetattr



@@ 1059,9 1057,11 @@ given an integer, returns the list of names of the constants that are or'd."
 (define EXTPROC #o0200000))

;; "Actions" values for 'tcsetattr'.
(define TCSANOW  0)
(define TCSADRAIN 1)
(define TCSAFLUSH 2)
(define-bits tcsetattr-action
  %unused-tcsetattr-action->symbols
  (define TCSANOW  0)
  (define TCSADRAIN 1)
  (define TCSAFLUSH 2))

(define-record-type <termios>
  (termios input-flags output-flags control-flags local-flags


@@ 1107,8 1107,8 @@ given an integer, returns the list of names of the constants that are or'd."
(define tcsetattr
  (let ((proc (syscall->procedure int "tcsetattr" (list int int '*))))
    (lambda (fd actions termios)
      "Use TERMIOS for the tty at FD.  ACTIONS is one of 'TCSANOW',
'TCSADRAIN', or 'TCSAFLUSH'; see tcsetattr(3) for details."
      "Use TERMIOS for the tty at FD.  ACTIONS is one of of the values
produced by 'tcsetattr-action'; see tcsetattr(3) for details."
      (define bv
        (make-bytevector sizeof-termios))


M tests/syscalls.scm => tests/syscalls.scm +1 -1
@@ 281,7 281,7 @@

(test-assert "tcsetattr"
  (let ((first (tcgetattr 0)))
    (tcsetattr 0 TCSANOW first)
    (tcsetattr 0 (tcsetattr-action TCSANOW) first)
    (equal? first (tcgetattr 0))))

(test-assert "terminal-window-size ENOTTY"