diff options
author | Michael Vetter <jubalh@iodoru.org> | 2020-05-16 21:52:30 +0200 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2020-05-20 10:47:40 +0200 |
commit | 083bf34a7763aec7c95282e1b357ee4cf71c49fd (patch) | |
tree | 0db342d89218e2e875e52b7148191ae4243d665f /src/command | |
parent | 7d7f0ef5a5a40257996df52aaff58599fddd11d5 (diff) | |
download | profani-tty-083bf34a7763aec7c95282e1b357ee4cf71c49fd.tar.gz |
Start urlopen feature
Start https://github.com/profanity-im/profanity/issues/1340
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/cmd_ac.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index 85800f99..713653b4 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -54,6 +54,7 @@ #include "xmpp/muc.h" #include "xmpp/xmpp.h" #include "xmpp/roster_list.h" +#include "ui/buffer.h" #ifdef HAVE_LIBGPGME #include "pgp/gpg.h" @@ -122,6 +123,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* _script_autocomplete_func(const char *const prefix, gboolean previous, void *context); @@ -1721,6 +1723,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); int len = strlen(input); char parsed[len+1]; @@ -3912,3 +3915,23 @@ _software_autocomplete(ProfWin *window, const char *const input, gboolean previo return result; } + +static char* +_urlopen_autocomplete(ProfWin *window, const char *const input, gboolean previous) +{ + if (window->type == WIN_CONSOLE){ + return NULL; + } + + ProfBuffEntry *entry = buffer_get_url(window->layout->buffer, NULL); + if (entry && entry->message) { + GString *result_str = g_string_new("/urlopen "); + g_string_append(result_str, entry->message); + char *result = result_str->str; + g_string_free(result_str, FALSE); + return result; + } + + return NULL; +} + |