Mercurial > ~mikael > mcabber > hg
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); |