diff options
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/cmd_defs.c | 22 | ||||
-rw-r--r-- | src/command/cmd_funcs.c | 51 | ||||
-rw-r--r-- | src/command/cmd_funcs.h | 1 |
3 files changed, 74 insertions, 0 deletions
diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index e18b3bff..a9e45147 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2414,6 +2414,28 @@ static struct cmd_t command_defs[] = { "/color own off") }, + { "/stamp", + parse_args, 0, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_stamp) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN("/stamp outgoing <string>", + "/stamp incoming <string>", + "/stamp unset outgoing|incoming") + CMD_DESC("Set chat window stamp. " + "The format of line in the chat window is: \"<timestamp> <encryption sign> <stamp> <message>\" " + "where <stamp> is \"me:\" for incoming messages or \"username@server/resource\" for outgoing messages. " + "This command allows to change <stamp> value.") + CMD_ARGS({ "outgoing", "Set outgoing stamp" }, + { "incoming", "Set incoming stamp"}, + { "unset outgoing|incoming", "Use the defaults"}) + CMD_EXAMPLES( + "/stamp outgoing -->", + "/stamp incoming <--", + "/stamp unset incoming") + }, + { "/avatar", parse_args, 2, 2, NULL, CMD_NOSUBFUNCS diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index ebba224e..e76831fc 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -9054,6 +9054,57 @@ cmd_paste(ProfWin* window, const char* const command, gchar** args) } gboolean +cmd_stamp(ProfWin* window, const char* const command, gchar** args) +{ + if (g_strv_length(args) == 0) { + char* def = prefs_get_string(PREF_OUTGOING_STAMP); + if (def) { + cons_show("The outgoing stamp is: %s", def); + free(def); + } else { + cons_show("The default outgoing stamp is used."); + } + def = prefs_get_string(PREF_INCOMING_STAMP); + if (def) { + cons_show("The incoming stamp is: %s", def); + free(def); + } else { + cons_show("The default incoming stamp is used."); + } + return TRUE; + } + + if (g_strv_length(args) == 1) { + cons_bad_cmd_usage(command); + return TRUE; + } + + if (g_strv_length(args) == 2) { + if (g_strcmp0(args[0], "outgoing") == 0) { + prefs_set_string(PREF_OUTGOING_STAMP, args[1]); + cons_show("Outgoing stamp set to: %s", args[1]); + } else if (g_strcmp0(args[0], "incoming") == 0) { + prefs_set_string(PREF_INCOMING_STAMP, args[1]); + cons_show("Incoming stamp set to: %s", args[1]); + } else if (g_strcmp0(args[0], "unset") == 0) { + if (g_strcmp0(args[1], "incoming") == 0) { + prefs_set_string(PREF_INCOMING_STAMP, NULL); + cons_show("Incoming stamp unset"); + } else if (g_strcmp0(args[1], "outgoing") == 0) { + prefs_set_string(PREF_OUTGOING_STAMP, NULL); + cons_show("Outgoing stamp unset"); + } else { + cons_bad_cmd_usage(command); + } + } else { + cons_bad_cmd_usage(command); + } + } + + return TRUE; +} + +gboolean cmd_color(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "on") == 0) { diff --git a/src/command/cmd_funcs.h b/src/command/cmd_funcs.h index f4cbe0bf..41074720 100644 --- a/src/command/cmd_funcs.h +++ b/src/command/cmd_funcs.h @@ -250,5 +250,6 @@ gboolean cmd_correct_editor(ProfWin* window, const char* const command, gchar** gboolean cmd_silence(ProfWin* window, const char* const command, gchar** args); gboolean cmd_register(ProfWin* window, const char* const command, gchar** args); gboolean cmd_mood(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_stamp(ProfWin* window, const char* const command, gchar** args); #endif |