nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=0aadc6d5c5d988f1b0259c7eced4e07e3be9082d

commit 0aadc6d5c5d988f1b0259c7eced4e07e3be9082d
Author: Ivan Furs <i.f...@samsung.com>
Date:   Tue Aug 16 15:42:00 2016 +0300

    [Bug][Hosting][wWindows] Bypass  F_GETLK(Linux API) for Windows
    
    Reviewers: reutskiy.v.v, cedric, raster, NikaWhite
    
    Subscribers: artem.popov, raster
    
    Tags: #eflete
    
    Differential Revision: https://phab.enlightenment.org/D4231
---
 src/bin/project_manager/project_manager.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/bin/project_manager/project_manager.c 
b/src/bin/project_manager/project_manager.c
index 9b88c76..ee9d8f4 100644
--- a/src/bin/project_manager/project_manager.c
+++ b/src/bin/project_manager/project_manager.c
@@ -48,6 +48,7 @@ _project_dev_file_create(Project *pro)
 Eina_Bool
 _lock_try(const char *path, Eina_Bool check)
 {
+#ifndef _WIN32
    struct flock lock, savelock;
 
    int fd = open(path, O_RDWR);
@@ -69,7 +70,19 @@ _lock_try(const char *path, Eina_Bool check)
         savelock.l_pid = getpid();
         fcntl(fd, F_SETLK, &savelock);
      }
-
+#else
+   LPOFSTRUCT lpReOpenBuff;
+   HFILE fd = OpenFile(path, lpReOpenBuff, OF_READWRITE);
+   if (fd == HFILE_ERROR)
+     {
+       ERR("The file '%s' cannot be opened in mode read-write!", path);
+       return false;
+     }
+   if (!check)
+     {
+       CloseHandle(fd);
+     }
+#endif
    return true;
 }
 

-- 


Reply via email to