# HG changeset patch # User Mikael Berthe # Date 1175717029 -7200 # Node ID 547a8ca7c1a80d7d3ac0c9b02c2f57756c564ebe # Parent 4b4fa9d685b88a50397b8cdad22565c45738ea93 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. diff -r 4b4fa9d685b8 -r 547a8ca7c1a8 mcabber/src/main.c --- a/mcabber/src/main.c Tue Apr 03 20:33:28 2007 +0200 +++ b/mcabber/src/main.c Wed Apr 04 22:03:49 2007 +0200 @@ -290,86 +290,6 @@ #endif /* HAVE_GPGME */ } -// Create default bindings -// Return 0 if error and 1 if none -int init_bindings(void) -{ - char *tmp; - - if ( !(tmp = (char*)malloc(10)) ) { - scr_LogPrint(LPRINT_LOGNORM, "Not enough memory!"); - fprintf(stderr, "Not enough memory!"); - return 0; - } - - // Ctrl-h - settings_set(SETTINGS_TYPE_BINDING, "8", "iline char_bdel"); - settings_set(SETTINGS_TYPE_BINDING, "127", "iline char_bdel"); - sprintf(tmp, "%d", KEY_BACKSPACE); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline char_bdel"); - sprintf(tmp, "%d", KEY_DC); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline char_fdel"); - sprintf(tmp, "%d", KEY_LEFT); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline bchar"); - sprintf(tmp, "%d", KEY_RIGHT); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline fchar"); - // Ctrl-g - settings_set(SETTINGS_TYPE_BINDING, "7", "iline compl_cancel"); - sprintf(tmp, "%d", KEY_UP); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline hist_prev"); - sprintf(tmp, "%d", KEY_DOWN); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline hist_next"); - sprintf(tmp, "%d", KEY_PPAGE); - settings_set(SETTINGS_TYPE_BINDING, tmp, "roster up"); - sprintf(tmp, "%d", KEY_NPAGE); - settings_set(SETTINGS_TYPE_BINDING, tmp, "roster down"); - sprintf(tmp, "%d", KEY_HOME); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline iline_start"); - // Ctrl-a - settings_set(SETTINGS_TYPE_BINDING, "1", "iline iline_start"); - sprintf(tmp, "%d", KEY_END); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline iline_end"); - // Ctrl-e - settings_set(SETTINGS_TYPE_BINDING, "5", "iline iline_end"); - // Ctrl-o - settings_set(SETTINGS_TYPE_BINDING, "15", "iline iline_accept_down_hist"); - // Ctrl-u - settings_set(SETTINGS_TYPE_BINDING, "21", "iline iline_bdel"); - sprintf(tmp, "%d", KEY_EOL); - settings_set(SETTINGS_TYPE_BINDING, tmp, "iline iline_fdel"); - // Ctrl-k - settings_set(SETTINGS_TYPE_BINDING, "11", "iline iline_fdel"); - // Ctrl-p - settings_set(SETTINGS_TYPE_BINDING, "16", "buffer up"); - // Ctrl-n - settings_set(SETTINGS_TYPE_BINDING, "14", "buffer down"); - // Ctrl-t - settings_set(SETTINGS_TYPE_BINDING, "20", "iline char_swap"); - // Ctrl-w - settings_set(SETTINGS_TYPE_BINDING, "23", "iline word_bdel"); - // 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"); - // Ctrl-l - settings_set(SETTINGS_TYPE_BINDING, "12", "screen_repaint"); - // Esc - settings_set(SETTINGS_TYPE_BINDING, "27", "chat_disable"); - // Ctrl-d - settings_set(SETTINGS_TYPE_BINDING, "4", "iline send_multiline"); - // Meta-u - settings_set(SETTINGS_TYPE_BINDING, "M117", "iline word_upcase"); - // Meta-l - settings_set(SETTINGS_TYPE_BINDING, "M108", "iline word_downcase"); - // Meta-c - settings_set(SETTINGS_TYPE_BINDING, "M99", "iline word_capit"); - - free(tmp); - return 1; -} - int main(int argc, char **argv) { char *configFile = NULL; @@ -403,16 +323,14 @@ } } - /* Initialize commands system and roster */ + /* Initialize command system, roster and default key bindings */ cmd_init(); roster_init(); settings_init(); + scr_init_bindings(); /* Initialize charset */ scr_InitLocaleCharSet(); - /* Creating default bindings */ - if (!init_bindings()) exit(EXIT_FAILURE); - /* Parsing config file... */ ret = cfg_read_file(configFile); /* free() configFile if it has been allocated during options parsing */ diff -r 4b4fa9d685b8 -r 547a8ca7c1a8 mcabber/src/screen.c --- 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, ""); diff -r 4b4fa9d685b8 -r 547a8ca7c1a8 mcabber/src/screen.h --- a/mcabber/src/screen.h Tue Apr 03 20:33:28 2007 +0200 +++ b/mcabber/src/screen.h Wed Apr 04 22:03:49 2007 +0200 @@ -67,6 +67,8 @@ } mcode; } keycode; +void scr_init_bindings(void); + void scr_Getch(keycode *kcode); int process_key(keycode kcode);