From: Nils Durner Date: Tue, 25 Aug 2009 20:49:20 +0000 (+0000) Subject: fix file open flag mapping on Windows X-Git-Tag: initial-import-from-subversion-38251~23589 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f01d2b04412a164258dbb77140eed02027ba24f7;p=oweals%2Fgnunet.git fix file open flag mapping on Windows --- diff --git a/src/util/disk.c b/src/util/disk.c index 7bf8e9753..e6d045106 100644 --- a/src/util/disk.c +++ b/src/util/disk.c @@ -1100,11 +1100,24 @@ GNUNET_DISK_file_open (const char *fn, int flags, ...) access = FILE_WRITE_DATA; if (flags & GNUNET_DISK_OPEN_FAILIFEXISTS) - disp = CREATE_NEW; - if (flags & GNUNET_DISK_OPEN_TRUNCATE) - disp = TRUNCATE_EXISTING; - if (flags & GNUNET_DISK_OPEN_CREATE) - disp |= OPEN_ALWAYS; + { + disp = CREATE_NEW; + } + else if (flags & GNUNET_DISK_OPEN_CREATE) + { + if (flags & GNUNET_DISK_OPEN_TRUNCATE) + disp = CREATE_ALWAYS; + else + disp = OPEN_ALWAYS; + } + else if (flags & GNUNET_DISK_OPEN_TRUNCATE) + { + disp = TRUNCATE_EXISTING; + } + else + { + disp = OPEN_ALWAYS; + } /* TODO: access priviledges? */ h = CreateFile (expfn, access, FILE_SHARE_DELETE | FILE_SHARE_READ