aboutsummaryrefslogtreecommitdiff
path: root/config/config.c
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2026-04-08 09:53:37 -0400
committerB. Watson <urchlay@slackware.uk>2026-04-08 09:53:51 -0400
commit9d460b1c0cb573fc56799de236a1a8dd4cc6cdc0 (patch)
tree4b7f48bb2feb5d9484767af20b2286f264508db5 /config/config.c
parent577a0cb815651644498ab5d955531a5a87486b68 (diff)
downloadfujinet-chat-9d460b1c0cb573fc56799de236a1a8dd4cc6cdc0.tar.gz
Move color and noclick intialization to config. 7556 bytes free.
Diffstat (limited to 'config/config.c')
-rw-r--r--config/config.c77
1 files changed, 41 insertions, 36 deletions
diff --git a/config/config.c b/config/config.c
index 0fb2fab..f2993bc 100644
--- a/config/config.c
+++ b/config/config.c
@@ -40,8 +40,6 @@ char *servers[] = {
0
};
-conf_t *conf = (conf_t *)0x0400;
-
char have_dos = 0;
char filename[101] = "D:FNCHAT.CFG";
char buf[128];
@@ -57,6 +55,13 @@ void setup_timers_and_exit(void) {
timers.one_tenth_sec = timers.hz / 10;
timers.one_sec = timers.hz * 60;
timers.net_ind_time = (timers.hz / 10) * 37;
+
+ OS.color2 = config.colors[0]; /* text BG, user-selected */
+ OS.color1 = config.colors[1];
+ OS.color0 = 0x06; /* grey for inactive */
+ OS.color3 = 0x46; /* red for highlight */
+ OS.noclik = config.disable_keyclick;
+
exit(0);
}
@@ -148,10 +153,10 @@ void prompt_config_file(void) {
}
void prompt_color(const char *text, char which) {
- itoa(conf->colors[which], numbuf, 10);
+ itoa(config.colors[which], numbuf, 10);
print(text);
prompt(" color", numbuf, 3);
- conf->colors[which] = atoi(numbuf);
+ config.colors[which] = atoi(numbuf);
}
void prompt_colors(void) {
@@ -161,21 +166,21 @@ void prompt_colors(void) {
bad = 0;
prompt_color("Text BG", 0);
prompt_color("Text FG", 1);
- if((conf->colors[0] & 0x0e) == (conf->colors[1] & 0x0e)) {
+ if((config.colors[0] & 0x0e) == (config.colors[1] & 0x0e)) {
print("!! Unreadable, try again.\n");
bad = 1;
}
} while(bad);
- OS.color2 = conf->colors[0];
- OS.color1 = conf->colors[1];
+ OS.color2 = config.colors[0];
+ OS.color1 = config.colors[1];
}
void prompt_alert_type(void) {
char c, d, bad;
print(" 0:None, 1:Beep, 2:Flash, 3:Both\n");
- d = conf->alert_type + '0';
+ d = config.alert_type + '0';
do {
bad = 0;
@@ -194,7 +199,7 @@ void prompt_alert_type(void) {
}
} while(bad);
- conf->alert_type = c - '0';
+ config.alert_type = c - '0';
}
void no_dos(void) {
@@ -238,7 +243,7 @@ void save(void) {
if((fh = open(filename, O_WRONLY | O_CREAT)) < 0) {
print("!! I/O error (open)\n");
bad = 1;
- } else if((write(fh, conf, sizeof(conf_t))) != sizeof(conf_t)) {
+ } else if((write(fh, &config, sizeof(conf_t))) != sizeof(conf_t)) {
print("!! I/O error (write)\n");
bad = 1;
}
@@ -273,7 +278,7 @@ char load(char prompt) {
if((fh = open(filename, O_RDONLY)) < 0) {
print("Not found\n");
loaded = 0;
- } else if((read(fh, conf, sizeof(conf_t))) != sizeof(conf_t)) {
+ } else if((read(fh, &config, sizeof(conf_t))) != sizeof(conf_t)) {
print("Invalid\n");
loaded = 0;
}
@@ -321,16 +326,16 @@ void dir(char drive) {
}
void make_url(void) {
- conf->url[8] = '\0';
- strcat(conf->url, server);
- strcat(conf->url, ":");
- strcat(conf->url, port);
+ config.url[8] = '\0';
+ strcat(config.url, server);
+ strcat(config.url, ":");
+ strcat(config.url, port);
}
void parse_url(void) {
char *p, *q;
q = server;
- p = conf->url + 8; /* skip N:TCP:// */
+ p = config.url + 8; /* skip N:TCP:// */
while(*p) {
if(*p == ':') break;
*q++ = *p++;
@@ -354,12 +359,12 @@ char prompt_main(void) {
c = tolower(lcgetc());
if(c == 0x14) {
- strcpy(conf->nick, "Urch600XL");
- conf->channels[1][0] = conf->channels[2][0] = 0;
+ strcpy(config.nick, "Urch800XL");
+ config.channels[1][0] = config.channels[2][0] = 0;
c = 'c';
} else if(c == 0x15) {
/* super-secret Urchlay mode... */
- strcpy(conf->nick, "Urch600XL");
+ strcpy(config.nick, "Urch800XL");
c = 'c';
}
if(c == '\n') c = 'c';
@@ -403,7 +408,7 @@ void list_chans(void) {
char i, *p;
for(i = 0; i < 5; i++) {
- p = conf->channels[i];
+ p = config.channels[i];
print(" Screen #");
putchar(i + '3');
print(": ");
@@ -416,7 +421,7 @@ void clear_chans(void) {
char i;
for(i = 0; i < 5; i++)
- conf->channels[i][0] = 0;
+ config.channels[i][0] = 0;
}
void prompt_channels(void) {
@@ -453,7 +458,7 @@ void prompt_channels(void) {
/* NOP */;
if(OS.ch == KEY_ESC) {
- conf->channels[c][0] = 0;
+ config.channels[c][0] = 0;
print("Channel ");
putchar(d);
print(" cleared.\n");
@@ -466,7 +471,7 @@ void prompt_channels(void) {
} else {
lgets(buf);
if(*buf)
- strncpy(conf->channels[c], buf, 25);
+ strncpy(config.channels[c], buf, 25);
}
}
}
@@ -481,14 +486,14 @@ void prompt_extra_channels(void) {
do {
print("Channels: \n\n\n\n\x1c\x1c\x1c");
r = OS.rowcrs;
- print(conf->extra_channels);
+ print(config.extra_channels);
OS.rowcrs = r;
OS.colcrs = 0;
putchar(CH_CURS_RIGHT);
putchar(CH_CURS_LEFT);
lgets(buf);
- strncpy(conf->extra_channels, buf, 128);
+ strncpy(config.extra_channels, buf, 128);
done = yn("OK", 1);
} while(!done);
@@ -550,7 +555,7 @@ void detect_xl(void) {
void set_default_config(void) {
- memcpy(conf, &defaults, sizeof(conf_t));
+ memcpy(&config, &defaults, sizeof(conf_t));
}
void main(void) {
@@ -568,8 +573,8 @@ void main(void) {
set_default_config();
- OS.color2 = conf->colors[0];
- OS.color1 = conf->colors[1];
+ OS.color2 = config.colors[0];
+ OS.color1 = config.colors[1];
cursor(1);
print("\x7d" "FujiNetChat Config\n");
@@ -588,13 +593,13 @@ void main(void) {
print("\nAt any time, press Ctrl-C to skip the\n");
print("remaining questions.\n\n");
- if(memcmp(&defaults, conf, sizeof(defaults)) != 0)
+ if(memcmp(&defaults, &config, sizeof(defaults)) != 0)
if(yn("Reset to defaults", 0))
set_default_config();
parse_url();
- prompt("Nick", conf->nick, 25);
+ prompt("Nick", config.nick, 25);
prompt_server();
make_url();
@@ -608,18 +613,18 @@ void main(void) {
}
} while(bad);
- prompt("Name ", conf->real_name, 25);
+ prompt("Name ", config.real_name, 25);
prompt_colors();
prompt_alert_type();
- // 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);
- conf->disable_keyclick = yn("Disable keyclick", conf->disable_keyclick);
+ // config.show_ping = yn("Show PING/PONG", config.show_ping);
+ config.atract_away = yn("Set AWAY on ATRACT", config.atract_away);
+ config.hide_motd = yn("Hide MOTD", config.hide_motd);
+ config.disable_keyclick = yn("Disable keyclick", config.disable_keyclick);
prompt_channels();
prompt_extra_channels();
print("\nURL: ");
- print(conf->url);
+ print(config.url);
putchar('\n');
}