1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-09-22 19:45:54 -04: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_TAG_DISCOVERY)
CMD_SYN( CMD_SYN(
"/executable avatar <cmd>", "/executable avatar <cmd>",
"/executable urlopen <fileType> <require_save> <cmd>", "/executable urlopen (<fileType>|*) <require_save> <cmd>",
"/executable urlsave <protocol> <cmd>") "/executable urlsave (<protocol>|*) <cmd>")
CMD_DESC( CMD_DESC(
"Configure executable that should be called upon a certain command." "Configure executable that should be called upon a certain command."
"Default is xdg-open.") "Default is xdg-open.")
CMD_ARGS( CMD_ARGS(
{ "avatar", "Set executable that is run in /avatar open. Use your favourite image viewer." }, { "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." }, { "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."}) { "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( CMD_EXAMPLES(
"/executable avatar xdg-open", "/executable avatar xdg-open",
"/executable urlopen html false \"firefox %u\"", "/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); char **def = _get_default_string_list(pref);
gchar **result = g_key_file_get_locale_string_list(prefs, group, key, option, NULL, NULL); gchar **result = g_key_file_get_locale_string_list(prefs, group, key, option, NULL, NULL);
if (result) {
if (result == NULL) {
if (def) {
return def;
} else {
g_strfreev(def);
return NULL;
}
} else {
g_strfreev(def); g_strfreev(def);
return result; 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 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 *group = _get_group(pref);
const char *key = _get_key(pref); const char *key = _get_key(pref);
if (values == NULL || *values == NULL){ 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 { } else {
guint num_values = 0; guint num_values = 0;
while(values[num_values]) { 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);
} }
} }