Moved /room subject to /subject

This commit is contained in:
James Booth
2014-10-11 23:13:48 +01:00
parent 9054427144
commit 8b77f527c0
3 changed files with 66 additions and 45 deletions

View File

@@ -2169,6 +2169,54 @@ cmd_ban(gchar **args, struct cmd_help_t help)
return TRUE;
}
gboolean
cmd_subject(gchar **args, struct cmd_help_t help)
{
jabber_conn_status_t conn_status = jabber_get_connection_status();
if (conn_status != JABBER_CONNECTED) {
cons_show("You are not currently connected.");
return TRUE;
}
win_type_t win_type = ui_current_win_type();
if (win_type != WIN_MUC) {
cons_show("Command '/room' does not apply to this window.");
return TRUE;
}
char *room = ui_current_recipient();
ProfWin *window = wins_get_by_recipient(room);
if (args[0] == NULL) {
char *subject = muc_subject(room);
if (subject) {
win_save_vprint(window, '!', NULL, NO_EOL, COLOUR_ROOMINFO, "", "Room subject: ");
win_save_vprint(window, '!', NULL, NO_DATE, 0, "", "%s", subject);
} else {
win_save_print(window, '!', NULL, 0, COLOUR_ROOMINFO, "", "Room has no subject");
}
return TRUE;
}
if (g_strcmp0(args[0], "set") == 0) {
if (args[1]) {
message_send_groupchat_subject(room, args[1]);
} else {
cons_show("Usage: %s", help.usage);
}
return TRUE;
}
if (g_strcmp0(args[0], "clear") == 0) {
message_send_groupchat_subject(room, NULL);
return TRUE;
}
cons_show("Usage: %s", help.usage);
return TRUE;
}
gboolean
cmd_room(gchar **args, struct cmd_help_t help)
{
@@ -2188,7 +2236,6 @@ cmd_room(gchar **args, struct cmd_help_t help)
if ((g_strcmp0(args[0], "accept") != 0) &&
(g_strcmp0(args[0], "destroy") != 0) &&
(g_strcmp0(args[0], "config") != 0) &&
(g_strcmp0(args[0], "subject") != 0) &&
(g_strcmp0(args[0], "role") != 0) &&
(g_strcmp0(args[0], "affiliation") != 0) &&
(g_strcmp0(args[0], "info") != 0)) {
@@ -2211,36 +2258,6 @@ cmd_room(gchar **args, struct cmd_help_t help)
return TRUE;
}
if (g_strcmp0(args[0], "subject") == 0) {
if (args[1] == NULL) {
char *subject = muc_subject(room);
if (subject) {
win_save_vprint(window, '!', NULL, NO_EOL, COLOUR_ROOMINFO, "", "Room subject: ");
win_save_vprint(window, '!', NULL, NO_DATE, 0, "", "%s", subject);
} else {
win_save_print(window, '!', NULL, 0, COLOUR_ROOMINFO, "", "Room has no subject");
}
return TRUE;
}
if (g_strcmp0(args[1], "set") == 0) {
if (args[2]) {
message_send_groupchat_subject(room, args[2]);
} else {
cons_show("Usage: %s", help.usage);
}
return TRUE;
}
if (g_strcmp0(args[1], "clear") == 0) {
message_send_groupchat_subject(room, NULL);
return TRUE;
}
cons_show("Usage: %s", help.usage);
return TRUE;
}
if (g_strcmp0(args[0], "affiliation") == 0) {
char *cmd = args[1];
if (cmd == NULL) {