diff options
author | Paul LeoNerd Evans <leonerd@leonerd.org.uk> | 2008-10-06 22:02:12 +0100 |
---|---|---|
committer | Paul LeoNerd Evans <leonerd@leonerd.org.uk> | 2008-10-06 22:02:12 +0100 |
commit | f54687c5837cacfa440a44c8549a1de0b3dd56ff (patch) | |
tree | 78e96abb6f3bf6b3beef9caf8335ab0590231e58 | |
parent | a06d010504df8b0a77323bf0ffef9ca6bb7ae6b5 (diff) | |
download | termo-f54687c5837cacfa440a44c8549a1de0b3dd56ff.tar.gz termo-f54687c5837cacfa440a44c8549a1de0b3dd56ff.tar.xz termo-f54687c5837cacfa440a44c8549a1de0b3dd56ff.zip |
snprint_key() now takes a bitmask format, not a single boolean
-rw-r--r-- | termkey.c | 4 | ||||
-rw-r--r-- | termkey.h | 6 |
2 files changed, 8 insertions, 2 deletions
@@ -856,11 +856,13 @@ termkey_keysym termkey_register_csifunc_full(termkey_t *tk, termkey_type type, t return sym; } -size_t termkey_snprint_key(termkey_t *tk, char *buffer, size_t len, termkey_key *key, int longmod) +size_t termkey_snprint_key(termkey_t *tk, char *buffer, size_t len, termkey_key *key, termkey_format format) { size_t pos = 0; size_t l; + int longmod = format & TERMKEY_FORMAT_LONGMOD; + if(key->modifiers & TERMKEY_KEYMOD_CTRL) { l = snprintf(buffer + pos, len - pos, longmod ? "Ctrl-" : "C-"); if(l <= 0) return pos; @@ -132,6 +132,10 @@ termkey_keysym termkey_register_csi_ss3_full(termkey_t *tk, termkey_type type, t termkey_keysym termkey_register_ss3kpalt_full(termkey_t *tk, termkey_type type, termkey_keysym sym, int modifier_set, int modifier_mask, unsigned char cmd, const char *name, char kpalt); termkey_keysym termkey_register_csifunc_full(termkey_t *tk, termkey_type type, termkey_keysym sym, int modifier_set, int modifier_mask, int number, const char *name); -size_t termkey_snprint_key(termkey_t *tk, char *buffer, size_t len, termkey_key *key, int longmod); +typedef enum { + TERMKEY_FORMAT_LONGMOD = 1 +} termkey_format; + +size_t termkey_snprint_key(termkey_t *tk, char *buffer, size_t len, termkey_key *key, termkey_format format); #endif |