From 9b835273c0993a8f67e6c93024099ca99cbf6344 Mon Sep 17 00:00:00 2001 From: Thijs Date: Fri, 11 Jul 2025 13:50:03 +0200 Subject: fix(readkey): improve error handling system.readkey now passes any errors from system._readkey on to the caller. --- system/init.lua | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'system/init.lua') diff --git a/system/init.lua b/system/init.lua index eeaf38f..9b71d4d 100644 --- a/system/init.lua +++ b/system/init.lua @@ -256,19 +256,23 @@ do end local interval = 0.0125 - local key = system._readkey() + local ok + local key, err = system._readkey() while key == nil and timeout > 0 do - local ok, err = (fsleep or system.sleep)(math.min(interval, timeout)) + if err then + return nil, err + end + ok, err = (fsleep or system.sleep)(math.min(interval, timeout)) if not ok then return nil, err end timeout = timeout - interval interval = math.min(0.1, interval * 2) - key = system._readkey() + key, err = system._readkey() end - if key then - return key + if key or err then + return key, err end return nil, "timeout" end -- cgit v1.2.3-55-g6feb