From 7a2b79a6402979b4895e78657d59a770d5b082b3 Mon Sep 17 00:00:00 2001 From: Paul LeoNerd Evans Date: Thu, 18 Aug 2011 11:20:41 +0100 Subject: Provide a new result value, TERMKEY_RES_ERROR to indicate an IO error - preserve errno --- demo.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'demo.c') diff --git a/demo.c b/demo.c index de3f511..11d85f2 100644 --- a/demo.c +++ b/demo.c @@ -1,5 +1,6 @@ #include #include +#include #include "termkey.h" @@ -44,13 +45,22 @@ int main(int argc, char *argv[]) printf("\e[?%dhMouse mode active\n", mouse); while((ret = termkey_waitkey(tk, &key)) != TERMKEY_RES_EOF) { - termkey_strfkey(tk, buffer, sizeof buffer, &key, format); - printf("%s\n", buffer); + if(ret == TERMKEY_RES_KEY) { + termkey_strfkey(tk, buffer, sizeof buffer, &key, format); + printf("%s\n", buffer); - if(key.type == TERMKEY_TYPE_UNICODE && - key.modifiers & TERMKEY_KEYMOD_CTRL && - (key.code.codepoint == 'C' || key.code.codepoint == 'c')) - break; + if(key.type == TERMKEY_TYPE_UNICODE && + key.modifiers & TERMKEY_KEYMOD_CTRL && + (key.code.codepoint == 'C' || key.code.codepoint == 'c')) + break; + } + else if(ret == TERMKEY_RES_ERROR) { + if(errno != EINTR) { + perror("termkey_waitkey"); + break; + } + printf("Interrupted by signal\n"); + } } if(mouse) -- cgit v1.2.3