Mercurial > ~mikael > mcabber > hg
diff mcabber/mcabber/commands.c @ 1979:6febc7d1f760
Add /room setopt flag_joins (Hermitifier)
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 26 Mar 2011 14:45:19 +0100 |
parents | 986e514bec97 |
children | 3bcc57751283 |
line wrap: on
line diff
--- a/mcabber/mcabber/commands.c Sat Mar 26 13:56:41 2011 +0100 +++ b/mcabber/mcabber/commands.c Sat Mar 26 14:45:19 2011 +0100 @@ -2798,7 +2798,8 @@ { char **paramlst; char *param, *value; - enum { opt_none = 0, opt_printstatus, opt_autowhois } option = 0; + enum { opt_none = 0, opt_printstatus, + opt_autowhois, opt_flagjoins } option = 0; paramlst = split_arg(arg, 2, 1); // param, value param = *paramlst; @@ -2813,6 +2814,8 @@ option = opt_printstatus; else if (!strcasecmp(param, "auto_whois")) option = opt_autowhois; + else if (!strcasecmp(param, "flag_joins")) + option = opt_flagjoins; else { scr_LogPrint(LPRINT_NORMAL, "Wrong option!"); free_arg_lst(paramlst); @@ -2824,8 +2827,10 @@ const char *strval; if (option == opt_printstatus) strval = strprintstatus[buddy_getprintstatus(bud)]; + else if (option == opt_autowhois) + strval = strautowhois[buddy_getautowhois(bud)]; else - strval = strautowhois[buddy_getautowhois(bud)]; + strval = strflagjoins[buddy_getflagjoins(bud)]; scr_LogPrint(LPRINT_NORMAL, "%s is set to: %s", param, strval); free_arg_lst(paramlst); return; @@ -2857,6 +2862,20 @@ scr_LogPrint(LPRINT_NORMAL, "Unrecognized value, assuming default..."); } buddy_setautowhois(bud, eval); + } else if (option == opt_flagjoins) { + enum room_flagjoins eval; + if (!strcasecmp(value, "none")) + eval = flagjoins_none; + else if (!strcasecmp(value, "joins")) + eval = flagjoins_joins; + else if (!strcasecmp(value, "all")) + eval = flagjoins_all; + else { + eval = flagjoins_default; + if (strcasecmp(value, "default") != 0) + scr_LogPrint(LPRINT_NORMAL, "Unrecognized value, assuming default..."); + } + buddy_setflagjoins(bud, eval); } free_arg_lst(paramlst); @@ -2962,6 +2981,7 @@ const char *name = NULL, *nick = NULL, *group = NULL; char *tmpnick = NULL; enum room_autowhois autowhois = 0; + enum room_flagjoins flagjoins = 0; enum room_printstatus printstatus = 0; enum { bm_add = 0, bm_del = 1 } action = 0; int autojoin = 0; @@ -3000,11 +3020,12 @@ nick = buddy_getnickname(bud); printstatus = buddy_getprintstatus(bud); autowhois = buddy_getautowhois(bud); + flagjoins = buddy_getflagjoins(bud); group = buddy_getgroupname(bud); } xmpp_set_storage_bookmark(roomid, name, nick, NULL, autojoin, - printstatus, autowhois, group); + printstatus, autowhois, flagjoins, group); g_free (tmpnick); }