Mercurial > hg
changeset 968:d3bfa9e9d88c
Use split_arg() in do_roster()
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Fri, 29 Sep 2006 21:50:28 +0200 |
parents | 303408ef5e5d |
children | 1ebd2e7ea395 |
files | mcabber/src/commands.c |
diffstat | 1 files changed, 31 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/commands.c Fri Sep 29 20:28:20 2006 +0200 +++ b/mcabber/src/commands.c Fri Sep 29 21:50:28 2006 +0200 @@ -427,57 +427,73 @@ static void do_roster(char *arg) { - if (!strcasecmp(arg, "top")) { + char **paramlst; + char *subcmd; + + paramlst = split_arg(arg, 2, 1); // subcmd, arg + subcmd = *paramlst; + arg = *(paramlst+1); + + if (!subcmd || !*subcmd) { + scr_LogPrint(LPRINT_NORMAL, "Missing parameter."); + free_arg_lst(paramlst); + return; + } + + if (!strcasecmp(subcmd, "top")) { scr_RosterTop(); update_roster = TRUE; - } else if (!strcasecmp(arg, "bottom")) { + } else if (!strcasecmp(subcmd, "bottom")) { scr_RosterBottom(); update_roster = TRUE; - } else if (!strcasecmp(arg, "hide")) { + } else if (!strcasecmp(subcmd, "hide")) { scr_RosterVisibility(0); - } else if (!strcasecmp(arg, "show")) { + } else if (!strcasecmp(subcmd, "show")) { scr_RosterVisibility(1); - } else if (!strcasecmp(arg, "toggle")) { + } else if (!strcasecmp(subcmd, "toggle")) { scr_RosterVisibility(-1); - } else if (!strcasecmp(arg, "hide_offline")) { + } else if (!strcasecmp(subcmd, "hide_offline")) { buddylist_set_hide_offline_buddies(TRUE); if (current_buddy) buddylist_build(); update_roster = TRUE; - } else if (!strcasecmp(arg, "show_offline")) { + } else if (!strcasecmp(subcmd, "show_offline")) { buddylist_set_hide_offline_buddies(FALSE); buddylist_build(); update_roster = TRUE; - } else if (!strcasecmp(arg, "toggle_offline")) { + } else if (!strcasecmp(subcmd, "toggle_offline")) { buddylist_set_hide_offline_buddies(-1); buddylist_build(); update_roster = TRUE; - } else if (!strcasecmp(arg, "unread_first")) { + } else if (!strcasecmp(subcmd, "unread_first")) { scr_RosterUnreadMessage(0); - } else if (!strcasecmp(arg, "unread_next")) { + } else if (!strcasecmp(subcmd, "unread_next")) { scr_RosterUnreadMessage(1); - } else if (!strcasecmp(arg, "alternate")) { + } else if (!strcasecmp(subcmd, "alternate")) { scr_RosterJumpAlternate(); - } else if (!strncasecmp(arg, "search", 6)) { - char *string = arg+6; + } else if (!strncasecmp(subcmd, "search", 6)) { + char *string = subcmd+6; if (*string && (*string != ' ')) { scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); + free_arg_lst(paramlst); return; } while (*string == ' ') string++; if (!*string) { scr_LogPrint(LPRINT_NORMAL, "What name or JID are you looking for?"); + free_arg_lst(paramlst); return; } scr_RosterSearch(string); update_roster = TRUE; - } else if (!strcasecmp(arg, "up")) { + } else if (!strcasecmp(subcmd, "up")) { scr_RosterUp(); - } else if (!strcasecmp(arg, "down")) { + } else if (!strcasecmp(subcmd, "down")) { scr_RosterDown(); } else scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); + free_arg_lst(paramlst); } // setstatus(recipient, arg)