From def11e34d75ea14e4f9f44d75e6da19eba47a7a4 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Thu, 18 Jul 2019 13:35:15 +0000 Subject: user/xdg-utils: fix many papercuts via fd.o MRs --- user/xdg-utils/xdg-open-failure.patch | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 user/xdg-utils/xdg-open-failure.patch (limited to 'user/xdg-utils/xdg-open-failure.patch') diff --git a/user/xdg-utils/xdg-open-failure.patch b/user/xdg-utils/xdg-open-failure.patch new file mode 100644 index 000000000..022d4614d --- /dev/null +++ b/user/xdg-utils/xdg-open-failure.patch @@ -0,0 +1,43 @@ +From 0ad418b2543b532ec82298ac2660d3f222f10882 Mon Sep 17 00:00:00 2001 +From: KARBOWSKI Piotr +Date: Sun, 23 Jun 2019 11:39:40 +0200 +Subject: [PATCH] xdg-open: Exit also on non-zero exit status from 'Exec' + .desktop entry. + +Currently if the tool that was taken out of .desktop file Exec field +will exit with non-zero exit code, xdg-open will then fallback to +open_generic() from search_desktop_file(), which will lead to opening +again the same file with the same tool and ending on opening the file +with web browser. + +This may lead to situation when for example text editor that fails to +write file on exit, will open the unchanged file with web browsr. + +Another real life example is if one were to exit from mpv with +control-C, xdg-open will again start mpv, then it will try to start +x-web-browser and ending with starting a browser from list -- firefox in +my case. + +This must be a bug as it's not docummented anywhere. If we got to the +point where we exec $command_exec then xdg-open must exit even if +whatever was executed by $command_exec returned non-zero exit status. +--- + scripts/xdg-open.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index 202f3e3..7cfdde0 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -325,6 +325,8 @@ search_desktop_file() + + if [ $? -eq 0 ]; then + exit_success ++ else ++ exit_failure_operation_failed + fi + fi + +-- +2.21.0 + -- cgit v1.2.3-70-g09d2