summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--degesch.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/degesch.c b/degesch.c
index 35e7891..041fa4f 100644
--- a/degesch.c
+++ b/degesch.c
@@ -6807,6 +6807,45 @@ handle_command_save (struct handler_args *a)
}
static bool
+show_aliases_list (struct app_context *ctx)
+{
+ log_global_indent (ctx, "");
+ log_global_indent (ctx, "Aliases:");
+
+ struct str_map_iter iter;
+ str_map_iter_init (&iter, get_aliases_config (ctx));
+
+ struct config_item_ *alias;
+ while ((alias = str_map_iter_next (&iter)))
+ {
+ if (!config_item_type_is_string (alias->type))
+ continue;
+
+ struct str definition;
+ str_init (&definition);
+ config_item_write_string (&definition, &alias->value.string);
+ log_global_indent (ctx, " /#s: #s", iter.link->key, definition.str);
+ str_free (&definition);
+ }
+ return true;
+}
+
+static bool
+handle_command_alias (struct handler_args *a)
+{
+ char *name = cut_word (&a->arguments);
+ if (!*name)
+ return show_aliases_list (a->ctx);
+
+ char *definition = cut_word (&a->arguments);
+ if (!*definition)
+ return false;
+
+ // TODO: set the alias "name" to "definition"
+ return true;
+}
+
+static bool
handle_command_msg (struct handler_args *a)
{
if (!*a->arguments)
@@ -7402,6 +7441,10 @@ g_command_handlers[] =
NULL,
handle_command_save, 0 },
+ { "alias", "List or set aliases",
+ "[<name> <definition>]",
+ handle_command_alias, 0 },
+
{ "msg", "Send message to a nick or channel",
"<target> <message>",
handle_command_msg, HANDLER_SERVER | HANDLER_NEEDS_REG },