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

use '*' to set a default executable

Signed-off-by: Pierre Mazière <pierre.maziere@gmx.com>
This commit is contained in:
Pierre Mazière 2020-07-01 23:53:07 +02:00
parent e96678e6a5
commit 274e695320
2 changed files with 29 additions and 16 deletions

View File

@ -2472,15 +2472,15 @@ static struct cmd_t command_defs[] =
CMD_TAG_DISCOVERY)
CMD_SYN(
"/executable avatar <cmd>",
"/executable urlopen <fileType> <require_save> <cmd>",
"/executable urlsave <protocol> <cmd>")
"/executable urlopen (<fileType>|*) <require_save> <cmd>",
"/executable urlsave (<protocol>|*) <cmd>")
CMD_DESC(
"Configure executable that should be called upon a certain command."
"Default is xdg-open.")
CMD_ARGS(
{ "avatar", "Set executable that is run in /avatar open. Use your favourite image viewer." },
{ "urlopen", "Set executable that is run in /url open for a given file type. It may be your favorite browser or a specific viewer." },
{ "urlsave", "Set executable that is run in /url save for a given protocol. Use your favourite downloader."})
{ "urlopen", "Set executable that is run in /url open for a given file type. It may be your favorite browser or a specific viewer. Use * to set default command for undefined file type." },
{ "urlsave", "Set executable that is run in /url save for a given protocol. Use your favourite downloader. Use * to set default command for undefined protocol."})
CMD_EXAMPLES(
"/executable avatar xdg-open",
"/executable urlopen html false \"firefox %u\"",

View File

@ -537,18 +537,23 @@ prefs_get_string_list_with_option(preference_t pref, gchar *option)
char **def = _get_default_string_list(pref);
gchar **result = g_key_file_get_locale_string_list(prefs, group, key, option, NULL, NULL);
if (result == NULL) {
if (def) {
return def;
} else {
g_strfreev(def);
return NULL;
}
} else {
if (result) {
g_strfreev(def);
return result;
}
result = g_key_file_get_string_list(prefs, group, key, NULL, NULL);
if (result) {
g_strfreev(def);
return result;
}
if (def) {
return def;
} else {
g_strfreev(def);
return NULL;
}
}
void
@ -587,13 +592,21 @@ prefs_set_string_list_with_option(preference_t pref, char *option, const gchar*
const char *group = _get_group(pref);
const char *key = _get_key(pref);
if (values == NULL || *values == NULL){
g_key_file_set_locale_string_list(prefs, group, key, option, NULL, 0);
if (g_strcmp0(option, "*") == 0) {
g_key_file_set_string_list(prefs, group, key, NULL, 0);
} else {
g_key_file_set_locale_string_list(prefs, group, key, option, NULL, 0);
}
} else {
guint num_values = 0;
while(values[num_values]) {
num_values++;
num_values++;
}
if (g_strcmp0(option, "*") == 0) {
g_key_file_set_string_list(prefs, group, key, values, num_values);
} else {
g_key_file_set_locale_string_list(prefs, group, key, option, values, num_values);
}
g_key_file_set_locale_string_list(prefs, group, key, option, values, num_values);
}
}