Accepting request 1233940 from X11:common:Factory
OBS-URL: https://build.opensuse.org/request/show/1233940 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/desktop-file-utils?expand=0&rev=74
This commit is contained in:
commit
b14bd97ad4
@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 27 09:11:30 UTC 2024 - Guido Berhoerster <guido+opensuse@berhoerster.name>
|
||||||
|
|
||||||
|
- suse-update-mime-defaults:
|
||||||
|
* support drop in files in $r/etc/<desktop>_defaults.conf.d which take
|
||||||
|
priority over the distribution provided $r/etc/<desktop>_defaults.conf
|
||||||
|
* extend syntax of <desktop>_defaults.conf, prefixing a directive with a "-"
|
||||||
|
removes an otherwise identical earlier directive
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Nov 7 21:22:16 UTC 2024 - Antonio Teixeira <antonio.teixeira@suse.com>
|
Thu Nov 7 21:22:16 UTC 2024 - Antonio Teixeira <antonio.teixeira@suse.com>
|
||||||
|
|
||||||
|
@ -110,6 +110,43 @@ function _qsorti(dest, l, u, val, i, j) {
|
|||||||
_qsorti(dest, j + 1, u)
|
_qsorti(dest, j + 1, u)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# read a desktop-specifig configuration file
|
||||||
|
function read_conf_file(filename, lineno, arr) {
|
||||||
|
lineno = 0
|
||||||
|
while ((getline < filename) > 0) {
|
||||||
|
lineno++
|
||||||
|
if (NF == 0 || $1 ~ /^#/) {
|
||||||
|
# skip comments and empty lines
|
||||||
|
continue
|
||||||
|
} else if (NF != 1) {
|
||||||
|
err(1, "syntax error in " filename " line " lineno)
|
||||||
|
} else if (split($1, arr, /=/) == 2) {
|
||||||
|
if ($1 ~ /-/) {
|
||||||
|
# handle removal of previously set MIME type defaults
|
||||||
|
delete mimetype_default_apps[substr(arr[1], 2)]
|
||||||
|
} else {
|
||||||
|
# handle MIME type defaults
|
||||||
|
mimetype_default_apps[arr[1]] = arr[2]
|
||||||
|
}
|
||||||
|
} else if ($1 ~ /^-!.+\.desktop$/) {
|
||||||
|
# handle removal of previously set preferred default applications
|
||||||
|
delete preferred_default_apps[substr($1, 3)]
|
||||||
|
} else if ($1 ~ /^!.+\.desktop$/) {
|
||||||
|
# handle preferred default applications
|
||||||
|
preferred_default_apps[substr($1, 2)] = substr($1, 2)
|
||||||
|
} else if ($1 ~ /^-.+\.desktop$/) {
|
||||||
|
# handle removal previously set regular default applications
|
||||||
|
delete default_apps[substr($1, 2)]
|
||||||
|
} else if ($1 ~ /^.+\.desktop$/) {
|
||||||
|
# handle regular default applications
|
||||||
|
default_apps[$1] = $1
|
||||||
|
} else {
|
||||||
|
err(1, "syntax error in " filename ", line " lineno)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close(filename)
|
||||||
|
}
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
desktop = desktop != "" ? desktop : "gnome"
|
desktop = desktop != "" ? desktop : "gnome"
|
||||||
if (desktop == "gnome") {
|
if (desktop == "gnome") {
|
||||||
@ -130,28 +167,14 @@ BEGIN {
|
|||||||
defaults_conf = root "/etc/" desktop "_defaults.conf"
|
defaults_conf = root "/etc/" desktop "_defaults.conf"
|
||||||
|
|
||||||
# parse desktop defaults preferences
|
# parse desktop defaults preferences
|
||||||
lineno = 0
|
read_conf_file(defaults_conf)
|
||||||
while ((getline < defaults_conf) > 0) {
|
|
||||||
lineno++
|
# find and parse desktop defaults override files
|
||||||
if (NF == 0 || $1 ~ /^#/) {
|
cmd = "test -d " defaults_conf ".d/ && find " defaults_conf ".d/ -type f ! -name \"*[![:alnum:]._-]*\" | sort"
|
||||||
# skip comments and empty lines
|
while ((cmd | getline defaults_override) > 0) {
|
||||||
continue
|
read_conf_file(defaults_override)
|
||||||
} else if (NF != 1) {
|
|
||||||
err(1, "syntax error in " defaults_conf " line " lineno)
|
|
||||||
} else if (split($1, arr, /=/) == 2) {
|
|
||||||
# handle MIME type defaults
|
|
||||||
mimetype_default_apps[arr[1]] = arr[2]
|
|
||||||
} else if ($1 ~ /^!.+\.desktop$/) {
|
|
||||||
# handle preferred default applications
|
|
||||||
preferred_default_apps[substr($1, 2)] = substr($1, 2)
|
|
||||||
} else if ($1 ~ /^.+\.desktop$/) {
|
|
||||||
# handle regular default applications
|
|
||||||
default_apps[$1] = $1
|
|
||||||
} else {
|
|
||||||
err(1, "syntax error in " defaults_conf ", line " lineno)
|
|
||||||
}
|
}
|
||||||
}
|
close(cmd)
|
||||||
close(defaults_conf)
|
|
||||||
|
|
||||||
# find all desktop files
|
# find all desktop files
|
||||||
for (i = split("XDG_DATA_DIRS" in ENVIRON ? ENVIRON["XDG_DATA_DIRS"] : \
|
for (i = split("XDG_DATA_DIRS" in ENVIRON ? ENVIRON["XDG_DATA_DIRS"] : \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user