Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 166:aa5b635520ef
[/trunk] Changeset 178 by mikael
* Allow /group command to act on groups' buddies
* Add buddy_getgroup()
author | mikael |
---|---|
date | Wed, 04 May 2005 17:11:59 +0000 |
parents | faf534be8ff0 |
children | 4ce9ff808baa |
comparison
equal
deleted
inserted
replaced
165:b4921dbf8709 | 166:aa5b635520ef |
---|---|
284 } | 284 } |
285 | 285 |
286 void do_group(char *arg) | 286 void do_group(char *arg) |
287 { | 287 { |
288 gpointer group; | 288 gpointer group; |
289 guint leave_windowbuddy; | |
289 | 290 |
290 if (!arg || (*arg == 0)) { | 291 if (!arg || (*arg == 0)) { |
291 scr_LogPrint("Missing parameter"); | 292 scr_LogPrint("Missing parameter"); |
292 return; | 293 return; |
293 } | 294 } |
294 | 295 |
295 if (!current_buddy) | 296 if (!current_buddy) return; |
296 return; | 297 |
297 | 298 group = buddy_getgroup(BUDDATA(current_buddy)); |
298 group = BUDDATA(current_buddy); | 299 leave_windowbuddy = (group != BUDDATA(current_buddy)); |
300 | |
299 if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) { | 301 if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) { |
300 scr_LogPrint("For now you need to select a group " | 302 scr_LogPrint("You need to select a group"); |
301 "before using /group"); | 303 return; |
302 return; | 304 } |
303 } | 305 |
304 if (!strcasecmp(arg, "expand")) { | 306 if (!strcasecmp(arg, "expand") || !strcasecmp(arg, "unfold")) { |
305 buddy_setflags(group, ROSTER_FLAG_HIDE, FALSE); | 307 buddy_setflags(group, ROSTER_FLAG_HIDE, FALSE); |
306 } else if (!strcasecmp(arg, "shrink")) { | 308 } else if (!strcasecmp(arg, "shrink") || !strcasecmp(arg, "fold")) { |
307 buddy_setflags(group, ROSTER_FLAG_HIDE, TRUE); | 309 buddy_setflags(group, ROSTER_FLAG_HIDE, TRUE); |
308 } else if (!strcasecmp(arg, "toggle")) { | 310 } else if (!strcasecmp(arg, "toggle")) { |
309 buddy_setflags(group, ROSTER_FLAG_HIDE, | 311 buddy_setflags(group, ROSTER_FLAG_HIDE, |
310 !(buddy_getflags(group) & ROSTER_FLAG_HIDE)); | 312 !(buddy_getflags(group) & ROSTER_FLAG_HIDE)); |
311 } else { | 313 } else { |
313 return; | 315 return; |
314 } | 316 } |
315 | 317 |
316 buddylist_build(); | 318 buddylist_build(); |
317 update_roster = TRUE; | 319 update_roster = TRUE; |
320 if (leave_windowbuddy) scr_ShowBuddyWindow(); | |
318 } | 321 } |
319 | 322 |
320 void do_say(char *arg) | 323 void do_say(char *arg) |
321 { | 324 { |
322 gpointer bud; | 325 gpointer bud; |