mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-04 16:33:40 +02:00
Bug 560564 – Replacing a symlink with its linked file truncates the
2009-02-18 Alexander Larsson <alexl@redhat.com> Bug 560564 – Replacing a symlink with its linked file truncates the original file * gioenums.h: Add G_FILE_CREATE_REPLACE_DESTINATION * glocalfileoutputstream.c: (handle_overwrite_open): (_g_local_file_output_stream_replace): Handle G_FILE_CREATE_REPLACE_DESTINATION when overwriting files. * gfile.c: (file_copy_fallback): Pass G_FILE_CREATE_REPLACE_DESTINATION to g_file_replace when copying with overwrite. svn path=/trunk/; revision=7880
This commit is contained in:
committed by
Alexander Larsson
parent
3fd881b5bb
commit
0fd66d7e22
@@ -156,12 +156,21 @@ typedef enum {
|
||||
* @G_FILE_CREATE_NONE: No flags set.
|
||||
* @G_FILE_CREATE_PRIVATE: Create a file that can only be
|
||||
* accessed by the current user.
|
||||
* @G_FILE_CREATE_REPLACE_DESTINATION: Replace the destination
|
||||
* as if it didn't exist before. Don't try to keep any old
|
||||
* permissions, replace instead of following links. This
|
||||
* is generally useful if you're doing a "copy over"
|
||||
* rather than a "save new version of" replace operation.
|
||||
* You can think of it as "unlink destination" before
|
||||
* writing to it, although the implementation may not
|
||||
* be exactly like that.
|
||||
*
|
||||
* Flags used when an operation may create a file.
|
||||
*/
|
||||
typedef enum {
|
||||
G_FILE_CREATE_NONE = 0,
|
||||
G_FILE_CREATE_PRIVATE = (1 << 0)
|
||||
G_FILE_CREATE_PRIVATE = (1 << 0),
|
||||
G_FILE_CREATE_REPLACE_DESTINATION = (1 << 1)
|
||||
} GFileCreateFlags;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user