From 23ea786d38adaf793964012cd676a806d2b94760 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 12 Mar 2026 05:41:25 -0400 Subject: Config allows entering autojoin channels. --- config/config.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'config') diff --git a/config/config.c b/config/config.c index abaf9f6..ac3ade1 100644 --- a/config/config.c +++ b/config/config.c @@ -274,6 +274,72 @@ char prompt_main(void) { return 0; } +void keyclick(void) { + OS.ch = 0; + cgetc(); +} + +void list_chans(void) { + char i, *p; + + for(i = 0; i < 5; i++) { + p = conf->channels[i]; + print(" Screen #"); + putchar(i + '3'); + print(": "); + print(*p ? p : "(none)"); + putchar('\n'); + } +} + +void prompt_channels(void) { + char c, d, ok; + + print("\nAutojoin channels in screens.\n\n"); + + list_chans(); + putchar('\n'); + + while(1) { + print("# to change, L = list, Return = done.\n"); + do { + ok = 1; + c = cgetc(); + if(c == '\n') + return; + if(c == 'l') + list_chans(); + if(c < '3' || c > '7') + ok = 0; + } while(!ok); + + d = c; + c -= '3'; + + print("Enter channel or press Esc to clear:\n"); + + while(OS.ch == KEY_NONE) + /* NOP */; + + if(OS.ch == KEY_ESC) { + conf->channels[c][0] = 0; + print("Channel "); + putchar(d); + print(" cleared.\n"); + keyclick(); + } else if(OS.ch == KEY_RETURN) { + print("Channel "); + putchar(d); + print(" unchanged.\n"); + keyclick(); + } else { + gets(buf); + if(*buf) + strncpy(conf->channels[c], buf, 25); + } + } +} + void set_default_config(void) { memcpy(conf, &defaults, sizeof(conf_t)); } @@ -320,6 +386,7 @@ void main(void) { conf->show_ping = yn("Show PING/PONG", conf->show_ping); conf->atract_away = yn("Set AWAY on ATRACT", conf->atract_away); conf->hide_motd = yn("Hide MOTD", conf->hide_motd); + prompt_channels(); make_url(); -- cgit v1.2.3