Set self.nick to * initially
Allows removing a bunch of checks that self.nick is set, and it's what the server usually calls you before registration. Never highlight notices as mentions.master
parent
2771863299
commit
cc80fae758
1
chat.c
1
chat.c
|
@ -145,6 +145,7 @@ int main(int argc, char *argv[]) {
|
||||||
if (!user) user = nick;
|
if (!user) user = nick;
|
||||||
if (!real) real = nick;
|
if (!real) real = nick;
|
||||||
|
|
||||||
|
set(&self.nick, "*");
|
||||||
set(&self.network, host);
|
set(&self.network, host);
|
||||||
set(&self.chanTypes, "#&");
|
set(&self.chanTypes, "#&");
|
||||||
set(&self.prefixes, "@+");
|
set(&self.prefixes, "@+");
|
||||||
|
|
20
handle.c
20
handle.c
|
@ -87,8 +87,8 @@ static const time_t *tagTime(const struct Message *msg) {
|
||||||
typedef void Handler(struct Message *msg);
|
typedef void Handler(struct Message *msg);
|
||||||
|
|
||||||
static void handleErrorNicknameInUse(struct Message *msg) {
|
static void handleErrorNicknameInUse(struct Message *msg) {
|
||||||
if (self.nick) return;
|
|
||||||
require(msg, false, 2);
|
require(msg, false, 2);
|
||||||
|
if (strcmp(self.nick, "*")) return;
|
||||||
ircFormat("NICK :%s_\r\n", msg->params[1]);
|
ircFormat("NICK :%s_\r\n", msg->params[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ static void handleReplyMOTD(struct Message *msg) {
|
||||||
static void handleJoin(struct Message *msg) {
|
static void handleJoin(struct Message *msg) {
|
||||||
require(msg, true, 1);
|
require(msg, true, 1);
|
||||||
size_t id = idFor(msg->params[0]);
|
size_t id = idFor(msg->params[0]);
|
||||||
if (self.nick && !strcmp(msg->nick, self.nick)) {
|
if (!strcmp(msg->nick, self.nick)) {
|
||||||
if (!self.user) {
|
if (!self.user) {
|
||||||
set(&self.user, msg->user);
|
set(&self.user, msg->user);
|
||||||
self.color = hash(msg->user);
|
self.color = hash(msg->user);
|
||||||
|
@ -264,7 +264,7 @@ static void handleJoin(struct Message *msg) {
|
||||||
static void handlePart(struct Message *msg) {
|
static void handlePart(struct Message *msg) {
|
||||||
require(msg, true, 1);
|
require(msg, true, 1);
|
||||||
size_t id = idFor(msg->params[0]);
|
size_t id = idFor(msg->params[0]);
|
||||||
if (self.nick && !strcmp(msg->nick, self.nick)) {
|
if (!strcmp(msg->nick, self.nick)) {
|
||||||
completeClear(id);
|
completeClear(id);
|
||||||
}
|
}
|
||||||
completeRemove(id, msg->nick);
|
completeRemove(id, msg->nick);
|
||||||
|
@ -281,7 +281,7 @@ static void handlePart(struct Message *msg) {
|
||||||
static void handleKick(struct Message *msg) {
|
static void handleKick(struct Message *msg) {
|
||||||
require(msg, true, 2);
|
require(msg, true, 2);
|
||||||
size_t id = idFor(msg->params[0]);
|
size_t id = idFor(msg->params[0]);
|
||||||
bool kicked = self.nick && !strcmp(msg->params[1], self.nick);
|
bool kicked = !strcmp(msg->params[1], self.nick);
|
||||||
completeTouch(id, msg->nick, hash(msg->user));
|
completeTouch(id, msg->nick, hash(msg->user));
|
||||||
urlScan(id, msg->nick, msg->params[2]);
|
urlScan(id, msg->nick, msg->params[2]);
|
||||||
uiFormat(
|
uiFormat(
|
||||||
|
@ -300,7 +300,7 @@ static void handleKick(struct Message *msg) {
|
||||||
|
|
||||||
static void handleNick(struct Message *msg) {
|
static void handleNick(struct Message *msg) {
|
||||||
require(msg, true, 1);
|
require(msg, true, 1);
|
||||||
if (self.nick && !strcmp(msg->nick, self.nick)) {
|
if (!strcmp(msg->nick, self.nick)) {
|
||||||
set(&self.nick, msg->params[0]);
|
set(&self.nick, msg->params[0]);
|
||||||
uiRead(); // Update prompt.
|
uiRead(); // Update prompt.
|
||||||
}
|
}
|
||||||
|
@ -499,7 +499,7 @@ static void handleReplyWhoisGeneric(struct Message *msg) {
|
||||||
static void handleReplyEndOfWhois(struct Message *msg) {
|
static void handleReplyEndOfWhois(struct Message *msg) {
|
||||||
require(msg, false, 2);
|
require(msg, false, 2);
|
||||||
if (!replies.whois) return;
|
if (!replies.whois) return;
|
||||||
if (!self.nick || strcmp(msg->params[1], self.nick)) {
|
if (strcmp(msg->params[1], self.nick)) {
|
||||||
completeRemove(Network, msg->params[1]);
|
completeRemove(Network, msg->params[1]);
|
||||||
}
|
}
|
||||||
replies.whois--;
|
replies.whois--;
|
||||||
|
@ -514,7 +514,6 @@ static bool isAction(struct Message *msg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool isMention(const struct Message *msg) {
|
static bool isMention(const struct Message *msg) {
|
||||||
if (!self.nick) return false;
|
|
||||||
size_t len = strlen(self.nick);
|
size_t len = strlen(self.nick);
|
||||||
const char *match = msg->params[1];
|
const char *match = msg->params[1];
|
||||||
while (NULL != (match = strcasestr(match, self.nick))) {
|
while (NULL != (match = strcasestr(match, self.nick))) {
|
||||||
|
@ -567,7 +566,7 @@ static void handlePrivmsg(struct Message *msg) {
|
||||||
require(msg, true, 2);
|
require(msg, true, 2);
|
||||||
bool query = !strchr(self.chanTypes, msg->params[0][0]);
|
bool query = !strchr(self.chanTypes, msg->params[0][0]);
|
||||||
bool network = strchr(msg->nick, '.');
|
bool network = strchr(msg->nick, '.');
|
||||||
bool mine = self.nick && !strcmp(msg->nick, self.nick);
|
bool mine = !strcmp(msg->nick, self.nick);
|
||||||
size_t id;
|
size_t id;
|
||||||
if (query && network) {
|
if (query && network) {
|
||||||
id = Network;
|
id = Network;
|
||||||
|
@ -586,9 +585,8 @@ static void handlePrivmsg(struct Message *msg) {
|
||||||
if (notice) {
|
if (notice) {
|
||||||
uiFormat(
|
uiFormat(
|
||||||
id, Warm, tagTime(msg),
|
id, Warm, tagTime(msg),
|
||||||
"%s\3%d-%s-\17\3%d\t%s",
|
"\3%d-%s-\3%d\t%s",
|
||||||
(mention ? "\26" : ""), hash(msg->user), msg->nick,
|
hash(msg->user), msg->nick, LightGray, msg->params[1]
|
||||||
LightGray, msg->params[1]
|
|
||||||
);
|
);
|
||||||
} else if (action) {
|
} else if (action) {
|
||||||
uiFormat(
|
uiFormat(
|
||||||
|
|
2
ui.c
2
ui.c
|
@ -657,7 +657,7 @@ static void inputUpdate(void) {
|
||||||
struct Style init = { .fg = self.color, .bg = Default };
|
struct Style init = { .fg = self.color, .bg = Default };
|
||||||
struct Style rest = Reset;
|
struct Style rest = Reset;
|
||||||
const char *prefix = "";
|
const char *prefix = "";
|
||||||
const char *prompt = (self.nick ? self.nick : "");
|
const char *prompt = self.nick;
|
||||||
const char *suffix = "";
|
const char *suffix = "";
|
||||||
if (NULL != (skip = commandIsPrivmsg(id, buf))) {
|
if (NULL != (skip = commandIsPrivmsg(id, buf))) {
|
||||||
prefix = "<"; suffix = "> ";
|
prefix = "<"; suffix = "> ";
|
||||||
|
|
Loading…
Reference in New Issue