Mercurial > irccd
changeset 1028:98791cc6b4b4
irccd: add channel prefixes in server-info command
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 25 Feb 2021 20:10:00 +0100 |
parents | bab959e4a55a |
children | 113e523d999a |
files | irccd/peer.c lib/irccd/channel.c lib/irccd/channel.h |
diffstat | 3 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/irccd/peer.c Wed Feb 24 18:14:02 2021 +0100 +++ b/irccd/peer.c Thu Feb 25 20:10:00 2021 +0100 @@ -756,6 +756,13 @@ fprintf(fp, "%s %s %s\n", s->ident.nickname, s->ident.username, s->ident.realname); LIST_FOREACH(c, &s->channels, link) { + const struct irc_channel_user *user = irc_channel_find(c, s->ident.nickname); + + /* Prefix all our own modes on this channel. */ + for (size_t i = 0; i < IRC_UTIL_SIZE(s->params.prefixes); ++i) + if (user && (user->modes & 1 << i)) + fputc(s->params.prefixes[i].symbol, fp); + fprintf(fp, "%s", c->name); if (LIST_NEXT(c, link))
--- a/lib/irccd/channel.c Wed Feb 24 18:14:02 2021 +0100 +++ b/lib/irccd/channel.c Thu Feb 25 20:10:00 2021 +0100 @@ -61,7 +61,7 @@ } struct irc_channel_user * -irc_channel_find(struct irc_channel *ch, const char *nickname) +irc_channel_find(const struct irc_channel *ch, const char *nickname) { struct irc_channel_user *u;
--- a/lib/irccd/channel.h Wed Feb 24 18:14:02 2021 +0100 +++ b/lib/irccd/channel.h Thu Feb 25 20:10:00 2021 +0100 @@ -51,7 +51,7 @@ irc_channel_add(struct irc_channel *, const char *, int); struct irc_channel_user * -irc_channel_find(struct irc_channel *, const char *); +irc_channel_find(const struct irc_channel *, const char *); void irc_channel_clear(struct irc_channel *);