From 2f21821ae83c9ddaa464c8a1b06be3c4a0a81020 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 10 Mar 2026 00:05:02 -0400 Subject: do not allow commas in join, allow /j with no arg to rejoin 'dead' channel. --- src/cmd.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/cmd.c b/src/cmd.c index 2f5b59e..7b7b96c 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -46,9 +46,9 @@ cmd_t command_defs[] = { { "COLOR", do_color, 1 }, { "CTCP", do_ctcp, 1 }, { "INFO", do_info, 0 }, - { "J", do_j, 1 }, + { "J", do_j, 0 }, { "J1", do_j1, 1 }, - { "JOIN", do_j, 1 }, + { "JOIN", do_j, 0 }, { "JOIN1", do_j1, 1 }, { "LIST", do_list, 1 }, { "M", do_msg, 1 }, @@ -137,12 +137,31 @@ static char *nextarg(char *arg) { return 0; } +static char have_commas(void) { + if(strchr(arg1, ',')) { + err_marker(); + scr_print_current("JOIN doesn't support commas\n"); + return 1; + } + return 0; +} + static void do_j1(void) { + if(have_commas()) + return; txbuf_set_str2("JOIN ", arg1); txbuf_send(); } 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; if(!scr_getbyname(arg1)) scr_create(arg1, 1); do_j1(); -- cgit v1.2.3