changeset 960:90ff94f0fbbb

Auto-whois shouldn't enable chat mode
author Mikael Berthe <mikael@lilotux.net>
date Mon, 11 Sep 2006 19:14:59 +0200
parents 8bf36cef8aa6
children 95659cf9ea1a
files mcabber/src/commands.c mcabber/src/commands.h mcabber/src/jabglue.c
diffstat 3 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/commands.c	Sat Sep 09 13:10:27 2006 +0200
+++ b/mcabber/src/commands.c	Mon Sep 11 19:14:59 2006 +0200
@@ -1871,7 +1871,9 @@
   jb_room_unlock(buddy_getjid(bud));
 }
 
-void room_whois(gpointer bud, char *arg)
+//  room_whois(..)
+// If interactive is TRUE, chatmode can be enabled.
+void room_whois(gpointer bud, char *arg, guint interactive)
 {
   char **paramlst;
   gchar *nick, *buffer;
@@ -1897,9 +1899,11 @@
 
   nick = to_utf8(nick);
 
-  // Enter chat mode
-  scr_set_chatmode(TRUE);
-  scr_ShowBuddyWindow();
+  if (interactive) {
+    // Enter chat mode
+    scr_set_chatmode(TRUE);
+    scr_ShowBuddyWindow();
+  }
 
   jid = buddy_getjid(bud);
   rstatus = buddy_getstatus(bud, nick);
@@ -2030,7 +2034,7 @@
       room_topic(bud, arg);
   } else if (!strcasecmp(subcmd, "whois"))  {
     if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL)
-      room_whois(bud, arg);
+      room_whois(bud, arg, TRUE);
   } else {
     scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!");
   }
--- a/mcabber/src/commands.h	Sat Sep 09 13:10:27 2006 +0200
+++ b/mcabber/src/commands.h	Mon Sep 11 19:14:59 2006 +0200
@@ -20,7 +20,7 @@
 extern char *mcabber_version(void);
 extern void mcabber_connect(void);
 
-void room_whois(gpointer bud, char *nick_locale);
+void room_whois(gpointer bud, char *nick_locale, guint interactive);
 
 #endif /* __COMMANDS_H__ */
 
--- a/mcabber/src/jabglue.c	Sat Sep 09 13:10:27 2006 +0200
+++ b/mcabber/src/jabglue.c	Mon Sep 11 19:14:59 2006 +0200
@@ -1281,7 +1281,7 @@
     if (new_member && settings_opt_get_int("muc_auto_whois")) {
       // FIXME: This will fail for some UTF-8 nicknames.
       gchar *joiner_nick = from_utf8(rname);
-      room_whois(room_elt->data, joiner_nick);
+      room_whois(room_elt->data, joiner_nick, FALSE);
       g_free(joiner_nick);
     }
   } else