Mercurial > ~mikael > mcabber > hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
1978:986e514bec97 | 1979:6febc7d1f760 |
---|---|
2796 | 2796 |
2797 static void room_setopt(gpointer bud, char *arg) | 2797 static void room_setopt(gpointer bud, char *arg) |
2798 { | 2798 { |
2799 char **paramlst; | 2799 char **paramlst; |
2800 char *param, *value; | 2800 char *param, *value; |
2801 enum { opt_none = 0, opt_printstatus, opt_autowhois } option = 0; | 2801 enum { opt_none = 0, opt_printstatus, |
2802 opt_autowhois, opt_flagjoins } option = 0; | |
2802 | 2803 |
2803 paramlst = split_arg(arg, 2, 1); // param, value | 2804 paramlst = split_arg(arg, 2, 1); // param, value |
2804 param = *paramlst; | 2805 param = *paramlst; |
2805 value = *(paramlst+1); | 2806 value = *(paramlst+1); |
2806 if (!param) { | 2807 if (!param) { |
2811 | 2812 |
2812 if (!strcasecmp(param, "print_status")) | 2813 if (!strcasecmp(param, "print_status")) |
2813 option = opt_printstatus; | 2814 option = opt_printstatus; |
2814 else if (!strcasecmp(param, "auto_whois")) | 2815 else if (!strcasecmp(param, "auto_whois")) |
2815 option = opt_autowhois; | 2816 option = opt_autowhois; |
2817 else if (!strcasecmp(param, "flag_joins")) | |
2818 option = opt_flagjoins; | |
2816 else { | 2819 else { |
2817 scr_LogPrint(LPRINT_NORMAL, "Wrong option!"); | 2820 scr_LogPrint(LPRINT_NORMAL, "Wrong option!"); |
2818 free_arg_lst(paramlst); | 2821 free_arg_lst(paramlst); |
2819 return; | 2822 return; |
2820 } | 2823 } |
2822 // If no value is given, display the current value | 2825 // If no value is given, display the current value |
2823 if (!value) { | 2826 if (!value) { |
2824 const char *strval; | 2827 const char *strval; |
2825 if (option == opt_printstatus) | 2828 if (option == opt_printstatus) |
2826 strval = strprintstatus[buddy_getprintstatus(bud)]; | 2829 strval = strprintstatus[buddy_getprintstatus(bud)]; |
2830 else if (option == opt_autowhois) | |
2831 strval = strautowhois[buddy_getautowhois(bud)]; | |
2827 else | 2832 else |
2828 strval = strautowhois[buddy_getautowhois(bud)]; | 2833 strval = strflagjoins[buddy_getflagjoins(bud)]; |
2829 scr_LogPrint(LPRINT_NORMAL, "%s is set to: %s", param, strval); | 2834 scr_LogPrint(LPRINT_NORMAL, "%s is set to: %s", param, strval); |
2830 free_arg_lst(paramlst); | 2835 free_arg_lst(paramlst); |
2831 return; | 2836 return; |
2832 } | 2837 } |
2833 | 2838 |
2855 eval = autowhois_default; | 2860 eval = autowhois_default; |
2856 if (strcasecmp(value, "default") != 0) | 2861 if (strcasecmp(value, "default") != 0) |
2857 scr_LogPrint(LPRINT_NORMAL, "Unrecognized value, assuming default..."); | 2862 scr_LogPrint(LPRINT_NORMAL, "Unrecognized value, assuming default..."); |
2858 } | 2863 } |
2859 buddy_setautowhois(bud, eval); | 2864 buddy_setautowhois(bud, eval); |
2865 } else if (option == opt_flagjoins) { | |
2866 enum room_flagjoins eval; | |
2867 if (!strcasecmp(value, "none")) | |
2868 eval = flagjoins_none; | |
2869 else if (!strcasecmp(value, "joins")) | |
2870 eval = flagjoins_joins; | |
2871 else if (!strcasecmp(value, "all")) | |
2872 eval = flagjoins_all; | |
2873 else { | |
2874 eval = flagjoins_default; | |
2875 if (strcasecmp(value, "default") != 0) | |
2876 scr_LogPrint(LPRINT_NORMAL, "Unrecognized value, assuming default..."); | |
2877 } | |
2878 buddy_setflagjoins(bud, eval); | |
2860 } | 2879 } |
2861 | 2880 |
2862 free_arg_lst(paramlst); | 2881 free_arg_lst(paramlst); |
2863 } | 2882 } |
2864 | 2883 |
2960 { | 2979 { |
2961 const char *roomid; | 2980 const char *roomid; |
2962 const char *name = NULL, *nick = NULL, *group = NULL; | 2981 const char *name = NULL, *nick = NULL, *group = NULL; |
2963 char *tmpnick = NULL; | 2982 char *tmpnick = NULL; |
2964 enum room_autowhois autowhois = 0; | 2983 enum room_autowhois autowhois = 0; |
2984 enum room_flagjoins flagjoins = 0; | |
2965 enum room_printstatus printstatus = 0; | 2985 enum room_printstatus printstatus = 0; |
2966 enum { bm_add = 0, bm_del = 1 } action = 0; | 2986 enum { bm_add = 0, bm_del = 1 } action = 0; |
2967 int autojoin = 0; | 2987 int autojoin = 0; |
2968 int nick_set = 0; | 2988 int nick_set = 0; |
2969 | 2989 |
2998 name = buddy_getname(bud); | 3018 name = buddy_getname(bud); |
2999 if (!nick_set) | 3019 if (!nick_set) |
3000 nick = buddy_getnickname(bud); | 3020 nick = buddy_getnickname(bud); |
3001 printstatus = buddy_getprintstatus(bud); | 3021 printstatus = buddy_getprintstatus(bud); |
3002 autowhois = buddy_getautowhois(bud); | 3022 autowhois = buddy_getautowhois(bud); |
3023 flagjoins = buddy_getflagjoins(bud); | |
3003 group = buddy_getgroupname(bud); | 3024 group = buddy_getgroupname(bud); |
3004 } | 3025 } |
3005 | 3026 |
3006 xmpp_set_storage_bookmark(roomid, name, nick, NULL, autojoin, | 3027 xmpp_set_storage_bookmark(roomid, name, nick, NULL, autojoin, |
3007 printstatus, autowhois, group); | 3028 printstatus, autowhois, flagjoins, group); |
3008 g_free (tmpnick); | 3029 g_free (tmpnick); |
3009 } | 3030 } |
3010 | 3031 |
3011 static void display_all_bookmarks(void) | 3032 static void display_all_bookmarks(void) |
3012 { | 3033 { |