544a51c531a3d943813fae6e7ac069a7e0f6a92d
[reactos.git] / reactos / lib / crtdll / old cruft / io / chmod.c
1 #include <precomp.h>
2 #include <msvcrt/io.h>
3
4 #define NDEBUG
5 #include <msvcrt/msvcrtdbg.h>
6
7 #define mode_t int
8
9
10 /*
11 * @implemented
12 */
13 int _chmod(const char* filename, mode_t mode)
14 {
15 DWORD FileAttributes = 0;
16 DPRINT("_chmod('%s', %x)\n", filename, mode);
17
18 FileAttributes = GetFileAttributesA(filename);
19 if ( FileAttributes == -1 )
20 return -1;
21
22 if ( mode == 0 )
23 return -1;
24
25 if ((mode & _S_IREAD) == _S_IREAD && (mode & _S_IWRITE) != _S_IWRITE)
26 FileAttributes &= FILE_ATTRIBUTE_READONLY;
27 else if (((mode & _S_IREAD) != _S_IREAD) && ((mode & _S_IWRITE) == _S_IWRITE))
28 FileAttributes &= FILE_ATTRIBUTE_NORMAL;
29 else
30 FileAttributes &= FILE_ATTRIBUTE_NORMAL;
31
32 if (SetFileAttributesA(filename, FileAttributes) == FALSE)
33 return -1;
34
35 return 1;
36 }