1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-11-03 19:37:16 -05:00

Add /executable (urlsave|urlopen) migrations

This commit is contained in:
William Wennerström 2020-12-18 16:05:11 +01:00
parent 8c94b9f230
commit 01e8f01ed3
No known key found for this signature in database
GPG Key ID: E1382990BEDD319B
3 changed files with 36 additions and 10 deletions

View File

@ -2510,9 +2510,9 @@ static struct cmd_t command_defs[] = {
"Configure executable that should be called upon a certain command.") "Configure executable that should be called upon a certain command.")
CMD_ARGS( CMD_ARGS(
{ "avatar", "Set executable that is run by /avatar open. Use your favorite image viewer." }, { "avatar", "Set executable that is run by /avatar open. Use your favorite image viewer." },
{ "urlopen set", "Set executable that is run by /url open. It may be your favorite browser or a specific viewer." }, { "urlopen set", "Set executable that is run by /url open. Takes a command template that replaces %u and %p with the URL and path respectively." },
{ "urlopen default", "Restore to default settings." }, { "urlopen default", "Restore to default settings." },
{ "urlsave set", "Set executable that is run by /url save. It may be your favorite downloader.'" }, { "urlsave set", "Set executable that is run by /url save. Takes a command template that replaces %u and %p with the URL and path respectively." },
{ "urlsave default", "Use the built-in download method for saving." }) { "urlsave default", "Use the built-in download method for saving." })
CMD_EXAMPLES( CMD_EXAMPLES(
"/executable avatar xdg-open", "/executable avatar xdg-open",
@ -2853,9 +2853,9 @@ command_mangen(void)
mkdir_recursive("docs"); mkdir_recursive("docs");
char* header = NULL; char* header = NULL;
GDateTime *now = g_date_time_new_now_local(); GDateTime* now = g_date_time_new_now_local();
gchar *date = g_date_time_format(now, "%F"); gchar* date = g_date_time_format(now, "%F");
if (asprintf(&header, ".TH man 1 \"%s\" \""PACKAGE_VERSION"\" \"Profanity XMPP client\"\n", date) == -1) { if (asprintf(&header, ".TH man 1 \"%s\" \"" PACKAGE_VERSION "\" \"Profanity XMPP client\"\n", date) == -1) {
// TODO: error // TODO: error
return; return;
} }

View File

@ -9263,8 +9263,8 @@ cmd_executable_urlopen(ProfWin* window, const char* const command, gchar** args)
g_free(str); g_free(str);
} else if (g_strcmp0(args[1], "default") == 0) { } else if (g_strcmp0(args[1], "default") == 0) {
prefs_set_string(PREF_URL_SAVE_CMD, NULL); prefs_set_string(PREF_URL_OPEN_CMD, NULL);
gchar* def = prefs_get_string(PREF_URL_SAVE_CMD); gchar* def = prefs_get_string(PREF_URL_OPEN_CMD);
cons_show("`url open` command set to invoke %s (default)", def); cons_show("`url open` command set to invoke %s (default)", def);
g_free(def); g_free(def);
} else { } else {

View File

@ -170,7 +170,7 @@ _prefs_load(void)
value = g_string_append(value, val); value = g_string_append(value, val);
value = g_string_append(value, " %u;"); value = g_string_append(value, " %u;");
g_key_file_set_locale_string(prefs, PREF_GROUP_EXECUTABLES, "url.open.cmd", "*", value->str); g_key_file_set_locale_string(prefs, PREF_GROUP_EXECUTABLES, "url.open.cmd", "DEF", value->str);
g_key_file_remove_key(prefs, PREF_GROUP_LOGGING, "urlopen.cmd", NULL); g_key_file_remove_key(prefs, PREF_GROUP_LOGGING, "urlopen.cmd", NULL);
g_string_free(value, TRUE); g_string_free(value, TRUE);
@ -183,11 +183,37 @@ _prefs_load(void)
g_key_file_remove_key(prefs, PREF_GROUP_LOGGING, "avatar.cmd", NULL); g_key_file_remove_key(prefs, PREF_GROUP_LOGGING, "avatar.cmd", NULL);
} }
// 0.10 will have omemo media sharing. so disabling of sendfile introduced in 0.9 is not needed (#1270) // 0.10 will have omemo media sharing. So disabling of sendfile introduced in 0.9 is not needed (#1270)
if (g_key_file_has_key(prefs, PREF_GROUP_OMEMO, "sendfile", NULL)) { if (g_key_file_has_key(prefs, PREF_GROUP_OMEMO, "sendfile", NULL)) {
g_key_file_remove_key(prefs, PREF_GROUP_OMEMO, "sendfile", NULL); g_key_file_remove_key(prefs, PREF_GROUP_OMEMO, "sendfile", NULL);
} }
// 0.10 have changed the behavior of /url open and /url save to not use any
// file type or scheme matching. Move value saved under 'DEF' locale to a
// simple key-value string not under any locale.
{
char** values = g_key_file_get_locale_string_list(prefs, PREF_GROUP_EXECUTABLES, "url.open.cmd", "DEF", NULL, NULL);
if (values && !g_key_file_has_key(prefs, PREF_GROUP_EXECUTABLES, "url.open.cmd", NULL)) {
// First value in array is `require_save` option -- we ignore that
// one as there is no such option anymore.
char* executable = values[1];
g_key_file_set_string(prefs, PREF_GROUP_EXECUTABLES, "url.open.cmd", executable);
g_key_file_set_comment(prefs, PREF_GROUP_EXECUTABLES, "url.open.cmd", " Migrated from url.open.cmd[DEF]. `require_save` option has been removed in v0.10 and was discarded.", NULL);
g_key_file_remove_key(prefs, PREF_GROUP_EXECUTABLES, "url.open.cmd[DEF]", NULL);
g_strfreev(values);
}
char* value = g_key_file_get_locale_string(prefs, PREF_GROUP_EXECUTABLES, "url.save.cmd", "DEF", NULL);
if (value && !g_key_file_has_key(prefs, PREF_GROUP_EXECUTABLES, "url.save.cmd", NULL)) {
g_key_file_set_string(prefs, PREF_GROUP_EXECUTABLES, "url.save.cmd", value);
g_key_file_set_comment(prefs, PREF_GROUP_EXECUTABLES, "url.save.cmd", " Migrated from url.save.cmd[DEF].", NULL);
g_key_file_remove_key(prefs, PREF_GROUP_EXECUTABLES, "url.save.cmd[DEF]", NULL);
g_free(value);
}
}
_save_prefs(); _save_prefs();
boolean_choice_ac = autocomplete_new(); boolean_choice_ac = autocomplete_new();