aboutsummaryrefslogtreecommitdiffstats
path: root/libterminput_is_ready.3
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libterminput_is_ready.334
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)