changeset 194:a05d5c3876ec

[/trunk] Changeset 206 by mikael * Default group for Jabber agents is "Jabber Agents" * Add backward_kill_word() (bound to Ctrl-w)
author mikael
date Fri, 06 May 2005 19:57:55 +0000
parents 5cbdcccfab29
children cdaa53d5ef70
files mcabber/src/jabglue.c mcabber/src/screen.c
diffstat 2 files changed, 35 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/jabglue.c	Fri May 06 18:06:31 2005 +0000
+++ b/mcabber/src/jabglue.c	Fri May 06 19:57:55 2005 +0000
@@ -31,6 +31,8 @@
 #define JABBERPORT      5222
 #define JABBERSSLPORT   5223
 
+#define JABBER_AGENT_GROUP "Jabber Agents"
+
 jconn jc;
 time_t LastPingTime;
 unsigned int KeepaliveDelay;
@@ -601,7 +603,8 @@
 
                   if (atype == transport) {
                     char *cleanjid = jidtodisp(alias);
-                    roster_add_user(cleanjid, NULL, NULL, ROSTER_TYPE_AGENT);
+                    roster_add_user(cleanjid, NULL, JABBER_AGENT_GROUP,
+                            ROSTER_TYPE_AGENT);
                     g_free(cleanjid);
                   }
                   if (alias && name && desc) {
--- a/mcabber/src/screen.c	Fri May 06 18:06:31 2005 +0000
+++ b/mcabber/src/screen.c	Fri May 06 19:57:55 2005 +0000
@@ -1070,6 +1070,33 @@
   return cmdhisto_backup;
 }
 
+//  backward_kill_word()
+// Kill the word before the cursor, in input line
+void backward_kill_word()
+{
+  char *c, *old = ptr_inputline;
+  int spaceallowed = 1;
+
+  if (ptr_inputline == inputLine) return;
+
+  for (c = ptr_inputline-1 ; c > inputLine ; c--)
+    if (!isalnum(*c)) {
+      if (*c == ' ')
+        if (!spaceallowed) break;
+    } else spaceallowed = 0;
+
+  if (c != inputLine || *c != ' ')
+    if ((c < ptr_inputline-1) && (!isalnum(*c)))
+      c++;
+
+  // Modify the line
+  ptr_inputline = c;
+  for (;;) {
+    *c = *old++;
+    if (!*c++) break;
+  }
+}
+
 //  which_row()
 // Tells which row our cursor is in, in the command line.
 // -1 -> normal text
@@ -1329,6 +1356,10 @@
       case 14:  // Ctrl-n
           scr_ScrollDown();
           break;
+      case 23:  // Ctrl-w
+          backward_kill_word();
+          check_offset(-1);
+          break;
       case 27:  // ESC
           currentWindow = NULL;
           chatmode = FALSE;