diff options
-rw-r--r-- | irc.c | 1 | ||||
-rw-r--r-- | irc_commands.c | 12 |
2 files changed, 11 insertions, 2 deletions
@@ -136,6 +136,7 @@ irc_t *irc_new(int fd) s = set_add(&b->set, "to_char", ": ", set_eval_to_char, irc); s = set_add(&b->set, "typing_notice", "false", set_eval_bool, irc); s = set_add(&b->set, "utf8_nicks", "false", set_eval_utf8_nicks, irc); + s = set_add(&b->set, "strict_away", "false", set_eval_bool, irc); #ifdef WITH_GNUTLS if (global.conf->ssl) { s = set_add(&b->set, "_certfp", NULL, set_eval_certfp, irc); diff --git a/irc_commands.c b/irc_commands.c index d3971df9..d7b31406 100644 --- a/irc_commands.c +++ b/irc_commands.c @@ -743,10 +743,18 @@ static void irc_cmd_away(irc_t *irc, char **cmd) } away[j] = '\0'; - irc_send_num(irc, 306, ":You're now away: %s", away); + if (set_getbool(&irc->b->set, "strict_away")) { + irc_send_num(irc, 306, ":You're now away: %s", away); + } else { + irc_send_num(irc, 306, ":You have been masked as being away"); + } set_setstr(&irc->b->set, "away", away); } else { - irc_send_num(irc, 305, ":Welcome back"); + if (set_getbool(&irc->b->set, "strict_away")) { + irc_send_num(irc, 305, ":You are no longer marked as being away"); + } else { + irc_send_num(irc, 305, ":Welcome back"); + } set_setstr(&irc->b->set, "away", NULL); } } |