Added compile-vs-runtime library version checks
This commit is contained in:
parent
c2dd9675d6
commit
4f73b850c5
@ -11,6 +11,8 @@ void on_key(termkey_t *tk, termkey_key *key)
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
TERMKEY_CHECK_VERSION;
|
||||
|
||||
termkey_t *tk = termkey_new(0, 0);
|
||||
|
||||
if(!tk) {
|
||||
|
2
demo.c
2
demo.c
@ -3,6 +3,8 @@
|
||||
#include "termkey.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
TERMKEY_CHECK_VERSION;
|
||||
|
||||
char buffer[50];
|
||||
termkey_t *tk = termkey_new(0, 0);
|
||||
|
||||
|
17
termkey.c
17
termkey.c
@ -8,6 +8,23 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
void termkey_check_version(int major, int minor)
|
||||
{
|
||||
if(major != TERMKEY_VERSION_MAJOR) {
|
||||
fprintf(stderr, "libtermkey major version mismatch; %d (wants) != %d (library)\n",
|
||||
major, TERMKEY_VERSION_MAJOR);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(minor > TERMKEY_VERSION_MINOR) {
|
||||
fprintf(stderr, "libtermkey minor version mismatch; %d (wants) > %d (library)\n",
|
||||
minor, TERMKEY_VERSION_MINOR);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Happy
|
||||
}
|
||||
|
||||
static struct termkey_driver *drivers[] = {
|
||||
&termkey_driver_ti,
|
||||
&termkey_driver_csi,
|
||||
|
@ -7,6 +7,9 @@
|
||||
#define TERMKEY_VERSION_MAJOR @@VERSION_MAJOR@@
|
||||
#define TERMKEY_VERSION_MINOR @@VERSION_MINOR@@
|
||||
|
||||
#define TERMKEY_CHECK_VERSION \
|
||||
termkey_check_version(TERMKEY_VERSION_MAJOR, TERMKEY_VERSION_MINOR)
|
||||
|
||||
typedef enum {
|
||||
TERMKEY_SYM_UNKNOWN = -1,
|
||||
TERMKEY_SYM_NONE = 0,
|
||||
@ -128,6 +131,8 @@ enum {
|
||||
TERMKEY_FLAG_NOTERMIOS = 1 << 4, // Do not make initial termios calls on construction
|
||||
};
|
||||
|
||||
void termkey_check_version(int major, int minor);
|
||||
|
||||
termkey_t *termkey_new(int fd, int flags);
|
||||
void termkey_free(termkey_t *tk);
|
||||
void termkey_destroy(termkey_t *tk);
|
||||
|
Loading…
Reference in New Issue
Block a user