M guix/build/syscalls.scm => guix/build/syscalls.scm +6 -4
@@ 915,10 915,12 @@ always a positive integer."
(catch 'system-error
(lambda ()
- (match (window-size-columns (terminal-window-size port))
- ;; Things like Emacs shell-mode return 0, which is unreasonable.
- (0 (fall-back))
- ((? number? columns) columns)))
+ (if (file-port? port)
+ (match (window-size-columns (terminal-window-size port))
+ ;; Things like Emacs shell-mode return 0, which is unreasonable.
+ (0 (fall-back))
+ ((? number? columns) columns))
+ (fall-back)))
(lambda args
(let ((errno (system-error-errno args)))
(if (= errno ENOTTY)
M tests/syscalls.scm => tests/syscalls.scm +4 -0
@@ 257,4 257,8 @@
(test-assert "terminal-columns"
(> (terminal-columns) 0))
+(test-assert "terminal-columns non-file port"
+ (> (terminal-columns (open-input-string "Join us now, share the software!"))
+ 0))
+
(test-end)