diff mcabber/mcabber/commands.c @ 2010:a73ce708c2c9

Fix bookmarks losing autojoin attribute
author Hermitifier
date Wed, 29 Feb 2012 09:18:09 +0100
parents d4273346d52d
children 8dc418af3e72
line wrap: on
line diff
--- a/mcabber/mcabber/commands.c	Tue Feb 28 20:26:22 2012 +0100
+++ b/mcabber/mcabber/commands.c	Wed Feb 29 09:18:09 2012 +0100
@@ -3059,7 +3059,7 @@
   enum room_flagjoins flagjoins = 0;
   enum room_printstatus printstatus = 0;
   enum { bm_add = 0, bm_del = 1 } action = 0;
-  int autojoin = 0;
+  int autojoin = 0, autojoin_set = 0;
   int nick_set = 0;
 
   if (arg && *arg) {
@@ -3073,11 +3073,14 @@
         action = bm_add;
       else if (!strcasecmp(*pp, "del"))
         action = bm_del;
-      else if (!strcasecmp(*pp, "-autojoin"))
+      else if (!strcasecmp(*pp, "-autojoin")) {
         autojoin = 0;
-      else if (!strcasecmp(*pp, "+autojoin") || !strcasecmp(*pp, "autojoin"))
+        autojoin_set = 1;
+      } else if (!strcasecmp(*pp, "+autojoin")
+          || !strcasecmp(*pp, "autojoin")) {
         autojoin = 1;
-      else if (!strcmp(*pp, "-"))
+        autojoin_set = 1;
+      } else if (!strcmp(*pp, "-"))
         nick_set = 1;
       else {
         nick_set = 1;
@@ -3096,6 +3099,9 @@
       if (!nick) //we are probably bookmarking offline room
         nick = xmpp_get_bookmark_nick(roomid);
     }
+    if (!autojoin_set) {
+      autojoin = xmpp_get_bookmark_autojoin(roomid);
+    }
     printstatus = buddy_getprintstatus(bud);
     autowhois   = buddy_getautowhois(bud);
     flagjoins   = buddy_getflagjoins(bud);