diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-03-17 23:06:13 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-03-17 23:06:13 -0400 |
| commit | 82198d4952da648047eddb8f5959e90eb0582f1b (patch) | |
| tree | 29624a95b74605c89dacf16be024bbed774905a6 /config | |
| parent | 5eb5ae197b8663cf49e7e1984ba5a32df1303676 (diff) | |
| download | fujinet-chat-82198d4952da648047eddb8f5959e90eb0582f1b.tar.gz | |
Add server menu to config, and "clear all channels".
Diffstat (limited to 'config')
| -rw-r--r-- | config/config.c | 65 |
1 files changed, 63 insertions, 2 deletions
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; |
