Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package desktop-file-utils for 
openSUSE:Factory checked in at 2025-01-02 19:19:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/desktop-file-utils (Old)
 and      /work/SRC/openSUSE:Factory/.desktop-file-utils.new.1881 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "desktop-file-utils"

Thu Jan  2 19:19:32 2025 rev:74 rq:1233940 version:0.28

Changes:
--------
--- /work/SRC/openSUSE:Factory/desktop-file-utils/desktop-file-utils.changes    
2024-12-03 20:45:59.663973535 +0100
+++ 
/work/SRC/openSUSE:Factory/.desktop-file-utils.new.1881/desktop-file-utils.changes
  2025-01-02 19:19:54.564718090 +0100
@@ -1,0 +2,9 @@
+Fri Dec 27 09:11:30 UTC 2024 - Guido Berhoerster 
<[email protected]>
+
+- 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
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ suse-update-mime-defaults ++++++
--- /var/tmp/diff_new_pack.Cc1SdA/_old  2025-01-02 19:19:55.404752636 +0100
+++ /var/tmp/diff_new_pack.Cc1SdA/_new  2025-01-02 19:19:55.412752965 +0100
@@ -110,6 +110,43 @@
     _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 {
     desktop = desktop != "" ? desktop : "gnome"
     if (desktop == "gnome") {
@@ -130,28 +167,14 @@
     defaults_conf = root "/etc/" desktop "_defaults.conf"
 
     # parse desktop defaults preferences
-    lineno = 0
-    while ((getline < defaults_conf) > 0) {
-        lineno++
-        if (NF == 0 || $1 ~ /^#/) {
-            # skip comments and empty lines
-            continue
-        } 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)
-        }
+    read_conf_file(defaults_conf)
+
+    # find and parse desktop defaults override files
+    cmd = "test -d " defaults_conf ".d/ && find " defaults_conf ".d/ -type f ! 
-name \"*[![:alnum:]._-]*\" | sort"
+    while ((cmd | getline defaults_override) > 0) {
+        read_conf_file(defaults_override)
     }
-    close(defaults_conf)
+    close(cmd)
 
     # find all desktop files
     for (i = split("XDG_DATA_DIRS" in ENVIRON ? ENVIRON["XDG_DATA_DIRS"] : \

Reply via email to