Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xfce4-settings for openSUSE:Factory 
checked in at 2022-11-21 15:30:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-settings (Old)
 and      /work/SRC/openSUSE:Factory/.xfce4-settings.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xfce4-settings"

Mon Nov 21 15:30:34 2022 rev:50 rq:1037090 version:4.16.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-settings/xfce4-settings.changes    
2022-11-13 18:09:20.631572211 +0100
+++ /work/SRC/openSUSE:Factory/.xfce4-settings.new.1597/xfce4-settings.changes  
2022-11-21 15:30:58.585068903 +0100
@@ -1,0 +2,7 @@
+Wed Nov 16 00:37:06 UTC 2022 - Maurizio Galli <[email protected]>
+
+- Update to version 4.16.5
+  * Fix regression introduced in 4.16.4: "exo-open" not working 
+    for paths with spaces inside (gxo#xfce/xfce4-settings#403) 
+
+-------------------------------------------------------------------

Old:
----
  xfce4-settings-4.16.4.tar.bz2

New:
----
  xfce4-settings-4.16.5.tar.bz2

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

Other differences:
------------------
++++++ xfce4-settings.spec ++++++
--- /var/tmp/diff_new_pack.2YbRww/_old  2022-11-21 15:30:59.141071726 +0100
+++ /var/tmp/diff_new_pack.2YbRww/_new  2022-11-21 15:30:59.149071767 +0100
@@ -19,7 +19,7 @@
 %bcond_with git
 
 Name:           xfce4-settings
-Version:        4.16.4
+Version:        4.16.5
 Release:        0
 Summary:        Tools for Managing Xfce Settings
 License:        GPL-2.0-only AND GPL-2.0-or-later

++++++ xfce4-settings-4.16.4.tar.bz2 -> xfce4-settings-4.16.5.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xfce4-settings-4.16.4/ChangeLog 
new/xfce4-settings-4.16.5/ChangeLog
--- old/xfce4-settings-4.16.4/ChangeLog 2022-11-07 21:26:26.000000000 +0100
+++ new/xfce4-settings-4.16.5/ChangeLog 2022-11-12 23:25:57.000000000 +0100
@@ -1,3 +1,32 @@
+commit f1cb5bdafc6b9c71c541de267cc84a8c2ac32049
+Author: Gaël Bonithon <[email protected]>
+Date:   Sat Nov 12 22:27:36 2022 +0100
+
+    mime-settings: Properly quote command parameters
+    
+    Fixes: #390
+    MR: !85
+
+commit f7707d8b835c3611c647c0da61cd9488e7af2bb7
+Author: Alexander Schwinn <[email protected]>
+Date:   Sat Nov 12 22:15:02 2022 +0100
+
+    Revert "Escape characters which do not belong into an URI/URL (Issue #390)"
+    
+    This reverts commit 55e3c5fb667e96ad1412cf249879262b369d28d7.
+
+commit b532324ffa51ae9b8582df0a577b642163689943
+Author: Alexander Schwinn <[email protected]>
+Date:   Mon Nov 7 21:30:07 2022 +0100
+
+    Back to development
+
+commit b9729c85de00a340d6b6e432fbcd293cf7dedfe1
+Author: Alexander Schwinn <[email protected]>
+Date:   Mon Nov 7 21:27:41 2022 +0100
+
+    Updates for release
+
 commit 55e3c5fb667e96ad1412cf249879262b369d28d7
 Author: Alexander Schwinn <[email protected]>
 Date:   Mon Nov 7 09:56:31 2022 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xfce4-settings-4.16.4/NEWS 
new/xfce4-settings-4.16.5/NEWS
--- old/xfce4-settings-4.16.4/NEWS      2022-11-07 21:26:00.000000000 +0100
+++ new/xfce4-settings-4.16.5/NEWS      2022-11-12 23:25:25.000000000 +0100
@@ -1,3 +1,10 @@
+4.16.5 (2022-11-12)
+======
+- mime-settings: Properly quote command parameters
+- Revert "Escape characters which do not belong into an URI/URL (Issue 
+#390)"
+
+
 4.16.4 (2022-11-07)
 ======
 - Escape characters which do not belong into an URI/URL (Issue #390)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xfce4-settings-4.16.4/configure 
new/xfce4-settings-4.16.5/configure
--- old/xfce4-settings-4.16.4/configure 2022-11-07 21:26:15.000000000 +0100
+++ new/xfce4-settings-4.16.5/configure 2022-11-12 23:25:47.000000000 +0100
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac 55e3c5fb.
+# From configure.ac f1cb5bda.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for xfce4-settings 4.16.4.
+# Generated by GNU Autoconf 2.71 for xfce4-settings 4.16.5.
 #
 # Report bugs to <https://bugzilla.xfce.org/>.
 #
@@ -625,8 +625,8 @@
 # Identity of this package.
 PACKAGE_NAME='xfce4-settings'
 PACKAGE_TARNAME='xfce4-settings'
-PACKAGE_VERSION='4.16.4'
-PACKAGE_STRING='xfce4-settings 4.16.4'
+PACKAGE_VERSION='4.16.5'
+PACKAGE_STRING='xfce4-settings 4.16.5'
 PACKAGE_BUGREPORT='https://bugzilla.xfce.org/'
 PACKAGE_URL=''
 
@@ -1545,7 +1545,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xfce4-settings 4.16.4 to adapt to many kinds of 
systems.
+\`configure' configures xfce4-settings 4.16.5 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1620,7 +1620,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xfce4-settings 4.16.4:";;
+     short | recursive ) echo "Configuration of xfce4-settings 4.16.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1784,7 +1784,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xfce4-settings configure 4.16.4
+xfce4-settings configure 4.16.5
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2043,7 +2043,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xfce4-settings $as_me 4.16.4, which was
+It was created by xfce4-settings $as_me 4.16.5, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3318,7 +3318,7 @@
 
 # Define the identity of the package.
  PACKAGE='xfce4-settings'
- VERSION='4.16.4'
+ VERSION='4.16.5'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -21955,7 +21955,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xfce4-settings $as_me 4.16.4, which was
+This file was extended by xfce4-settings $as_me 4.16.5, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22023,7 +22023,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-xfce4-settings config.status 4.16.4
+xfce4-settings config.status 4.16.5
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xfce4-settings-4.16.4/configure.ac 
new/xfce4-settings-4.16.5/configure.ac
--- old/xfce4-settings-4.16.4/configure.ac      2022-11-07 21:26:08.000000000 
+0100
+++ new/xfce4-settings-4.16.5/configure.ac      2022-11-12 23:25:39.000000000 
+0100
@@ -16,9 +16,9 @@
 dnl ***************************
 m4_define([xfce4_settings_version_major], [4])
 m4_define([xfce4_settings_version_minor], [16])
-m4_define([xfce4_settings_version_micro], [4])
+m4_define([xfce4_settings_version_micro], [5])
 m4_define([xfce4_settings_version_nano], [])
-m4_define([xfce4_settings_version_build], [55e3c5fb])
+m4_define([xfce4_settings_version_build], [f1cb5bda])
 m4_define([xfce4_settings_version_tag], []) # Leave empty for releases
 m4_define([xfce4_settings_version], 
[xfce4_settings_version_major().xfce4_settings_version_minor().xfce4_settings_version_micro()ifelse(xfce4_settings_version_nano(),
 [], [], [.xfce4_settings_version_nano()])ifelse(xfce4_settings_version_tag(), 
[git], [xfce4_settings_version_tag()-xfce4_settings_version_build()], 
[xfce4_settings_version_tag()])])
 
@@ -42,7 +42,7 @@
 AC_INIT([xfce4-settings], [xfce4_settings_version], 
[https://bugzilla.xfce.org/])
 AC_PREREQ([2.60])
 AC_CONFIG_MACRO_DIRS([m4])
-AC_REVISION([55e3c5fb])
+AC_REVISION([f1cb5bda])
 
 dnl ***************************
 dnl *** Initialize automake ***
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xfce4-settings-4.16.4/dialogs/mime-settings/xfce-mime-helper.c 
new/xfce4-settings-4.16.5/dialogs/mime-settings/xfce-mime-helper.c
--- old/xfce4-settings-4.16.4/dialogs/mime-settings/xfce-mime-helper.c  
2022-11-07 21:25:38.000000000 +0100
+++ new/xfce4-settings-4.16.5/dialogs/mime-settings/xfce-mime-helper.c  
2022-11-12 23:24:12.000000000 +0100
@@ -415,7 +415,7 @@
   gint          status;
   gint          result;
   gint          pid;
-  gchar        *real_parameter = NULL;
+  const gchar  *real_parameter = parameter;
 
   // FIXME: startup-notification
 
@@ -427,43 +427,23 @@
   if (G_UNLIKELY (screen == NULL))
     screen = gdk_screen_get_default ();
 
-  if (parameter != NULL)
-    {
-      if (helper->category == XFCE_MIME_HELPER_WEBBROWSER || helper->category 
== XFCE_MIME_HELPER_FILEMANAGER)
-        {
-          /* escape characters which do not belong into an URI/URL */
-          real_parameter = g_uri_escape_string (parameter, 
":/?#[]@!$&'()*+,;=%", TRUE);
-        }
-      else if (g_str_has_prefix (real_parameter, "mailto:";))
-        {
-          /* strip the mailto part if needed */
-          real_parameter = g_strdup (parameter + 7);
-        }
-      else
-        {
-          real_parameter = g_strdup (parameter);
-        }
-    }
+  /* strip the mailto part if needed */
+  if (real_parameter != NULL && g_str_has_prefix (real_parameter, "mailto:";))
+    real_parameter = parameter + 7;
 
   /* determine the command set to use */
-  if (exo_str_is_flag (real_parameter))
-    {
-      commands = helper->commands_with_flag;
-    }
-  else if (exo_str_is_empty (real_parameter))
-    {
-      commands = helper->commands;
-    }
-  else
-    {
-      commands = helper->commands_with_parameter;
-    }
+  if (exo_str_is_flag (real_parameter)) {
+    commands = helper->commands_with_flag;
+  } else if (exo_str_is_empty (real_parameter)) {
+    commands = helper->commands;
+  } else {
+    commands = helper->commands_with_parameter;
+  }
 
   /* verify that we have atleast one command */
   if (G_UNLIKELY (*commands == NULL))
     {
       g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_INVAL, _("No command 
specified"));
-      g_free (real_parameter);
       return FALSE;
     }
 
@@ -473,8 +453,43 @@
       /* reset the error */
       g_clear_error (&err);
 
+      /* prepare the command */
+      if (exo_str_is_empty (real_parameter))
+        command = g_strdup (commands[n]);
+      else
+        {
+          /* split command into "quoted"/unquoted parts */
+          gchar **cmd_parts = g_regex_split_simple ("(\"[^\"]*\")", 
commands[n], 0, 0);
+
+          /* walk the part array */
+          for (gchar **cmd_part = cmd_parts; *cmd_part != NULL; cmd_part++)
+            {
+              /* quoted part: unquote it, replace %s and re-quote it properly 
*/
+              if (g_str_has_prefix (*cmd_part, "\"") && g_str_has_suffix 
(*cmd_part, "\""))
+                {
+                  gchar *unquoted = g_strndup (*cmd_part + 1, strlen 
(*cmd_part) - 2);
+                  gchar *filled = exo_str_replace (unquoted, "%s", 
real_parameter);
+                  gchar *quoted = g_shell_quote (filled);
+                  g_free (filled);
+                  g_free (unquoted);
+                  g_free (*cmd_part);
+                  *cmd_part = quoted;
+                }
+              /* unquoted part: just replace %s */
+              else
+                {
+                  gchar *filled = exo_str_replace (*cmd_part, "%s", 
real_parameter);
+                  g_free (*cmd_part);
+                  *cmd_part = filled;
+                }
+            }
+
+          /* join parts to reconstitute the command, filled and quoted */
+          command = g_strjoinv (NULL, cmd_parts);
+          g_strfreev (cmd_parts);
+        }
+
       /* parse the command */
-      command = !exo_str_is_empty (real_parameter) ? exo_str_replace 
(commands[n], "%s", real_parameter) : g_strdup (commands[n]);
       succeed = g_shell_parse_argv (command, NULL, &argv, &err);
       g_free (command);
 
@@ -553,7 +568,6 @@
   if (G_UNLIKELY (!succeed))
     g_propagate_error (error, err);
 
-  g_free (real_parameter);
   return succeed;
 }
 

Reply via email to