From 5189669562a6d171409d522e573998383b73da37 Mon Sep 17 00:00:00 2001 From: Brad Nelson Date: Sun, 15 Jan 2023 19:26:56 -0800 Subject: [PATCH] Make key return -1 on EOF. --- posix/posix.fs | 2 +- windows/windows_console.fs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/posix/posix.fs b/posix/posix.fs index d109c83..57cc2ac 100644 --- a/posix/posix.fs +++ b/posix/posix.fs @@ -104,7 +104,7 @@ decimal ( Hookup I/O ) : stdout-write ( a n -- ) stdout -rot write drop ; -: stdin-key ( -- n ) 0 >r stdin rp@ 1 read drop r> ; +: stdin-key ( -- n ) 0 >r stdin rp@ 1 read 0= if rdrop -1 exit then r> ; also forth definitions : default-type stdout-write ; diff --git a/windows/windows_console.fs b/windows/windows_console.fs index 1431a4e..7c0bd0e 100644 --- a/windows/windows_console.fs +++ b/windows/windows_console.fs @@ -62,7 +62,8 @@ variable console-mode ; : win-type ( a n -- ) init-console stdout -rot NULL NULL WriteFile drop ; -: raw-key ( -- n ) 0 >r stdin rp@ 1 NULL NULL ReadFile drop r> ; +: raw-key ( -- n ) + 0 >r stdin rp@ 1 NULL NULL ReadFile 0= if rdrop -1 exit then r> ; : win-key? ( -- f ) stdin 0 WaitForSingleObject 0= ; : win-key ( -- n ) raw-key dup 13 = if drop nl then ;