Mercurial > hg
comparison mcabber/src/commands.c @ 1272:033576acac4c
Add configurable roster colors (Michal 'vorner' Vaner)
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Tue, 21 Aug 2007 20:49:03 +0200 |
parents | dbc907b2d92f |
children | 8bbc764139ef |
comparison
equal
deleted
inserted
replaced
1271:f8a874ff453a | 1272:033576acac4c |
---|---|
75 static void do_pgp(char *arg); | 75 static void do_pgp(char *arg); |
76 static void do_iline(char *arg); | 76 static void do_iline(char *arg); |
77 static void do_screen_refresh(char *arg); | 77 static void do_screen_refresh(char *arg); |
78 static void do_chat_disable(char *arg); | 78 static void do_chat_disable(char *arg); |
79 static void do_source(char *arg); | 79 static void do_source(char *arg); |
80 static void do_color(char *arg); | |
80 | 81 |
81 // Global variable for the commands list | 82 // Global variable for the commands list |
82 static GSList *Commands; | 83 static GSList *Commands; |
83 | 84 |
84 | 85 |
145 cmd_add("source", "Read a configuration file", 0, 0, &do_source); | 146 cmd_add("source", "Read a configuration file", 0, 0, &do_source); |
146 cmd_add("status", "Show or set your status", COMPL_STATUS, 0, &do_status); | 147 cmd_add("status", "Show or set your status", COMPL_STATUS, 0, &do_status); |
147 cmd_add("status_to", "Show or set your status for one recipient", | 148 cmd_add("status_to", "Show or set your status for one recipient", |
148 COMPL_JID, COMPL_STATUS, &do_status_to); | 149 COMPL_JID, COMPL_STATUS, &do_status_to); |
149 cmd_add("version", "Show mcabber version", 0, 0, &do_version); | 150 cmd_add("version", "Show mcabber version", 0, 0, &do_version); |
151 cmd_add("color", "Set coloring options", COMPL_COLOR, 0, &do_color); | |
150 | 152 |
151 // Status category | 153 // Status category |
152 compl_add_category_word(COMPL_STATUS, "online"); | 154 compl_add_category_word(COMPL_STATUS, "online"); |
153 compl_add_category_word(COMPL_STATUS, "avail"); | 155 compl_add_category_word(COMPL_STATUS, "avail"); |
154 compl_add_category_word(COMPL_STATUS, "invisible"); | 156 compl_add_category_word(COMPL_STATUS, "invisible"); |
250 compl_add_category_word(COMPL_PGP, "disable"); | 252 compl_add_category_word(COMPL_PGP, "disable"); |
251 compl_add_category_word(COMPL_PGP, "enable"); | 253 compl_add_category_word(COMPL_PGP, "enable"); |
252 compl_add_category_word(COMPL_PGP, "force"); | 254 compl_add_category_word(COMPL_PGP, "force"); |
253 compl_add_category_word(COMPL_PGP, "info"); | 255 compl_add_category_word(COMPL_PGP, "info"); |
254 compl_add_category_word(COMPL_PGP, "setkey"); | 256 compl_add_category_word(COMPL_PGP, "setkey"); |
257 | |
258 // Color category | |
259 compl_add_category_word(COMPL_COLOR, "roster"); | |
255 } | 260 } |
256 | 261 |
257 // expandalias(line) | 262 // expandalias(line) |
258 // If there is one, expand the alias in line and returns a new allocated line | 263 // If there is one, expand the alias in line and returns a new allocated line |
259 // If no alias is found, returns line | 264 // If no alias is found, returns line |
695 scr_RosterPrevGroup(); | 700 scr_RosterPrevGroup(); |
696 } else if (!strcasecmp(subcmd, "group_next")) { | 701 } else if (!strcasecmp(subcmd, "group_next")) { |
697 scr_RosterNextGroup(); | 702 scr_RosterNextGroup(); |
698 } else if (!strcasecmp(subcmd, "note")) { | 703 } else if (!strcasecmp(subcmd, "note")) { |
699 roster_note(arg); | 704 roster_note(arg); |
705 } else | |
706 scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); | |
707 free_arg_lst(paramlst); | |
708 } | |
709 | |
710 void do_color(char *arg) | |
711 { | |
712 char **paramlst; | |
713 char *subcmd; | |
714 | |
715 paramlst = split_arg(arg, 2, 1); // subcmd, arg | |
716 subcmd = *paramlst; | |
717 arg = *(paramlst+1); | |
718 | |
719 if (!subcmd || !*subcmd) { | |
720 scr_LogPrint(LPRINT_NORMAL, "Missing parameter."); | |
721 free_arg_lst(paramlst); | |
722 return; | |
723 } | |
724 | |
725 if (!strcasecmp(subcmd, "roster")) { | |
726 char **arglist = split_arg(arg, 3, 0); | |
727 char *status = *arglist, *wildcard = arglist[1], *color = arglist[2]; | |
728 if (status && !strcmp(status, "clear")) { // Not a color command, clear all | |
729 scr_RosterClearColor(); | |
730 update_roster = TRUE; | |
731 } else { | |
732 if (!status || !*status || !wildcard || !*wildcard || !color || !*color) { | |
733 scr_LogPrint(LPRINT_NORMAL, "Missing argument"); | |
734 } else { | |
735 update_roster = scr_RosterColor(status, wildcard, color) | |
736 || update_roster; | |
737 } | |
738 } | |
739 free_arg_lst(arglist); | |
700 } else | 740 } else |
701 scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); | 741 scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); |
702 free_arg_lst(paramlst); | 742 free_arg_lst(paramlst); |
703 } | 743 } |
704 | 744 |