From a8dc6ad1418f9bec9bd2e912804332a8520e7115 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Sat, 6 Jun 2015 01:21:27 +0200
Subject: degesch: show our own channel modes in prompt
---
degesch.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/degesch.c b/degesch.c
index ed56a0d..ef2a1e8 100644
--- a/degesch.c
+++ b/degesch.c
@@ -3690,6 +3690,13 @@ make_prompt (struct app_context *ctx, struct str *output)
str_append (output, "(unregistered)");
else
{
+ if (buffer->type == BUFFER_CHANNEL)
+ {
+ struct channel_user *channel_user =
+ irc_channel_get_user (buffer->channel, s->irc_user);
+ if (channel_user)
+ str_append (output, channel_user->prefixes.str);
+ }
str_append (output, s->irc_user->nickname);
if (*s->irc_user_mode)
str_append_printf (output, "(%s)", s->irc_user_mode);
@@ -4118,7 +4125,7 @@ irc_handle_mode (struct server *s, const struct irc_message *msg)
char *modes = irc_to_utf8 (s->ctx, reconstructed);
free (reconstructed);
- // TODO: parse the mode change and apply it (our user & channel user modes)
+ // TODO: parse user mode changes
if (irc_is_channel (s, context))
{
@@ -4150,6 +4157,9 @@ irc_handle_mode (struct server *s, const struct irc_message *msg)
free (who);
free (modes);
+
+ // Our own modes might have changed
+ refresh_prompt (s->ctx);
}
static void
--
cgit v1.2.3-70-g09d2