comparison mcabber/mcabber/commands.c @ 2292:f181418db215

Replace global variable update_roster with scr_update_roster()
author franky
date Tue, 01 Nov 2016 18:00:39 +0100
parents 0d350e979bde
children e26c7709e023
comparison
equal deleted inserted replaced
2291:0d350e979bde 2292:f181418db215
566 // Helper routine for buffer item_{lock,unlock,toggle_lock} 566 // Helper routine for buffer item_{lock,unlock,toggle_lock}
567 // "lock" values: 1=lock 0=unlock -1=invert 567 // "lock" values: 1=lock 0=unlock -1=invert
568 static void roster_buddylock(char *bjid, int lock) 568 static void roster_buddylock(char *bjid, int lock)
569 { 569 {
570 gpointer bud = NULL; 570 gpointer bud = NULL;
571 bool may_need_refresh = FALSE;
572 571
573 // Allow special jid "" or "." (current buddy) 572 // Allow special jid "" or "." (current buddy)
574 if (bjid && (!*bjid || !strcmp(bjid, "."))) 573 if (bjid && (!*bjid || !strcmp(bjid, ".")))
575 bjid = NULL; 574 bjid = NULL;
576 575
586 ROSTER_TYPE_USER|ROSTER_TYPE_ROOM); 585 ROSTER_TYPE_USER|ROSTER_TYPE_ROOM);
587 if (roster_elt) 586 if (roster_elt)
588 bud = roster_elt->data; 587 bud = roster_elt->data;
589 else 588 else
590 scr_LogPrint(LPRINT_NORMAL, "This jid isn't in the roster."); 589 scr_LogPrint(LPRINT_NORMAL, "This jid isn't in the roster.");
591 may_need_refresh = TRUE;
592 } 590 }
593 } else { 591 } else {
594 // Use the current buddy 592 // Use the current buddy
595 if (current_buddy) 593 if (current_buddy)
596 bud = BUDDATA(current_buddy); 594 bud = BUDDATA(current_buddy);
599 // Update the ROSTER_FLAG_USRLOCK flag 597 // Update the ROSTER_FLAG_USRLOCK flag
600 if (bud) { 598 if (bud) {
601 if (lock == -1) 599 if (lock == -1)
602 lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK); 600 lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK);
603 buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock); 601 buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock);
604 if (may_need_refresh) { 602 buddylist_defer_build();
605 buddylist_defer_build(); 603 scr_update_roster();
606 update_roster = TRUE;
607 }
608 } 604 }
609 } 605 }
610 606
611 static void roster_resourcelock(char *jidres, gboolean lock) { 607 static void roster_resourcelock(char *jidres, gboolean lock) {
612 gpointer bud = NULL; 608 gpointer bud = NULL;
818 return; 814 return;
819 } 815 }
820 816
821 if (!strcasecmp(subcmd, "top")) { 817 if (!strcasecmp(subcmd, "top")) {
822 scr_roster_top(); 818 scr_roster_top();
823 update_roster = TRUE;
824 } else if (!strcasecmp(subcmd, "bottom")) { 819 } else if (!strcasecmp(subcmd, "bottom")) {
825 scr_roster_bottom(); 820 scr_roster_bottom();
826 update_roster = TRUE;
827 } else if (!strcasecmp(subcmd, "hide")) { 821 } else if (!strcasecmp(subcmd, "hide")) {
828 scr_roster_visibility(0); 822 scr_roster_visibility(0);
829 } else if (!strcasecmp(subcmd, "show")) { 823 } else if (!strcasecmp(subcmd, "show")) {
830 scr_roster_visibility(1); 824 scr_roster_visibility(1);
831 } else if (!strcasecmp(subcmd, "toggle")) { 825 } else if (!strcasecmp(subcmd, "toggle")) {
832 scr_roster_visibility(-1); 826 scr_roster_visibility(-1);
833 } else if (!strcasecmp(subcmd, "hide_offline")) { 827 } else if (!strcasecmp(subcmd, "hide_offline")) {
834 buddylist_set_hide_offline_buddies(TRUE); 828 buddylist_set_hide_offline_buddies(TRUE);
835 if (current_buddy) 829 scr_update_roster();
836 buddylist_defer_build();
837 update_roster = TRUE;
838 } else if (!strcasecmp(subcmd, "show_offline")) { 830 } else if (!strcasecmp(subcmd, "show_offline")) {
839 buddylist_set_hide_offline_buddies(FALSE); 831 buddylist_set_hide_offline_buddies(FALSE);
840 buddylist_defer_build(); 832 scr_update_roster();
841 update_roster = TRUE;
842 } else if (!strcasecmp(subcmd, "toggle_offline")) { 833 } else if (!strcasecmp(subcmd, "toggle_offline")) {
843 buddylist_set_hide_offline_buddies(-1); 834 buddylist_set_hide_offline_buddies(-1);
844 buddylist_defer_build(); 835 scr_update_roster();
845 update_roster = TRUE;
846 } else if (!strcasecmp(subcmd, "display")) { 836 } else if (!strcasecmp(subcmd, "display")) {
847 scr_roster_display(arg); 837 scr_roster_display(arg);
848 } else if (!strcasecmp(subcmd, "item_lock")) { 838 } else if (!strcasecmp(subcmd, "item_lock")) {
849 roster_buddylock(arg, 1); 839 roster_buddylock(arg, 1);
850 } else if (!strcasecmp(subcmd, "item_unlock")) { 840 } else if (!strcasecmp(subcmd, "item_unlock")) {
865 scr_LogPrint(LPRINT_NORMAL, "What name or JID are you looking for?"); 855 scr_LogPrint(LPRINT_NORMAL, "What name or JID are you looking for?");
866 free_arg_lst(paramlst); 856 free_arg_lst(paramlst);
867 return; 857 return;
868 } 858 }
869 scr_roster_search(arg); 859 scr_roster_search(arg);
870 update_roster = TRUE;
871 } else if (!strcasecmp(subcmd, "up")) { 860 } else if (!strcasecmp(subcmd, "up")) {
872 roster_updown(-1, arg); 861 roster_updown(-1, arg);
873 } else if (!strcasecmp(subcmd, "down")) { 862 } else if (!strcasecmp(subcmd, "down")) {
874 roster_updown(1, arg); 863 roster_updown(1, arg);
875 } else if (!strcasecmp(subcmd, "group_prev")) { 864 } else if (!strcasecmp(subcmd, "group_prev")) {
911 wildcard = to_utf8(arglist[1]); 900 wildcard = to_utf8(arglist[1]);
912 color = arglist[2]; 901 color = arglist[2];
913 902
914 if (status && !strcmp(status, "clear")) { // Not a color command, clear all 903 if (status && !strcmp(status, "clear")) { // Not a color command, clear all
915 scr_roster_clear_color(); 904 scr_roster_clear_color();
916 update_roster = TRUE;
917 } else { 905 } else {
918 if (!status || !*status || !wildcard || !*wildcard || !color || !*color) { 906 if (!status || !*status || !wildcard || !*wildcard || !color || !*color) {
919 scr_LogPrint(LPRINT_NORMAL, "Missing argument"); 907 scr_LogPrint(LPRINT_NORMAL, "Missing argument");
920 } else { 908 } else {
921 update_roster = scr_roster_color(status, wildcard, color) || 909 scr_roster_color(status, wildcard, color);
922 update_roster;
923 } 910 }
924 } 911 }
925 free_arg_lst(arglist); 912 free_arg_lst(arglist);
926 g_free(wildcard); 913 g_free(wildcard);
927 } else if (!strcasecmp(subcmd, "muc")) { 914 } else if (!strcasecmp(subcmd, "muc")) {
1256 scr_roster_prev_group(); 1243 scr_roster_prev_group();
1257 1244
1258 buddy_hide_group(group, group_state); 1245 buddy_hide_group(group, group_state);
1259 1246
1260 buddylist_defer_build(); 1247 buddylist_defer_build();
1261 update_roster = TRUE; 1248 scr_update_roster();
1262 1249
1263 do_group_return: 1250 do_group_return:
1264 free_arg_lst(paramlst); 1251 free_arg_lst(paramlst);
1265 } 1252 }
1266 1253
2225 } 2212 }
2226 } 2213 }
2227 2214
2228 g_free(name_utf8); 2215 g_free(name_utf8);
2229 g_free(newname); 2216 g_free(newname);
2230 update_roster = TRUE; 2217 scr_update_roster();
2231 } 2218 }
2232 2219
2233 static void do_move(char *arg) 2220 static void do_move(char *arg)
2234 { 2221 {
2235 gpointer bud; 2222 gpointer bud;
2294 } 2281 }
2295 } 2282 }
2296 2283
2297 g_free(group_utf8); 2284 g_free(group_utf8);
2298 g_free(newgroupname); 2285 g_free(newgroupname);
2299 update_roster = TRUE; 2286 scr_update_roster();
2300 } 2287 }
2301 2288
2302 static void list_option_cb(char *k, char *v, void *f) 2289 static void list_option_cb(char *k, char *v, void *f)
2303 { 2290 {
2304 if (strncmp(k, "password", 8) && strcmp(k, "pgp_passphrase")) { 2291 if (strncmp(k, "password", 8) && strcmp(k, "pgp_passphrase")) {
2400 gchar *alias, *value; 2387 gchar *alias, *value;
2401 2388
2402 assign = parse_assigment(arg, &alias, &value); 2389 assign = parse_assigment(arg, &alias, &value);
2403 if (!alias) { 2390 if (!alias) {
2404 settings_foreach(SETTINGS_TYPE_ALIAS, &dump_alias, NULL); 2391 settings_foreach(SETTINGS_TYPE_ALIAS, &dump_alias, NULL);
2405 update_roster = TRUE; 2392 scr_update_roster();
2406 return; 2393 return;
2407 } 2394 }
2408 if (!assign) { // This is a query 2395 if (!assign) { // This is a query
2409 const char *val = settings_get(SETTINGS_TYPE_ALIAS, alias); 2396 const char *val = settings_get(SETTINGS_TYPE_ALIAS, alias);
2410 // NOTE: LPRINT_NOTUTF8 here, see below why it isn't encoded... 2397 // NOTE: LPRINT_NOTUTF8 here, see below why it isn't encoded...
2626 2613
2627 g_free(roomname_tmp); 2614 g_free(roomname_tmp);
2628 g_free(nick); 2615 g_free(nick);
2629 g_free(pass_utf8); 2616 g_free(pass_utf8);
2630 buddylist_defer_build(); 2617 buddylist_defer_build();
2631 update_roster = TRUE; 2618 scr_update_roster();
2632 free_arg_lst(paramlst); 2619 free_arg_lst(paramlst);
2633 } 2620 }
2634 2621
2635 static void room_invite(gpointer bud, char *arg) 2622 static void room_invite(gpointer bud, char *arg)
2636 { 2623 {
2925 } 2912 }
2926 // Delete the room 2913 // Delete the room
2927 roster_del_user(buddy_getjid(bud)); 2914 roster_del_user(buddy_getjid(bud));
2928 scr_update_buddy_window(); 2915 scr_update_buddy_window();
2929 buddylist_defer_build(); 2916 buddylist_defer_build();
2930 update_roster = TRUE; 2917 scr_update_roster();
2931 } 2918 }
2932 2919
2933 static void room_topic(gpointer bud, char *arg) 2920 static void room_topic(gpointer bud, char *arg)
2934 { 2921 {
2935 if (!buddy_getinsideroom(bud)) { 2922 if (!buddy_getinsideroom(bud)) {