aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--irc.c1
-rw-r--r--irc_commands.c12
2 files changed, 11 insertions, 2 deletions
diff --git a/irc.c b/irc.c
index 3703f08f..9cac0742 100644
--- a/irc.c
+++ b/irc.c
@@ -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);
}
}