aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/cmd.c b/src/cmd.c
index 56e5f16..1b0faa5 100644
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -154,23 +154,31 @@ static void join_arg1(void) {
txbuf_send();
}
-static void do_j1(void) {
+static void mass_join(int scr) {
if(have_commas())
return;
- join_arg1();
+ do {
+ arg2 = nextarg(arg1);
+ if(scr) scr_create(arg1, 1);
+ join_arg1();
+ arg1 = arg2;
+ } while(arg1);
+}
+
+static void do_j1(void) {
+ mass_join(0);
}
static void do_j(void) {
if(!arg1)
arg1 = target; /* rejoin channel if window is 'dead' */
+
if(!arg1) {
err_no_scr_target();
return;
}
- if(have_commas())
- return;
- scr_create(arg1, 1);
- do_j1();
+
+ mass_join(1);
}
static void do_quit(void) {