From 86354a2bc5edf9552b0d173d92ad3104476b343f Mon Sep 17 00:00:00 2001 From: James Booth Date: Thu, 29 Oct 2015 20:55:37 +0000 Subject: Added /subject append --- src/command/command.c | 5 ++++- src/command/commands.c | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/command') diff --git a/src/command/command.c b/src/command/command.c index d2ccef73..375d1b26 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -561,11 +561,13 @@ static struct cmd_t command_defs[] = CMD_TAG_GROUPCHAT) CMD_SYN( "/subject set ", + "/subject append ", "/subject clear") CMD_DESC( - "Set or clear room subject.") + "Set, append to, or clear room subject.") CMD_ARGS( { "set ", "Set the room subject." }, + { "append ", "Append text to the current room subject, use double quotes if a preceeding space is needed." }, { "clear", "Clear the room subject." }) CMD_NOEXAMPLES }, @@ -2135,6 +2137,7 @@ cmd_init(void) subject_ac = autocomplete_new(); autocomplete_add(subject_ac, "set"); + autocomplete_add(subject_ac, "append"); autocomplete_add(subject_ac, "clear"); form_ac = autocomplete_new(); diff --git a/src/command/commands.c b/src/command/commands.c index 799a006e..f17fec42 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -2851,6 +2851,23 @@ cmd_subject(ProfWin *window, const char *const command, gchar **args) return TRUE; } + if (g_strcmp0(args[0], "append") == 0) { + if (args[1]) { + char *old_subject = muc_subject(mucwin->roomjid); + if (old_subject) { + GString *new_subject = g_string_new(old_subject); + g_string_append(new_subject, args[1]); + message_send_groupchat_subject(mucwin->roomjid, new_subject->str); + g_string_free(new_subject, TRUE); + } else { + win_vprint(window, '!', 0, NULL, NO_EOL, THEME_ROOMINFO, "", "Room does not have a subject, use /subject set "); + } + } else { + cons_bad_cmd_usage(command); + } + return TRUE; + } + if (g_strcmp0(args[0], "clear") == 0) { message_send_groupchat_subject(mucwin->roomjid, NULL); return TRUE; -- cgit 1.4.1-2-gfad0