summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip@tecnocode.co.uk>2022-07-25 10:15:20 +0000
committerPhilip Withnall <philip@tecnocode.co.uk>2022-07-25 10:15:20 +0000
commitf2aeba9a08587db0a1d21b68e42fc32492f93adf (patch)
tree7cf0877b5f67f89448ae74caa860db826e52b3f3
parent30c840a7556f41e0f21751e91294f711304cd947 (diff)
parent94e05f7f289069aaf8ad894d3308eb5f324f12c9 (diff)
downloadglib-f2aeba9a08587db0a1d21b68e42fc32492f93adf.tar.gz
Merge branch 'wip/smcv/gio-launch-desktop-sd-journal' into 'main'
gio-launch-desktop: Only replace fds that point to the Journal See merge request GNOME/glib!2836
-rw-r--r--gio/gio-launch-desktop.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gio/gio-launch-desktop.c b/gio/gio-launch-desktop.c
index 9ed6712f7..29bf9d5d4 100644
--- a/gio/gio-launch-desktop.c
+++ b/gio/gio-launch-desktop.c
@@ -187,11 +187,16 @@ fail:
static void
set_up_journal (const char *argv1)
{
+ int stdout_is_journal;
+ int stderr_is_journal;
const char *identifier;
const char *slash;
int fd;
- if (!_g_fd_is_journal (STDOUT_FILENO) && !_g_fd_is_journal (STDERR_FILENO))
+ stdout_is_journal = _g_fd_is_journal (STDOUT_FILENO);
+ stderr_is_journal = _g_fd_is_journal (STDERR_FILENO);
+
+ if (!stdout_is_journal && !stderr_is_journal)
return;
identifier = getenv ("GIO_LAUNCHED_DESKTOP_FILE");
@@ -210,14 +215,14 @@ set_up_journal (const char *argv1)
if (fd < 0)
return;
- if (dup2 (fd, STDOUT_FILENO) != STDOUT_FILENO)
+ if (stdout_is_journal && dup2 (fd, STDOUT_FILENO) != STDOUT_FILENO)
fprintf (stderr,
"gio-launch-desktop[%d]: Unable to redirect \"%s\" to Journal: %s",
getpid (),
identifier,
strerror (errno));
- if (dup2 (fd, STDERR_FILENO) != STDERR_FILENO)
+ if (stderr_is_journal && dup2 (fd, STDERR_FILENO) != STDERR_FILENO)
fprintf (stderr,
"gio-launch-desktop[%d]: Unable to redirect \"%s\" to Journal: %s",
getpid (),