summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/gui-keyboard.c35
-rw-r--r--src/gui/gui-keyboard.h2
2 files changed, 37 insertions, 0 deletions
diff --git a/src/gui/gui-keyboard.c b/src/gui/gui-keyboard.c
index a8c9bbd29..27d60105c 100644
--- a/src/gui/gui-keyboard.c
+++ b/src/gui/gui-keyboard.c
@@ -28,6 +28,7 @@
#include <ctype.h>
#include "../core/weechat.h"
+#include "../core/wee-infolist.h"
#include "../core/wee-input.h"
#include "../core/wee-log.h"
#include "../core/wee-string.h"
@@ -702,6 +703,40 @@ gui_keyboard_end ()
}
/*
+ * gui_keyboard_add_to_infolist: add a key in an infolist
+ * return 1 if ok, 0 if error
+ */
+
+int
+gui_keyboard_add_to_infolist (struct t_infolist *infolist,
+ struct t_gui_key *key)
+{
+ struct t_infolist_item *ptr_item;
+ char *expanded_key;
+
+ if (!infolist || !key)
+ return 0;
+
+ ptr_item = infolist_new_item (infolist);
+ if (!ptr_item)
+ return 0;
+
+ if (!infolist_new_var_string (ptr_item, "key_internal", key->key))
+ return 0;
+ expanded_key = gui_keyboard_get_expanded_name (key->key);
+ if (expanded_key)
+ {
+ if (!infolist_new_var_string (ptr_item, "key", expanded_key))
+ return 0;
+ free (expanded_key);
+ }
+ if (!infolist_new_var_string (ptr_item, "command", key->command))
+ return 0;
+
+ return 1;
+}
+
+/*
* gui_keyboard_print_log: print key infos in log (usually for crash dump)
*/
diff --git a/src/gui/gui-keyboard.h b/src/gui/gui-keyboard.h
index 5aea4b427..73dda8d00 100644
--- a/src/gui/gui-keyboard.h
+++ b/src/gui/gui-keyboard.h
@@ -74,6 +74,8 @@ extern int gui_keyboard_get_paste_lines ();
extern void gui_keyboard_paste_accept ();
extern void gui_keyboard_paste_cancel ();
extern void gui_keyboard_end ();
+extern int gui_keyboard_add_to_infolist (struct t_infolist *infolist,
+ struct t_gui_key *key);
extern void gui_keyboard_print_log (struct t_gui_buffer *buffer);
/* keyboard functions (GUI dependent) */