changeset 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 4b4fa9d685b8
children 10733d7de004
files mcabber/src/main.c mcabber/src/screen.c mcabber/src/screen.h
diffstat 3 files changed, 65 insertions(+), 84 deletions(-) [+]
line wrap: on
line diff
--- 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 */
--- 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, "");
--- 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);