diff mcabber/src/screen.c @ 1176:547a8ca7c1a8

Move init_bindings() to screen.c, with a few updates - Move the function init_bindings() to screen.c scr_init_bindings() - Get rid of the malloc/free - Add two key bindings: Meta-a, Meta-b - Put the comments on the same line when it is possible, in order to save some space.
author Mikael Berthe <mikael@lilotux.net>
date Wed, 04 Apr 2007 22:03:49 +0200
parents 960f34ec22a2
children 10733d7de004
line wrap: on
line diff
--- a/mcabber/src/screen.c	Tue Apr 03 20:33:28 2007 +0200
+++ b/mcabber/src/screen.c	Wed Apr 04 22:03:49 2007 +0200
@@ -307,6 +307,67 @@
   add_keyseq("[4~", MKEY_EQUIV, KEY_END);  // End
 }
 
+//  scr_init_bindings()
+// Create default key bindings
+// Return 0 if error and 1 if none
+void scr_init_bindings(void)
+{
+  GString *sbuf = g_string_new("");
+
+  // Common backspace key codes: 8, 127
+  settings_set(SETTINGS_TYPE_BINDING, "8", "iline char_bdel");    // Ctrl-h
+  settings_set(SETTINGS_TYPE_BINDING, "127", "iline char_bdel");
+  g_string_printf(sbuf, "%d", KEY_BACKSPACE);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline char_bdel");
+  g_string_printf(sbuf, "%d", KEY_DC);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline char_fdel");
+  g_string_printf(sbuf, "%d", KEY_LEFT);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline bchar");
+  g_string_printf(sbuf, "%d", KEY_RIGHT);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline fchar");
+  settings_set(SETTINGS_TYPE_BINDING, "7", "iline compl_cancel"); // Ctrl-g
+  g_string_printf(sbuf, "%d", KEY_UP);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline hist_prev");
+  g_string_printf(sbuf, "%d", KEY_DOWN);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline hist_next");
+  g_string_printf(sbuf, "%d", KEY_PPAGE);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "roster up");
+  g_string_printf(sbuf, "%d", KEY_NPAGE);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "roster down");
+  g_string_printf(sbuf, "%d", KEY_HOME);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline iline_start");
+  settings_set(SETTINGS_TYPE_BINDING, "1", "iline iline_start");  // Ctrl-a
+  g_string_printf(sbuf, "%d", KEY_END);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline iline_end");
+  settings_set(SETTINGS_TYPE_BINDING, "5", "iline iline_end");    // Ctrl-e
+  // Ctrl-o (accept-line-and-down-history):
+  settings_set(SETTINGS_TYPE_BINDING, "15", "iline iline_accept_down_hist");
+  settings_set(SETTINGS_TYPE_BINDING, "21", "iline iline_bdel");  // Ctrl-u
+  g_string_printf(sbuf, "%d", KEY_EOL);
+  settings_set(SETTINGS_TYPE_BINDING, sbuf->str, "iline iline_fdel");
+  settings_set(SETTINGS_TYPE_BINDING, "11", "iline iline_fdel");  // Ctrl-k
+  settings_set(SETTINGS_TYPE_BINDING, "16", "buffer up");         // Ctrl-p
+  settings_set(SETTINGS_TYPE_BINDING, "14", "buffer down");       // Ctrl-n
+  settings_set(SETTINGS_TYPE_BINDING, "20", "iline char_swap");   // Ctrl-t
+  settings_set(SETTINGS_TYPE_BINDING, "23", "iline word_bdel");   // Ctrl-w
+  settings_set(SETTINGS_TYPE_BINDING, "M98", "iline bword");      // Meta-b
+  settings_set(SETTINGS_TYPE_BINDING, "M102", "iline fword");     // Meta-f
+  // Ctrl-Left  (2 codes):
+  settings_set(SETTINGS_TYPE_BINDING, "515", "iline bword");
+  settings_set(SETTINGS_TYPE_BINDING, "516", "iline bword");
+  // Ctrl-Right (2 codes):
+  settings_set(SETTINGS_TYPE_BINDING, "517", "iline fword");
+  settings_set(SETTINGS_TYPE_BINDING, "518", "iline fword");
+  settings_set(SETTINGS_TYPE_BINDING, "12", "screen_refresh");    // Ctrl-l
+  settings_set(SETTINGS_TYPE_BINDING, "27", "chat_disable");      // Esc
+  settings_set(SETTINGS_TYPE_BINDING, "4", "iline send_multiline"); // Ctrl-d
+  settings_set(SETTINGS_TYPE_BINDING, "M117", "iline word_upcase"); // Meta-u
+  settings_set(SETTINGS_TYPE_BINDING, "M108", "iline word_downcase"); // Meta-l
+  settings_set(SETTINGS_TYPE_BINDING, "M99", "iline word_capit"); // Meta-c
+
+  g_string_free(sbuf, TRUE);
+}
+
 void scr_InitLocaleCharSet(void)
 {
   setlocale(LC_CTYPE, "");