diff options
author | Michael Vetter <jubalh@iodoru.org> | 2020-07-02 11:26:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-02 11:26:18 +0200 |
commit | 9774b0c5509193027d4f68df9dcb862455699cfc (patch) | |
tree | 1ade86abc718ae2cc06199c12c5d6a4f0cb49df0 /src/command/cmd_ac.c | |
parent | 3af5f33489d1e065c9da03b0bb99eddff57816a4 (diff) | |
parent | 86cd33405e7f67647ce2c171e19bab4120201140 (diff) | |
download | profani-tty-9774b0c5509193027d4f68df9dcb862455699cfc.tar.gz |
Merge pull request #1374 from profanity-im/revampUrlopen
Rework /url and /executable for filetypes
Diffstat (limited to 'src/command/cmd_ac.c')
-rw-r--r-- | src/command/cmd_ac.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index eefca0cc..0d9d4cc5 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -124,7 +124,7 @@ static char* _avatar_autocomplete(ProfWin *window, const char *const input, gboo static char* _correction_autocomplete(ProfWin *window, const char *const input, gboolean previous); static char* _correct_autocomplete(ProfWin *window, const char *const input, gboolean previous); static char* _software_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _urlopen_autocomplete(ProfWin *window, const char *const input, gboolean previous); +static char* _url_autocomplete(ProfWin *window, const char *const input, gboolean previous); static char* _executable_autocomplete(ProfWin *window, const char *const input, gboolean previous); static char* _script_autocomplete_func(const char *const prefix, gboolean previous, void *context); @@ -263,6 +263,7 @@ static Autocomplete logging_group_ac; static Autocomplete color_ac; static Autocomplete correction_ac; static Autocomplete avatar_ac; +static Autocomplete url_ac; static Autocomplete executable_ac; /*! @@ -1041,9 +1042,14 @@ cmd_ac_init(void) autocomplete_add(avatar_ac, "get"); autocomplete_add(avatar_ac, "open"); + url_ac = autocomplete_new(); + autocomplete_add(url_ac, "open"); + autocomplete_add(url_ac, "save"); + executable_ac = autocomplete_new(); autocomplete_add(executable_ac, "avatar"); autocomplete_add(executable_ac, "urlopen"); + autocomplete_add(executable_ac, "urlsave"); } void @@ -1362,6 +1368,7 @@ cmd_ac_reset(ProfWin *window) autocomplete_reset(color_ac); autocomplete_reset(correction_ac); autocomplete_reset(avatar_ac); + autocomplete_reset(url_ac); autocomplete_reset(executable_ac); autocomplete_reset(script_ac); @@ -1523,6 +1530,7 @@ cmd_ac_uninit(void) autocomplete_free(color_ac); autocomplete_free(correction_ac); autocomplete_free(avatar_ac); + autocomplete_free(url_ac); autocomplete_free(executable_ac); } @@ -1784,7 +1792,7 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ g_hash_table_insert(ac_funcs, "/correction", _correction_autocomplete); g_hash_table_insert(ac_funcs, "/correct", _correct_autocomplete); g_hash_table_insert(ac_funcs, "/software", _software_autocomplete); - g_hash_table_insert(ac_funcs, "/urlopen", _urlopen_autocomplete); + g_hash_table_insert(ac_funcs, "/url", _url_autocomplete); g_hash_table_insert(ac_funcs, "/executable", _executable_autocomplete); int len = strlen(input); @@ -4133,14 +4141,24 @@ _software_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_urlopen_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_url_autocomplete(ProfWin *window, const char *const input, gboolean previous) { char *result = NULL; + result = autocomplete_param_with_ac(input, "/url", url_ac, TRUE, previous); + if (result) { + return result; + } + if (window->type == WIN_CHAT || window->type == WIN_MUC || window->type == WIN_PRIVATE) { - result = autocomplete_param_with_func(input, "/urlopen", wins_get_url, previous, window); + result = autocomplete_param_with_func(input, "/url open", wins_get_url, previous, window); + if (result) { + return result; + } + + result = autocomplete_param_with_func(input, "/url save", wins_get_url, previous, window); } return result; |