diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-03-23 01:48:44 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-03-23 01:48:44 -0400 |
| commit | 59bb76acede0fc72063485cdffe17acad5a3ac8c (patch) | |
| tree | 103b6ddc5c0a647abe8ef3974dcbb2c74944e4a7 /src/irc.c | |
| parent | 22bd5a4cfface7fc6f85a8e5b1bf392a23023f1f (diff) | |
| download | fujinet-chat-59bb76acede0fc72063485cdffe17acad5a3ac8c.tar.gz | |
Don't rejoin channels and pop to screen 3 when using /motd command; clean up motd formatting.
Diffstat (limited to 'src/irc.c')
| -rw-r--r-- | src/irc.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -31,6 +31,7 @@ char bell_type; char hide_motd; char start_latch = 0; char new_scr_status; +char need_rejoin; static char msgbuf[MAX_MSG] = { 0 }; static char *msg; /* with source removed */ @@ -454,18 +455,20 @@ static void do_numeric(void) { break; case RPL_MOTD: - /* FIXME: this prevents the user using /MOTD on purpose, too */ if(!hide_motd) - do_catchall(0); + do_catchall(1); break; /* don't print, but do trigger rejoin */ case RPL_ENDOFMOTD: case ERR_NOMOTD: hide_motd = 0; - cmd_rejoin_chans(); - if(scr_names[2][0] == '#') - scr_display(2); + if(need_rejoin) { + cmd_rejoin_chans(); + if(scr_names[2][0] == '#') + scr_display(2); + need_rejoin = 0; + } break; case RPL_NAMREPLY: @@ -1046,6 +1049,7 @@ void irc_loop(void) { /* this stuff happens on every connect. */ hide_motd = conf->hide_motd; msgbuf[0] = msgbuf_len = regged = irc_away = minutes = 0; + need_rejoin = 1; start_minute_timer(); while(1) { |
