diff options
author | June McEnroe <june@causal.agency> | 2020-02-06 04:01:11 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-02-06 04:01:11 -0500 |
commit | 30b3780e57e532e928d445b882b218decb88af55 (patch) | |
tree | 074d334cd1d5a9a544b8382c37a4b731e70d8a7a | |
parent | Send CAP END if CAP LS doesn't list anything good (diff) | |
download | test-30b3780e57e532e928d445b882b218decb88af55.tar.gz test-30b3780e57e532e928d445b882b218decb88af55.zip |
Route own query messages correctly
-rw-r--r-- | handle.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/handle.c b/handle.c index cb080e9..9244e66 100644 --- a/handle.c +++ b/handle.c @@ -263,11 +263,20 @@ static bool isAction(struct Message *msg) { static void handlePrivmsg(struct Message *msg) { require(msg, true, 2); bool query = !strchr(self.chanTypes, msg->params[0][0]); - bool network = query && strchr(msg->nick, '.'); + bool network = strchr(msg->nick, '.'); + bool mine = self.nick && !strcmp(msg->nick, self.nick); + size_t id; + if (query && network) { + id = Network; + } else if (query && !mine) { + id = idFor(msg->nick); + idColors[id] = hash(msg->user); + } else { + id = idFor(msg->params[0]); + } + bool notice = (msg->cmd[0] == 'N'); bool action = isAction(msg); - size_t id = (network ? Network : idFor(query ? msg->nick : msg->params[0])); - if (query && !network) idColors[id] = hash(msg->user); uiFormat( id, Warm, tagTime(msg), "\3%d%s%s%s\3\t%s", |