diff mcabber/src/commands.c @ 370:dd9e2eb52916

Add /buffer search_{backward,forward}
author Mikael Berthe <mikael@lilotux.net>
date Sun, 24 Jul 2005 22:56:42 +0100
parents 499170ed71c9
children bc54af8ed048
line wrap: on
line diff
--- a/mcabber/src/commands.c	Sun Jul 24 22:31:31 2005 +0100
+++ b/mcabber/src/commands.c	Sun Jul 24 22:56:42 2005 +0100
@@ -127,6 +127,8 @@
   compl_add_category_word(COMPL_BUFFER, "bottom");
   compl_add_category_word(COMPL_BUFFER, "clear");
   compl_add_category_word(COMPL_BUFFER, "top");
+  compl_add_category_word(COMPL_BUFFER, "search_backward");
+  compl_add_category_word(COMPL_BUFFER, "search_forward");
 
   // Group category
   compl_add_category_word(COMPL_GROUP, "fold");
@@ -564,14 +566,32 @@
 
 static void do_buffer(char *arg)
 {
+  int search_dir = 0;
+
   if (!strcasecmp(arg, "top")) {
     scr_BufferTopBottom(-1);
   } else if (!strcasecmp(arg, "bottom")) {
     scr_BufferTopBottom(1);
   } else if (!strcasecmp(arg, "clear")) {
     scr_BufferClear();
+  } else if (!strncasecmp(arg, "search_backward", 15)) {
+    arg += 15;
+    if (*arg++ == ' ')
+      search_dir = -1;
+    else
+      scr_LogPrint("Missing parameter");
+  } else if (!strncasecmp(arg, "search_forward", 14)) {
+    arg += 14;
+    if (*arg++ == ' ')
+      search_dir = 1;
+    else
+      scr_LogPrint("Missing parameter");
   } else
     scr_LogPrint("Unrecognized parameter!");
+
+  // Is it a string search command?
+  if (search_dir)
+    scr_BufferSearch(search_dir, arg);
 }
 
 static void do_clear(char *arg)    // Alias for "/buffer clear"