aboutsummaryrefslogtreecommitdiff
path: root/config/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'config/config.c')
-rw-r--r--config/config.c65
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;