1221 paramlst = split_arg(arg, 2, 0); // subcmd, [arg] |
1221 paramlst = split_arg(arg, 2, 0); // subcmd, [arg] |
1222 subcmd = *paramlst; |
1222 subcmd = *paramlst; |
1223 arg = *(paramlst+1); |
1223 arg = *(paramlst+1); |
1224 |
1224 |
1225 if (!subcmd || !*subcmd) |
1225 if (!subcmd || !*subcmd) |
1226 goto do_group_return; // Should not happen anyway |
1226 goto do_group_return; // Should not happen |
|
1227 |
|
1228 if (!strcasecmp(subcmd, "expand") || !strcasecmp(subcmd, "unfold")) |
|
1229 group_state = group_unfold; |
|
1230 else if (!strcasecmp(subcmd, "shrink") || !strcasecmp(subcmd, "fold")) |
|
1231 group_state = group_fold; |
|
1232 else if (!strcasecmp(subcmd, "toggle")) |
|
1233 group_state = group_toggle; |
|
1234 else { |
|
1235 scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); |
|
1236 goto do_group_return; |
|
1237 } |
1227 |
1238 |
1228 if (arg && *arg) { |
1239 if (arg && *arg) { |
1229 GSList *roster_elt; |
1240 GSList *roster_elt; |
1230 char *group_utf8 = to_utf8(arg); |
1241 char *group_utf8 = to_utf8(arg); |
1231 roster_elt = roster_find(group_utf8, namesearch, ROSTER_TYPE_GROUP); |
1242 roster_elt = roster_find(group_utf8, namesearch, ROSTER_TYPE_GROUP); |
1233 if (roster_elt) |
1244 if (roster_elt) |
1234 group = buddy_getgroup(roster_elt->data); |
1245 group = buddy_getgroup(roster_elt->data); |
1235 } else { |
1246 } else { |
1236 group = buddy_getgroup(BUDDATA(current_buddy)); |
1247 group = buddy_getgroup(BUDDATA(current_buddy)); |
1237 } |
1248 } |
1238 if (!group) |
1249 if (!group) { |
|
1250 scr_LogPrint(LPRINT_NORMAL, "Group not found."); |
1239 goto do_group_return; |
1251 goto do_group_return; |
|
1252 } |
1240 |
1253 |
1241 // We'll have to redraw the chat window if we're not currently on the group |
1254 // We'll have to redraw the chat window if we're not currently on the group |
1242 // entry itself, because it means we'll have to leave the current buddy |
1255 // entry itself, because it means we'll have to leave the current buddy |
1243 // chat window. |
1256 // chat window. |
1244 leave_buddywindow = (group != BUDDATA(current_buddy) && |
1257 leave_buddywindow = (group != BUDDATA(current_buddy) && |
1245 group == buddy_getgroup(BUDDATA(current_buddy))); |
1258 group == buddy_getgroup(BUDDATA(current_buddy))); |
1246 |
1259 |
1247 |
|
1248 if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) { |
1260 if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) { |
1249 scr_LogPrint(LPRINT_NORMAL, "You need to select a group."); |
1261 scr_LogPrint(LPRINT_NORMAL, "You need to select a group."); |
1250 goto do_group_return; |
|
1251 } |
|
1252 |
|
1253 if (!strcasecmp(subcmd, "expand") || !strcasecmp(subcmd, "unfold")) |
|
1254 group_state = group_unfold; |
|
1255 else if (!strcasecmp(subcmd, "shrink") || !strcasecmp(subcmd, "fold")) |
|
1256 group_state = group_fold; |
|
1257 else if (!strcasecmp(subcmd, "toggle")) |
|
1258 group_state = group_toggle; |
|
1259 else { |
|
1260 scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); |
|
1261 goto do_group_return; |
1262 goto do_group_return; |
1262 } |
1263 } |
1263 |
1264 |
1264 if (group_state != group_unfold && leave_buddywindow) |
1265 if (group_state != group_unfold && leave_buddywindow) |
1265 scr_roster_prev_group(); |
1266 scr_roster_prev_group(); |