From 86cf7de430ce9d1d255ec82476aca5ffd5146dd9 Mon Sep 17 00:00:00 2001 From: TingPing Date: Wed, 3 Apr 2013 18:10:14 -0400 Subject: [PATCH] add %u to userlist popups for account --- src/common/ctcp.c | 2 +- src/common/outbound.c | 6 ++++-- src/common/outbound.h | 2 +- src/fe-gtk/maingui.c | 2 +- src/fe-gtk/menu.c | 12 +++++++++--- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/common/ctcp.c b/src/common/ctcp.c index d02355cf..ebfb604d 100644 --- a/src/common/ctcp.c +++ b/src/common/ctcp.c @@ -48,7 +48,7 @@ ctcp_reply (session *sess, char *nick, char *word[], char *word_eol[], /* process %C %B etc */ check_special_chars (conf, TRUE); auto_insert (tbuf, sizeof (tbuf), conf, word, word_eol, "", "", word_eol[5], - server_get_network (sess->server, TRUE), "", "", nick); + server_get_network (sess->server, TRUE), "", "", nick, ""); free (conf); handle_command (sess, tbuf, FALSE); } diff --git a/src/common/outbound.c b/src/common/outbound.c index c3325f7c..082ba812 100644 --- a/src/common/outbound.c +++ b/src/common/outbound.c @@ -3856,7 +3856,7 @@ help (session *sess, char *tbuf, char *helpcmd, int quiet) int auto_insert (char *dest, int destlen, unsigned char *src, char *word[], char *word_eol[], char *a, char *c, char *d, char *e, char *h, - char *n, char *s) + char *n, char *s, char *u) { int num; char buf[32]; @@ -3953,6 +3953,8 @@ auto_insert (char *dest, int destlen, unsigned char *src, char *word[], utf = ctime (&now); utf[19] = 0; break; + case 'u': + utf = u; break; case 'v': utf = PACKAGE_VERSION; break; break; @@ -4172,7 +4174,7 @@ user_command (session * sess, char *tbuf, char *cmd, char *word[], { if (!auto_insert (tbuf, 2048, cmd, word, word_eol, "", sess->channel, "", server_get_network (sess->server, TRUE), "", - sess->server->nick, "")) + sess->server->nick, "", "")) { PrintText (sess, _("Bad arguments for user command.\n")); return; diff --git a/src/common/outbound.h b/src/common/outbound.h index 6f45b121..7dc1ba97 100644 --- a/src/common/outbound.h +++ b/src/common/outbound.h @@ -24,7 +24,7 @@ extern const struct commands xc_cmds[]; extern GSList *menu_list; int auto_insert (char *dest, int destlen, unsigned char *src, char *word[], char *word_eol[], - char *a, char *c, char *d, char *e, char *h, char *n, char *s); + char *a, char *c, char *d, char *e, char *h, char *n, char *s, char *u); int handle_command (session *sess, char *cmd, int check_spch); void process_data_init (char *buf, char *cmd, char *word[], char *word_eol[], gboolean handle_quotes, gboolean allow_escape_quotes); void handle_multiline (session *sess, char *cmd, int history, int nocommand); diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index 816a93f7..e8479904 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -2141,7 +2141,7 @@ mg_dialog_button_cb (GtkWidget *wid, char *cmd) auto_insert (buf, sizeof (buf), cmd, 0, 0, "", "", "", server_get_network (current_sess->server, TRUE), host, "", - current_sess->channel); + current_sess->channel, ""); handle_command (current_sess, buf, TRUE); diff --git a/src/fe-gtk/menu.c b/src/fe-gtk/menu.c index fa7d5790..521ba362 100644 --- a/src/fe-gtk/menu.c +++ b/src/fe-gtk/menu.c @@ -113,6 +113,7 @@ nick_command_parse (session *sess, char *cmd, char *nick, char *allnick) { char *buf; char *host = _("Host unknown"); + char *account = _("Account unknown"); struct User *user; int len; @@ -125,8 +126,13 @@ nick_command_parse (session *sess, char *cmd, char *nick, char *allnick) } else*/ { user = userlist_find (sess, nick); - if (user && user->hostname) - host = strchr (user->hostname, '@') + 1; + if (user) + { + if (user->hostname) + host = strchr (user->hostname, '@') + 1; + if (user->account) + account = user->account; + } } /* this can't overflow, since popup->cmd is only 256 */ @@ -135,7 +141,7 @@ nick_command_parse (session *sess, char *cmd, char *nick, char *allnick) auto_insert (buf, len, cmd, 0, 0, allnick, sess->channel, "", server_get_network (sess->server, TRUE), host, - sess->server->nick, nick); + sess->server->nick, nick, account); nick_command (sess, buf);