diff options
Diffstat (limited to '')
-rw-r--r-- | libterminput_is_ready.3 | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/libterminput_is_ready.3 b/libterminput_is_ready.3 index 0739e11..c624008 100644 --- a/libterminput_is_ready.3 +++ b/libterminput_is_ready.3 @@ -6,7 +6,7 @@ libterminput_is_ready \- Check if there is read data buffered .nf #include <libterminput.h> -inline int libterminput_is_ready(union libterminput_input *input, struct libterminput_state *ctx); +inline int libterminput_is_ready(const union libterminput_input *\fIinput\fP, const struct libterminput_state *\fIctx\fP); .fi .PP Link with @@ -24,6 +24,35 @@ is buffered data but the library knows it it not enough to return something they, it will also return that there is nothing buffered. +.PP +The +.BR libterminput_is_ready () +function should only be used if using blocking +read operations (terminal file descriptor configured with +.I O_NONBLOCK +cleared). The flags +.I LIBTERMINPUT_ESC_ON_BLOCK +and +.I LIBTERMINPUT_MACRO_ON_BLOCK +are only meaningful for non-blocking reads. With non-blocking +reads, the application should call +.BR libterminput_read (3) +and check for +.I EAGAIN +error rather than using the +.BR libterminput_is_ready () +function, as +.I EAGAIN +errors on read can cause the +.BR libterminput_read (3) +function to output keypresses it would otherwise not output, +but in doing so not report +.I EAGAIN +(although +.I errno +will still be set to +.IR EAGAIN , +so the application can still check if this occurred). .SH RETURN VALUE The @@ -57,4 +86,5 @@ None. None. .SH SEE ALSO -.BR libterminput_read (3) +.BR libterminput_read (3), +.BR fcntl (3) |