60 lines
1.9 KiB
Diff
60 lines
1.9 KiB
Diff
|
|
From ce0eb088a68171eed3ac217cb92a72e36eb57d1b Mon Sep 17 00:00:00 2001
|
||
|
|
From: Philip Withnall <pwithnall@endlessos.org>
|
||
|
|
Date: Wed, 10 Mar 2021 16:05:55 +0000
|
||
|
|
Subject: [PATCH 3/5] glocalfileoutputstream: Factor out a flag check
|
||
|
|
|
||
|
|
This clarifies the code a little. It introduces no functional changes.
|
||
|
|
|
||
|
|
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
|
||
|
|
|
||
|
|
Conflict:NA
|
||
|
|
Reference:https://gitlab.gnome.org/GNOME/glib/-/commit/01c5468e10707cbf78e6e83bbcf1ce9c866f2885
|
||
|
|
---
|
||
|
|
gio/glocalfileoutputstream.c | 9 +++++----
|
||
|
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/gio/glocalfileoutputstream.c b/gio/glocalfileoutputstream.c
|
||
|
|
index beb8fee..8b087f7 100644
|
||
|
|
--- a/gio/glocalfileoutputstream.c
|
||
|
|
+++ b/gio/glocalfileoutputstream.c
|
||
|
|
@@ -847,6 +847,7 @@ handle_overwrite_open (const char *filename,
|
||
|
|
int res;
|
||
|
|
int mode;
|
||
|
|
int errsv;
|
||
|
|
+ gboolean replace_destination_set = (flags & G_FILE_CREATE_REPLACE_DESTINATION);
|
||
|
|
|
||
|
|
mode = mode_from_flags_or_info (flags, reference_info);
|
||
|
|
|
||
|
|
@@ -953,8 +954,8 @@ handle_overwrite_open (const char *filename,
|
||
|
|
* The second strategy consist simply in copying the old file
|
||
|
|
* to a backup file and rewrite the contents of the file.
|
||
|
|
*/
|
||
|
|
-
|
||
|
|
- if ((flags & G_FILE_CREATE_REPLACE_DESTINATION) ||
|
||
|
|
+
|
||
|
|
+ if (replace_destination_set ||
|
||
|
|
(!(original_stat.st_nlink > 1) && !is_symlink))
|
||
|
|
{
|
||
|
|
char *dirname, *tmp_filename;
|
||
|
|
@@ -973,7 +974,7 @@ handle_overwrite_open (const char *filename,
|
||
|
|
|
||
|
|
/* try to keep permissions (unless replacing) */
|
||
|
|
|
||
|
|
- if ( ! (flags & G_FILE_CREATE_REPLACE_DESTINATION) &&
|
||
|
|
+ if (!replace_destination_set &&
|
||
|
|
(
|
||
|
|
#ifdef HAVE_FCHOWN
|
||
|
|
fchown (tmpfd, original_stat.st_uid, original_stat.st_gid) == -1 ||
|
||
|
|
@@ -1112,7 +1113,7 @@ handle_overwrite_open (const char *filename,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
- if (flags & G_FILE_CREATE_REPLACE_DESTINATION)
|
||
|
|
+ if (replace_destination_set)
|
||
|
|
{
|
||
|
|
g_close (fd, NULL);
|
||
|
|
|
||
|
|
--
|
||
|
|
2.23.0
|
||
|
|
|