aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--termkey.c4
-rw-r--r--termkey.h6
2 files changed, 8 insertions, 2 deletions
diff --git a/termkey.c b/termkey.c
index 0954ac5..1d2ae4d 100644
--- a/termkey.c
+++ b/termkey.c
@@ -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;
diff --git a/termkey.h b/termkey.h
index 5c50014..04b0aa9 100644
--- a/termkey.h
+++ b/termkey.h
@@ -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