'int' might not be wide enough to hold any Unicode codepoint; use 'long'

This commit is contained in:
Paul LeoNerd Evans 2008-10-10 00:50:56 +01:00
parent 37156ad580
commit fd769d621e
4 changed files with 10 additions and 10 deletions

View File

@ -164,7 +164,7 @@ static termkey_result getkey_csi(termkey_t *tk, size_t introlen, termkey_key *ke
} }
unsigned char cmd = CHARAT(csi_end); unsigned char cmd = CHARAT(csi_end);
int arg[16]; long arg[16];
char present = 0; char present = 0;
int args = 0; int args = 0;
@ -226,7 +226,7 @@ static termkey_result getkey_csi(termkey_t *tk, size_t introlen, termkey_key *ke
key->code.sym = TERMKEY_SYM_UNKNOWN; key->code.sym = TERMKEY_SYM_UNKNOWN;
if(key->code.sym == TERMKEY_SYM_UNKNOWN) if(key->code.sym == TERMKEY_SYM_UNKNOWN)
fprintf(stderr, "CSI function key %d\n", arg[0]); fprintf(stderr, "CSI function key %ld\n", arg[0]);
} }
else { else {
// We know from the logic above that cmd must be >= 0x40 and < 0x80 // We know from the logic above that cmd must be >= 0x40 and < 0x80
@ -236,7 +236,7 @@ static termkey_result getkey_csi(termkey_t *tk, size_t introlen, termkey_key *ke
key->modifiers |= csi->csi_ss3s[cmd - 0x40].modifier_set; key->modifiers |= csi->csi_ss3s[cmd - 0x40].modifier_set;
if(key->code.sym == TERMKEY_SYM_UNKNOWN) if(key->code.sym == TERMKEY_SYM_UNKNOWN)
fprintf(stderr, "CSI arg1=%d arg2=%d cmd=%c\n", arg[0], arg[1], cmd); fprintf(stderr, "CSI arg1=%ld arg2=%ld cmd=%c\n", arg[0], arg[1], cmd);
} }
return TERMKEY_RES_KEY; return TERMKEY_RES_KEY;

View File

@ -48,7 +48,7 @@ struct termkey {
// want exported as real symbols in the library // want exported as real symbols in the library
struct { struct {
void (*eat_bytes)(termkey_t *tk, size_t count); void (*eat_bytes)(termkey_t *tk, size_t count);
void (*emit_codepoint)(termkey_t *tk, int codepoint, termkey_key *key); void (*emit_codepoint)(termkey_t *tk, long codepoint, termkey_key *key);
termkey_result (*getkey_simple)(termkey_t *tk, termkey_key *key); termkey_result (*getkey_simple)(termkey_t *tk, termkey_key *key);
} method; } method;
}; };

View File

@ -16,7 +16,7 @@ static struct termkey_driver *drivers[] = {
// Forwards for the "protected" methods // Forwards for the "protected" methods
static void eat_bytes(termkey_t *tk, size_t count); static void eat_bytes(termkey_t *tk, size_t count);
static void emit_codepoint(termkey_t *tk, int codepoint, termkey_key *key); static void emit_codepoint(termkey_t *tk, long codepoint, termkey_key *key);
static termkey_result getkey_simple(termkey_t *tk, termkey_key *key); static termkey_result getkey_simple(termkey_t *tk, termkey_key *key);
static termkey_keysym register_c0(termkey_t *tk, termkey_keysym sym, unsigned char ctrl, const char *name); static termkey_keysym register_c0(termkey_t *tk, termkey_keysym sym, unsigned char ctrl, const char *name);
@ -230,7 +230,7 @@ static void eat_bytes(termkey_t *tk, size_t count)
} }
} }
static inline int utf8_seqlen(int codepoint) static inline int utf8_seqlen(long codepoint)
{ {
if(codepoint < 0x0000080) return 1; if(codepoint < 0x0000080) return 1;
if(codepoint < 0x0000800) return 2; if(codepoint < 0x0000800) return 2;
@ -242,7 +242,7 @@ static inline int utf8_seqlen(int codepoint)
static void fill_utf8(termkey_key *key) static void fill_utf8(termkey_key *key)
{ {
int codepoint = key->code.codepoint; long codepoint = key->code.codepoint;
int nbytes = utf8_seqlen(codepoint); int nbytes = utf8_seqlen(codepoint);
key->utf8[nbytes] = 0; key->utf8[nbytes] = 0;
@ -265,7 +265,7 @@ static void fill_utf8(termkey_key *key)
} }
} }
static void emit_codepoint(termkey_t *tk, int codepoint, termkey_key *key) static void emit_codepoint(termkey_t *tk, long codepoint, termkey_key *key)
{ {
if(codepoint < 0x20) { if(codepoint < 0x20) {
// C0 range // C0 range
@ -338,7 +338,7 @@ static termkey_result getkey_simple(termkey_t *tk, termkey_key *key)
else if(tk->flags & TERMKEY_FLAG_UTF8) { else if(tk->flags & TERMKEY_FLAG_UTF8) {
// Some UTF-8 // Some UTF-8
int nbytes; int nbytes;
int codepoint; long codepoint;
key->type = TERMKEY_TYPE_UNICODE; key->type = TERMKEY_TYPE_UNICODE;
key->modifiers = 0; key->modifiers = 0;

View File

@ -82,7 +82,7 @@ typedef int termkey_keysym;
typedef struct { typedef struct {
termkey_type type; termkey_type type;
union { union {
int codepoint; // TERMKEY_TYPE_UNICODE long codepoint; // TERMKEY_TYPE_UNICODE
int number; // TERMKEY_TYPE_FUNCTION int number; // TERMKEY_TYPE_FUNCTION
termkey_keysym sym; // TERMKEY_TYPE_KEYSYM termkey_keysym sym; // TERMKEY_TYPE_KEYSYM
} code; } code;