comparison 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
comparison
equal deleted inserted replaced
2009:a859ed648638 2010:a73ce708c2c9
3057 char *tmpnick = NULL; 3057 char *tmpnick = NULL;
3058 enum room_autowhois autowhois = 0; 3058 enum room_autowhois autowhois = 0;
3059 enum room_flagjoins flagjoins = 0; 3059 enum room_flagjoins flagjoins = 0;
3060 enum room_printstatus printstatus = 0; 3060 enum room_printstatus printstatus = 0;
3061 enum { bm_add = 0, bm_del = 1 } action = 0; 3061 enum { bm_add = 0, bm_del = 1 } action = 0;
3062 int autojoin = 0; 3062 int autojoin = 0, autojoin_set = 0;
3063 int nick_set = 0; 3063 int nick_set = 0;
3064 3064
3065 if (arg && *arg) { 3065 if (arg && *arg) {
3066 // /room bookmark [add|del] [[+|-]autojoin] [-|nick] 3066 // /room bookmark [add|del] [[+|-]autojoin] [-|nick]
3067 char **paramlst; 3067 char **paramlst;
3071 for (pp = paramlst; *pp; pp++) { 3071 for (pp = paramlst; *pp; pp++) {
3072 if (!strcasecmp(*pp, "add")) 3072 if (!strcasecmp(*pp, "add"))
3073 action = bm_add; 3073 action = bm_add;
3074 else if (!strcasecmp(*pp, "del")) 3074 else if (!strcasecmp(*pp, "del"))
3075 action = bm_del; 3075 action = bm_del;
3076 else if (!strcasecmp(*pp, "-autojoin")) 3076 else if (!strcasecmp(*pp, "-autojoin")) {
3077 autojoin = 0; 3077 autojoin = 0;
3078 else if (!strcasecmp(*pp, "+autojoin") || !strcasecmp(*pp, "autojoin")) 3078 autojoin_set = 1;
3079 } else if (!strcasecmp(*pp, "+autojoin")
3080 || !strcasecmp(*pp, "autojoin")) {
3079 autojoin = 1; 3081 autojoin = 1;
3080 else if (!strcmp(*pp, "-")) 3082 autojoin_set = 1;
3083 } else if (!strcmp(*pp, "-"))
3081 nick_set = 1; 3084 nick_set = 1;
3082 else { 3085 else {
3083 nick_set = 1; 3086 nick_set = 1;
3084 nick = tmpnick = to_utf8 (*pp); 3087 nick = tmpnick = to_utf8 (*pp);
3085 } 3088 }
3093 name = buddy_getname(bud); 3096 name = buddy_getname(bud);
3094 if (!nick_set) { 3097 if (!nick_set) {
3095 nick = buddy_getnickname(bud); 3098 nick = buddy_getnickname(bud);
3096 if (!nick) //we are probably bookmarking offline room 3099 if (!nick) //we are probably bookmarking offline room
3097 nick = xmpp_get_bookmark_nick(roomid); 3100 nick = xmpp_get_bookmark_nick(roomid);
3101 }
3102 if (!autojoin_set) {
3103 autojoin = xmpp_get_bookmark_autojoin(roomid);
3098 } 3104 }
3099 printstatus = buddy_getprintstatus(bud); 3105 printstatus = buddy_getprintstatus(bud);
3100 autowhois = buddy_getautowhois(bud); 3106 autowhois = buddy_getautowhois(bud);
3101 flagjoins = buddy_getflagjoins(bud); 3107 flagjoins = buddy_getflagjoins(bud);
3102 group = buddy_getgroupname(bud); 3108 group = buddy_getgroupname(bud);