Merge pull request #1644 from profanity-im/ox-polish

Improve OX user experience
This commit is contained in:
Michael Vetter
2022-03-21 10:08:13 +01:00
committed by GitHub
4 changed files with 97 additions and 102 deletions

View File

@@ -2554,11 +2554,6 @@ _pgp_autocomplete(ProfWin* window, const char* const input, gboolean previous)
return NULL;
}
/*!
* \brief Auto completion for XEP-0373: OpenPGP for XMPP command.
*
*
*/
static char*
_ox_autocomplete(ProfWin* window, const char* const input, gboolean previous)
{
@@ -2590,23 +2585,9 @@ _ox_autocomplete(ProfWin* window, const char* const input, gboolean previous)
return found;
}
gboolean result;
gchar** args = parse_args(input, 2, 3, &result);
if ((strncmp(input, "/ox", 4) == 0) && (result == TRUE)) {
GString* beginning = g_string_new("/ox ");
g_string_append(beginning, args[0]);
if (args[1]) {
g_string_append(beginning, " ");
g_string_append(beginning, args[1]);
}
found = autocomplete_param_with_func(input, beginning->str, p_gpg_autocomplete_key, previous, NULL);
g_string_free(beginning, TRUE);
if (found) {
g_strfreev(args);
return found;
}
if (strncmp(input, "/ox announce ", 13) == 0) {
return cmd_ac_complete_filepath(input, "/ox announce", previous);
}
g_strfreev(args);
if (conn_status == JABBER_CONNECTED) {
found = autocomplete_param_with_func(input, "/ox setkey", roster_barejid_autocomplete, previous, NULL);

View File

@@ -1102,6 +1102,7 @@ cmd_export(ProfWin* window, const char* const command, gchar** args)
char* path = get_expanded_path(args[0]);
fd = open(path, O_WRONLY | O_CREAT, 00600);
free(path);
if (-1 == fd) {
cons_show("error: cannot open %s: %s", args[0], strerror(errno));
@@ -7630,7 +7631,22 @@ cmd_ox(ProfWin* window, const char* const command, gchar** args)
return TRUE;
} else if (g_strcmp0(args[0], "announce") == 0) {
if (args[1]) {
ox_announce_public_key(args[1]);
gchar* filename = get_expanded_path(args[1]);
if (access(filename, R_OK) != 0) {
cons_show_error("File not found: %s", filename);
g_free(filename);
return TRUE;
}
if (!is_regular_file(filename)) {
cons_show_error("Not a file: %s", filename);
g_free(filename);
return TRUE;
}
ox_announce_public_key(filename);
free(filename);
} else {
cons_show("Filename is required");
}