eina/efreet: open file with binary file on Windows
authorVincent Torri <vincent dot torri at gmail dot com>
Fri, 6 Nov 2015 18:30:57 +0000 (19:30 +0100)
committerCedric BAIL <cedric@osg.samsung.com>
Fri, 6 Nov 2015 18:53:29 +0000 (10:53 -0800)
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/bin/efreet/efreet_desktop_cache_create.c
src/lib/eina/eina_file_common.c

index db14d46..399cc81 100644 (file)
 #include <Ecore.h>
 #include <Ecore_File.h>
 
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
 #define EFREET_MODULE_LOG_DOM _efreet_desktop_cache_log_dom
 static int _efreet_desktop_cache_log_dom = -1;
 
@@ -207,7 +211,7 @@ cache_lock_file(void)
     int lockfd;
 
     snprintf(file, sizeof(file), "%s/efreet/desktop_data.lock", efreet_cache_home_get());
-    lockfd = open(file, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
+    lockfd = open(file, O_CREAT | O_BINARY | O_RDWR, S_IRUSR | S_IWUSR);
     if (lockfd < 0) return -1;
     efreet_fsetowner(lockfd);
 
index 367ba8b..4ffd2ed 100644 (file)
 # include <Escape.h>
 #endif
 
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
 #ifdef MAP_FAILED
 # undef MAP_FAILED
 #endif
@@ -874,13 +878,13 @@ eina_file_copy(const char *src, const char *dst, Eina_File_Copy_Flags flags, Ein
    EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE);
    EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE);
 
-   s = open(src, O_RDONLY);
+   s = open(src, O_RDONLY | O_BINARY);
    EINA_SAFETY_ON_TRUE_RETURN_VAL (s < 0, EINA_FALSE);
 
    success = (fstat(s, &st) == 0);
    EINA_SAFETY_ON_FALSE_GOTO(success, end);
 
-   d = open(dst, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
+   d = open(dst, O_WRONLY | O_BINARY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
    EINA_SAFETY_ON_TRUE_GOTO(d < 0, end);
 
    success = _eina_file_copy_internal(s, d, st.st_size, cb, cb_data);