Merge pull request #1644 from profanity-im/ox-polish
Improve OX user experience
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user