7bc92346ccafc8ca954332a7fb68163c3e5fea41
6 #include <internal/file.h>
9 #include <internal/debug.h>
18 int _tchmod(const _TCHAR
* filename
, mode_t mode
)
20 DWORD FileAttributes
= 0;
23 DPRINT(#_tchmod"('%"sT"', %x)\n", filename, mode);
25 FileAttributes
= GetFileAttributes(filename
);
26 if ( FileAttributes
== (DWORD
)-1 ) {
27 _dosmaperr(GetLastError());
34 if (mode
& _S_IWRITE
) {
35 if (FileAttributes
& FILE_ATTRIBUTE_READONLY
) {
36 FileAttributes
&= ~FILE_ATTRIBUTE_READONLY
;
40 if (!(FileAttributes
& FILE_ATTRIBUTE_READONLY
)) {
41 FileAttributes
|= FILE_ATTRIBUTE_READONLY
;
45 if (Set
&& SetFileAttributes(filename
, FileAttributes
) == FALSE
) {
46 _dosmaperr(GetLastError());