diff mcabber/src/main.c @ 1173:960f34ec22a2

Add init_bindings() for default key bindings (Lego12239)
author Mikael Berthe <mikael@lilotux.net>
date Tue, 03 Apr 2007 20:30:34 +0200
parents 9726c78a91f3
children 547a8ca7c1a8
line wrap: on
line diff
--- a/mcabber/src/main.c	Tue Apr 03 20:30:28 2007 +0200
+++ b/mcabber/src/main.c	Tue Apr 03 20:30:34 2007 +0200
@@ -290,6 +290,86 @@
 #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;
@@ -330,6 +410,9 @@
   /* 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 */