Document the errors set by termkey_new(), use errno rather than fprintf() to stderr

This commit is contained in:
Paul LeoNerd Evans 2012-01-29 16:13:38 +00:00
parent 9b20346dc3
commit ee12c698da
3 changed files with 12 additions and 6 deletions

View File

@ -19,7 +19,6 @@ typedef struct {
static void register_csi_ss3_full(TermKeyType type, TermKeySym sym, int modifier_set, int modifier_mask, unsigned char cmd)
{
if(cmd < 0x40 || cmd >= 0x80) {
fprintf(stderr, "Cannot register CSI/SS3 key at cmd 0x%02x - out of bounds\n", cmd);
return;
}
@ -37,7 +36,6 @@ static void register_csi_ss3(TermKeyType type, TermKeySym sym, unsigned char cmd
static void register_ss3kpalt(TermKeyType type, TermKeySym sym, unsigned char cmd, char kpalt)
{
if(cmd < 0x40 || cmd >= 0x80) {
fprintf(stderr, "Cannot register SS3 key at cmd 0x%02x - out of bounds\n", cmd);
return;
}
@ -51,7 +49,6 @@ static void register_ss3kpalt(TermKeyType type, TermKeySym sym, unsigned char cm
static void register_csifunc(TermKeyType type, TermKeySym sym, int number)
{
if(number >= NCSIFUNCS) {
fprintf(stderr, "Cannot register CSI function key at number %d - out of bounds\n", number);
return;
}

View File

@ -25,7 +25,16 @@ If a file handle is provided, the terminfo driver may send a string to initialis
.SH VERSION CHECK MACRO
Before calling any functions in the \fBtermkey\fP library, an application should use the \fBTERMKEY_CHECK_VERSION\fP macro to check that the loaded version of the library is compatible with the version it was compiled against. This should be done early on, ideally just after entering its \fBmain\fP() function.
.SH "RETURN VALUE"
If successful, \fBtermkey_new\fP() returns a pointer to the new instance. On failure, \fBNULL\fP is returned. \fBtermkey_destroy\fP() returns no value.
If successful, \fBtermkey_new\fP() returns a pointer to the new instance. On failure, \fBNULL\fP is returned with \fIerrno\fP set to indicate the failure. \fBtermkey_destroy\fP() returns no value.
.SH ERRORS
.TP
.B ENOENT
No driver was able to recognise the given terminal type.
.TP
.B ENOMEM
A call to \fBmalloc\fP(3) failed to allocate memory.
.PP
Additionally, \fBtermkey_new\fP() may fail if \fBfstat\fP(2) or \fBwrite\fP(2) fails on the given file handle.
.SH "SEE ALSO"
.BR termkey_waitkey (3),
.BR termkey_advisereadable (3),

View File

@ -266,7 +266,7 @@ static int termkey_init(TermKey *tk, const char *term)
}
if(!tk->drivers) {
fprintf(stderr, "Unable to find a terminal driver\n");
errno = ENOENT;
goto abort_free_keynames;
}
@ -1114,7 +1114,7 @@ static TermKeySym register_c0(TermKey *tk, TermKeySym sym, unsigned char ctrl, c
static TermKeySym register_c0_full(TermKey *tk, TermKeySym sym, int modifier_set, int modifier_mask, unsigned char ctrl, const char *name)
{
if(ctrl >= 0x20) {
fprintf(stderr, "Cannot register C0 key at ctrl 0x%02x - out of bounds\n", ctrl);
errno = EINVAL;
return -1;
}