From 82198d4952da648047eddb8f5959e90eb0582f1b Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 17 Mar 2026 23:06:13 -0400 Subject: Add server menu to config, and "clear all channels". --- config/config.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) (limited to 'config/config.c') diff --git a/config/config.c b/config/config.c index 695a430..b1f85c4 100644 --- a/config/config.c +++ b/config/config.c @@ -29,6 +29,15 @@ conf_t defaults = { 0, /* disable_keyclick, default = N */ }; +char *servers[] = { + "irc.libera.chat", + "irc.undernet.org", + "irc.efnet.org", + "irc.newnet.net", + "irc.oftc.net", + 0 +}; + char have_dos = 0; char filename[101] = "D:FNCHAT.CFG"; char buf[128]; @@ -359,6 +368,13 @@ void list_chans(void) { } } +void clear_chans(void) { + char i; + + for(i = 0; i < 5; i++) + conf->channels[i][0] = 0; +} + void prompt_channels(void) { char c, d, ok; @@ -368,7 +384,7 @@ void prompt_channels(void) { putchar('\n'); while(1) { - print("# to change, L = list, Return = done.\n"); + print("3-7=change C=clear L=list Return=done\n"); do { ok = 1; c = cgetc(); @@ -376,6 +392,10 @@ void prompt_channels(void) { return; if(c == 'l') list_chans(); + if(c == 'c') { + clear_chans(); + print("All channels cleared\n"); + } if(c < '3' || c > '7') ok = 0; } while(!ok); @@ -430,6 +450,47 @@ void prompt_extra_channels(void) { } while(!done); } +void prompt_server_list(void) { + char **p = servers; + int c, count = '1'; + + do { + putchar(count | 0x80); + putchar(':'); + print(*p); + putchar('\n'); + count++; + p++; + } while(*p); + + print("Server [1]? "); + do { + c = cgetc(); + if(c == '\n') c = '1'; + } while(!(c > '0' && c < count)); + c -= '1'; + strncpy(server, servers[c], 100); + print(server); + putchar('\n'); +} + +void prompt_server() { + print("\nPress Escape for server list.\n"); + print("Server ["); + print(server); + print("]? "); + while(OS.ch == KEY_NONE) + /* NOP */; + if(OS.ch == KEY_ESC) { + putchar('\n'); + keyclick(); + prompt_server_list(); + } else { + gets(buf); + if(*buf) strncpy(server, buf, 100); + } +} + void set_default_config(void) { memcpy(conf, &defaults, sizeof(conf_t)); } @@ -462,7 +523,7 @@ void main(void) { parse_url(); - prompt("\nServer", server, 100); + prompt_server(); do { bad = 0; -- cgit v1.2.3