diff options
Diffstat (limited to 'src/cmd.c')
| -rw-r--r-- | src/cmd.c | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -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) { |
