aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2026-03-12 05:41:25 -0400
committerB. Watson <urchlay@slackware.uk>2026-03-12 05:41:25 -0400
commit23ea786d38adaf793964012cd676a806d2b94760 (patch)
tree0153880bfaa61a3056a93095cd9de5da63276b97
parentd299047dd73b9ac2f78081844cf750d4a2a4ba5a (diff)
downloadfujinet-chat-23ea786d38adaf793964012cd676a806d2b94760.tar.gz
Config allows entering autojoin channels.
-rw-r--r--config/config.c67
1 files changed, 67 insertions, 0 deletions
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();