Write unknown replies to Network with Ice heat

weechat-hashes
June McEnroe 2022-05-06 20:25:16 -04:00
parent 1b8be724bc
commit 6cfb1ad301
1 changed files with 14 additions and 0 deletions

View File

@ -127,6 +127,15 @@ static void handleErrorGeneric(struct Message *msg) {
} }
} }
static void handleReplyGeneric(struct Message *msg) {
char buf[1024];
char *ptr = buf, *end = &buf[sizeof(buf)];
for (uint i = 1; i < ParamCap && msg->params[i]; ++i) {
ptr = seprintf(ptr, end, "%s%s", (i > 1 ? " " : ""), msg->params[i]);
}
if (ptr != buf) uiWrite(Network, Ice, tagTime(msg), buf);
}
static void handleErrorNicknameInUse(struct Message *msg) { static void handleErrorNicknameInUse(struct Message *msg) {
require(msg, false, 2); require(msg, false, 2);
if (!strcmp(self.nick, "*")) { if (!strcmp(self.nick, "*")) {
@ -232,6 +241,7 @@ static void handleAuthenticate(struct Message *msg) {
static void handleReplyLoggedIn(struct Message *msg) { static void handleReplyLoggedIn(struct Message *msg) {
(void)msg; (void)msg;
ircFormat("CAP END\r\n"); ircFormat("CAP END\r\n");
handleReplyGeneric(msg);
} }
static void handleErrorSASLFail(struct Message *msg) { static void handleErrorSASLFail(struct Message *msg) {
@ -255,9 +265,11 @@ static void handleReplyWelcome(struct Message *msg) {
replies[ReplyNamesAuto] += count; replies[ReplyNamesAuto] += count;
} }
commandCompleteAdd(); commandCompleteAdd();
handleReplyGeneric(msg);
} }
static void handleReplyISupport(struct Message *msg) { static void handleReplyISupport(struct Message *msg) {
handleReplyGeneric(msg);
for (uint i = 1; i < ParamCap; ++i) { for (uint i = 1; i < ParamCap; ++i) {
if (!msg->params[i]) break; if (!msg->params[i]) break;
char *key = strsep(&msg->params[i], "="); char *key = strsep(&msg->params[i], "=");
@ -1403,5 +1415,7 @@ void handle(struct Message *msg) {
if (handler->reply < 0) replies[abs(handler->reply)]--; if (handler->reply < 0) replies[abs(handler->reply)]--;
} else if (strcmp(msg->cmd, "400") >= 0 && strcmp(msg->cmd, "599") <= 0) { } else if (strcmp(msg->cmd, "400") >= 0 && strcmp(msg->cmd, "599") <= 0) {
handleErrorGeneric(msg); handleErrorGeneric(msg);
} else if (isdigit(msg->cmd[0])) {
handleReplyGeneric(msg);
} }
} }