From e4c389cc51c6bf08836308bb4c3e4fa715a1fe65 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 28 Oct 2012 02:40:04 +0000 Subject: [PATCH 1/3] Added /me handling for incoming messages --- src/windows.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/windows.c b/src/windows.c index b7486c92..6aea74ca 100644 --- a/src/windows.c +++ b/src/windows.c @@ -275,8 +275,17 @@ win_show_incomming_msg(const char * const from, const char * const message) // currently viewing chat window with sender if (win_index == _curr_prof_win) { _win_show_time(win); - _win_show_user(win, short_from, 1); - _win_show_message(win, message); + + if (strncmp(message, "/me ", 4) == 0) { + wattron(win, COLOUR_ONLINE); + wprintw(win, "*%s ", short_from); + wprintw(win, message + 4); + wprintw(win, "\n"); + wattroff(win, COLOUR_ONLINE); + } else { + _win_show_user(win, short_from, 1); + _win_show_message(win, message); + } title_bar_set_typing(FALSE); title_bar_draw(); status_bar_active(win_index); @@ -295,8 +304,16 @@ win_show_incomming_msg(const char * const from, const char * const message) } _win_show_time(win); - _win_show_user(win, short_from, 1); - _win_show_message(win, message); + if (strncmp(message, "/me ", 4) == 0) { + wattron(win, COLOUR_ONLINE); + wprintw(win, "*%s ", short_from); + wprintw(win, message + 4); + wprintw(win, "\n"); + wattroff(win, COLOUR_ONLINE); + } else { + _win_show_user(win, short_from, 1); + _win_show_message(win, message); + } } if (prefs_get_beep()) From 6318cd91ba0fee532490672a3995567b18b58599 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 28 Oct 2012 02:52:52 +0000 Subject: [PATCH 2/3] Added /me handling in logs --- src/chat_log.c | 12 ++++++++++-- src/windows.c | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/chat_log.c b/src/chat_log.c index 2e53dfc7..5ea40911 100644 --- a/src/chat_log.c +++ b/src/chat_log.c @@ -80,9 +80,17 @@ chat_log_chat(const gchar * const login, gchar *other, FILE *logp = fopen(dated_log->filename, "a"); if (direction == IN) { - fprintf(logp, "%s - %s: %s\n", date_fmt, other_copy, msg); + if (strncmp(msg, "/me ", 4) == 0) { + fprintf(logp, "%s - *%s %s\n", date_fmt, other_copy, msg + 4); + } else { + fprintf(logp, "%s - %s: %s\n", date_fmt, other_copy, msg); + } } else { - fprintf(logp, "%s - me: %s\n", date_fmt, msg); + if (strncmp(msg, "/me ", 4) == 0) { + fprintf(logp, "%s - *me %s\n", date_fmt, msg + 4); + } else { + fprintf(logp, "%s - me: %s\n", date_fmt, msg); + } } fflush(logp); int result = fclose(logp); diff --git a/src/windows.c b/src/windows.c index 6aea74ca..f1c8f0fe 100644 --- a/src/windows.c +++ b/src/windows.c @@ -440,8 +440,16 @@ win_show_outgoing_msg(const char * const from, const char * const to, } _win_show_time(win); - _win_show_user(win, from, 0); - _win_show_message(win, message); + if (strncmp(message, "/me ", 4) == 0) { + wattron(win, COLOUR_ONLINE); + wprintw(win, "*%s ", from); + wprintw(win, message + 4); + wprintw(win, "\n"); + wattroff(win, COLOUR_ONLINE); + } else { + _win_show_user(win, from, 1); + _win_show_message(win, message); + } _win_switch_if_active(win_index); } From cd56134ebb8f0789c776477a1a1b6e337e6d0e70 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 28 Oct 2012 02:58:12 +0000 Subject: [PATCH 3/3] Added offline to /who autocomplete --- src/command.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/command.c b/src/command.c index 0fd093bb..e9f40409 100644 --- a/src/command.c +++ b/src/command.c @@ -442,6 +442,8 @@ cmd_init(void) p_autocomplete_add(who_ac, (gchar *)strdup(pcmd->cmd+1)); } + p_autocomplete_add(who_ac, "offline"); + history_init(); }