Author: sserapion
Date: Sat Sep 13 02:12:22 2008
New Revision: 36176
URL:
http://svn.reactos.org/svn/reactos?rev=36176&view=rev
Log:
Move several functions out of file.c, use common code for 64bit, 32bit, unicode and
non-unicode versions and provide proper definition. Fixes amd64 build of crt lib. (nothing
tested)
Added:
branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find64.c (with props)
branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat.c (with props)
branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat64.c (with props)
branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wstat.c (with props)
Modified:
branches/ros-amd64-bringup/reactos/lib/sdk/crt/crt.rbuild
branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/file.c
branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find.c
branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wfind.c
Modified: branches/ros-amd64-bringup/reactos/lib/sdk/crt/crt.rbuild
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/crt.rbuild [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/crt.rbuild [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -259,15 +259,19 @@
</directory>
<directory name="stdio">
<file>access.c</file>
- <!-- file>file.c</file -->
- <!-- file>find.c</file -->
+ <file>file.c</file>
+ <file>find.c</file>
+ <file>find64.c</file>
<file>fmode.c</file>
<file>lnx_sprintf.c</file>
<file>perror.c</file>
<file>popen.c</file>
+ <file>stat.c</file>
+ <file>stat64.c</file>
<file>waccess.c</file>
- <!-- file>wfind.c</file -->
+ <file>wfind.c</file>
<file>wpopen.c</file>
+ <file>wstat.c</file>
</directory>
<directory name="stdlib">
<file>_exit.c</file>
Modified: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/file.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/file.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/file.c [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -68,11 +68,6 @@
#undef vprintf
#undef vwprintf
-/* for stat mode, permissions apply to all,owner and group */
-#define ALL_S_IREAD (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6))
-#define ALL_S_IWRITE (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6))
-#define ALL_S_IEXEC (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6))
-
/* _access() bit flags FIXME: incomplete */
/* defined in crt/io.h */
@@ -94,7 +89,7 @@
DWORD unkn[7]; /* critical section and init flag */
} ioinfo;
-/*static */ioinfo fdesc[MAX_FILES];
+ioinfo fdesc[MAX_FILES];
FILE _iob[3] = { { 0 } };
@@ -109,17 +104,6 @@
/* INTERNAL: Static buffer for temp file name */
static char tmpname[MAX_PATH];
-
-static const unsigned int EXE = 'e' << 16 | 'x' << 8 |
'e';
-static const unsigned int BAT = 'b' << 16 | 'a' << 8 |
't';
-static const unsigned int CMD = 'c' << 16 | 'm' << 8 |
'd';
-static const unsigned int COM = 'c' << 16 | 'o' << 8 |
'm';
-
-#define TOUL(x) (ULONGLONG)(x)
-static const ULONGLONG WCEXE = TOUL('e') << 32 | TOUL('x') <<
16 | TOUL('e');
-static const ULONGLONG WCBAT = TOUL('b') << 32 | TOUL('a') <<
16 | TOUL('t');
-static const ULONGLONG WCCMD = TOUL('c') << 32 | TOUL('m') <<
16 | TOUL('d');
-static const ULONGLONG WCCOM = TOUL('c') << 32 | TOUL('o') <<
16 | TOUL('m');
/* This critical section protects the tables fdesc and fstreams,
* and their related indexes, fdstart, fdend,
@@ -132,23 +116,6 @@
#define LOCK_FILES() do { EnterCriticalSection(&FILE_cs); } while (0)
#define UNLOCK_FILES() do { LeaveCriticalSection(&FILE_cs); } while (0)
-#ifndef _WIN64
-static void stat64_to_stati64(const struct __stat64 *buf64, struct _stati64 *buf)
-{
- buf->st_dev = buf64->st_dev;
- buf->st_ino = buf64->st_ino;
- buf->st_mode = buf64->st_mode;
- buf->st_nlink = buf64->st_nlink;
- buf->st_uid = buf64->st_uid;
- buf->st_gid = buf64->st_gid;
- buf->st_rdev = buf64->st_rdev;
- buf->st_size = buf64->st_size;
- buf->st_atime = buf64->st_atime;
- buf->st_mtime = buf64->st_mtime;
- buf->st_ctime = buf64->st_ctime;
-}
-#endif
-
static inline BOOL is_valid_fd(int fd)
{
return fd >= 0 && fd < fdend && (fdesc[fd].wxflag &
WX_OPEN);
@@ -160,7 +127,7 @@
* it returns a valid handle which is about to be closed, a subsequent call
* will fail, most likely in a sane way.
*/
-static HANDLE fdtoh(int fd)
+HANDLE fdtoh(int fd)
{
if (!is_valid_fd(fd))
{
@@ -1147,138 +1114,6 @@
{
TRACE(":FILE* (%p) fd (%d)\n",file,file->_file);
return file->_file;
-}
-
-/*********************************************************************
- * _fstat64 (MSVCRT.@)
- */
-int CDECL _fstat64(int fd, struct _stat64* buf)
-{
- DWORD dw;
- DWORD type;
- BY_HANDLE_FILE_INFORMATION hfi;
- HANDLE hand = fdtoh(fd);
-
- TRACE(":fd (%d) stat (%p)\n",fd,buf);
- if (hand == INVALID_HANDLE_VALUE)
- return -1;
-
- if (!buf)
- {
- WARN(":failed-NULL buf\n");
- __set_errno(ERROR_INVALID_PARAMETER);
- return -1;
- }
-
- memset(&hfi, 0, sizeof(hfi));
- memset(buf, 0, sizeof(struct __stat64));
- type = GetFileType(hand);
- if (type == FILE_TYPE_PIPE)
- {
- buf->st_dev = buf->st_rdev = fd;
- buf->st_mode = S_IFIFO;
- buf->st_nlink = 1;
- }
- else if (type == FILE_TYPE_CHAR)
- {
- buf->st_dev = buf->st_rdev = fd;
- buf->st_mode = S_IFCHR;
- buf->st_nlink = 1;
- }
- else /* FILE_TYPE_DISK etc. */
- {
- if (!GetFileInformationByHandle(hand, &hfi))
- {
- WARN(":failed-last error (%d)\n",GetLastError());
- __set_errno(ERROR_INVALID_PARAMETER);
- return -1;
- }
- buf->st_mode = S_IFREG | S_IREAD;
- if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
- buf->st_mode |= S_IWRITE;
- buf->st_size = ((__int64)hfi.nFileSizeHigh << 32) + hfi.nFileSizeLow;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
- buf->st_atime = dw;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
- buf->st_mtime = buf->st_ctime = dw;
- buf->st_nlink = hfi.nNumberOfLinks;
- }
- TRACE(":dwFileAttributes = 0x%x, mode set to 0x%x\n",hfi.dwFileAttributes,
- buf->st_mode);
- return 0;
-}
-
-/*********************************************************************
- * _fstati64 (MSVCRT.@)
- */
-int CDECL _fstati64(int fd, struct _stati64* buf)
-{
- int ret;
- struct __stat64 buf64;
-
- ret = _fstat64(fd, &buf64);
- if (!ret)
- stat64_to_stati64(&buf64, buf);
- return ret;
-}
-
-/*********************************************************************
- * _fstat (MSVCRT.@)
- */
-int CDECL _fstat(int fd, struct _stat32* buf)
-{
- DWORD dw;
- DWORD type;
- BY_HANDLE_FILE_INFORMATION hfi;
- HANDLE hand = fdtoh(fd);
-
- TRACE(":fd (%d) stat (%p)\n",fd,buf);
- if (hand == INVALID_HANDLE_VALUE)
- return -1;
-
- if (!buf)
- {
- WARN(":failed-NULL buf\n");
- __set_errno(ERROR_INVALID_PARAMETER);
- return -1;
- }
-
- memset(&hfi, 0, sizeof(hfi));
- memset(buf, 0, sizeof(struct _stat32));
- type = GetFileType(hand);
- if (type == FILE_TYPE_PIPE)
- {
- buf->st_dev = buf->st_rdev = fd;
- buf->st_mode = S_IFIFO;
- buf->st_nlink = 1;
- }
- else if (type == FILE_TYPE_CHAR)
- {
- buf->st_dev = buf->st_rdev = fd;
- buf->st_mode = S_IFCHR;
- buf->st_nlink = 1;
- }
- else /* FILE_TYPE_DISK etc. */
- {
- if (!GetFileInformationByHandle(hand, &hfi))
- {
- WARN(":failed-last error (%d)\n",GetLastError());
- __set_errno(ERROR_INVALID_PARAMETER);
- return -1;
- }
- buf->st_mode = S_IFREG | S_IREAD;
- if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
- buf->st_mode |= S_IWRITE;
- buf->st_size = ((__int32)hfi.nFileSizeHigh << 16) + hfi.nFileSizeLow;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
- buf->st_atime = dw;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
- buf->st_mtime = buf->st_ctime = dw;
- buf->st_nlink = hfi.nNumberOfLinks;
- }
- TRACE(":dwFileAttributes = 0x%x, mode set to 0x%x\n",hfi.dwFileAttributes,
- buf->st_mode);
- return 0;
}
/*********************************************************************
@@ -1827,290 +1662,6 @@
else
fdesc[fd].wxflag &= ~WX_TEXT;
return ret;
-}
-
-/*********************************************************************
- * _stat64 (MSVCRT.@)
- */
-int CDECL _stat64(const char* path, struct __stat64 * buf)
-{
- DWORD dw;
- WIN32_FILE_ATTRIBUTE_DATA hfi;
- unsigned short mode = ALL_S_IREAD;
- int plen;
-
- TRACE(":file (%s) buf(%p)\n",path,buf);
-
- if (!GetFileAttributesExA(path, GetFileExInfoStandard, &hfi))
- {
- TRACE("failed (%d)\n",GetLastError());
- __set_errno(ERROR_FILE_NOT_FOUND);
- return -1;
- }
-
- memset(buf,0,sizeof(struct __stat64));
-
- /* FIXME: rdev isn't drive num, despite what the docs say-what is it?
- Bon 011120: This FIXME seems incorrect
- Also a letter as first char isn't enough to be classified
- as a drive letter
- */
- if (isalpha(*path)&& (*(path+1)==':'))
- buf->st_dev = buf->st_rdev = toupper(*path) - 'A'; /* drive num */
- else
- buf->st_dev = buf->st_rdev = _getdrive() - 1;
-
- plen = strlen(path);
-
- /* Dir, or regular file? */
- if ((hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
- (path[plen-1] == '\\'))
- mode |= (_S_IFDIR | ALL_S_IEXEC);
- else
- {
- mode |= _S_IFREG;
- /* executable? */
- if (plen > 6 && path[plen-4] == '.') /* shortest exe:
"\x.exe" */
- {
- unsigned int ext = tolower(path[plen-1]) | (tolower(path[plen-2]) << 8) |
- (tolower(path[plen-3]) << 16);
- if (ext == EXE || ext == BAT || ext == CMD || ext == COM)
- mode |= ALL_S_IEXEC;
- }
- }
-
- if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
- mode |= ALL_S_IWRITE;
-
- buf->st_mode = mode;
- buf->st_nlink = 1;
- buf->st_size = ((__int64)hfi.nFileSizeHigh << 32) + hfi.nFileSizeLow;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
- buf->st_atime = dw;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
- buf->st_mtime = buf->st_ctime = dw;
- TRACE("%d %d 0x%08lx%08lx %ld %ld %ld\n", buf->st_mode,buf->st_nlink,
- (long)(buf->st_size >> 32),(long)buf->st_size,
- (long)buf->st_atime,(long)buf->st_mtime,(long)buf->st_ctime);
- return 0;
-}
-
-/*********************************************************************
- * _stati64 (MSVCRT.@)
- */
-int CDECL _stati64(const char* path, struct _stati64 * buf)
-{
- int ret;
- struct __stat64 buf64;
-
- ret = _stat64(path, &buf64);
- if (!ret)
- stat64_to_stati64(&buf64, buf);
- return ret;
-}
-
-/*********************************************************************
- * _stat (MSVCRT.@)
- */
-int CDECL _stat32(const char* path, struct _stat32 * buf)
-{
- DWORD dw;
- WIN32_FILE_ATTRIBUTE_DATA hfi;
- unsigned short mode = ALL_S_IREAD;
- int plen;
-
- TRACE(":file (%s) buf(%p)\n",path,buf);
-
- if (!GetFileAttributesExA(path, GetFileExInfoStandard, &hfi))
- {
- TRACE("failed (%d)\n",GetLastError());
- __set_errno(ERROR_FILE_NOT_FOUND);
- return -1;
- }
-
- memset(buf,0,sizeof(struct _stat32));
-
- /* FIXME: rdev isn't drive num, despite what the docs say-what is it?
- Bon 011120: This FIXME seems incorrect
- Also a letter as first char isn't enough to be classified
- as a drive letter
- */
- if (isalpha(*path)&& (*(path+1)==':'))
- buf->st_dev = buf->st_rdev = toupper(*path) - 'A'; /* drive num */
- else
- buf->st_dev = buf->st_rdev = _getdrive() - 1;
-
- plen = strlen(path);
-
- /* Dir, or regular file? */
- if ((hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
- (path[plen-1] == '\\'))
- mode |= (_S_IFDIR | ALL_S_IEXEC);
- else
- {
- mode |= _S_IFREG;
- /* executable? */
- if (plen > 6 && path[plen-4] == '.') /* shortest exe:
"\x.exe" */
- {
- unsigned int ext = tolower(path[plen-1]) | (tolower(path[plen-2]) << 8) |
- (tolower(path[plen-3]) << 16);
- if (ext == EXE || ext == BAT || ext == CMD || ext == COM)
- mode |= ALL_S_IEXEC;
- }
- }
-
- if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
- mode |= ALL_S_IWRITE;
-
- buf->st_mode = mode;
- buf->st_nlink = 1;
- buf->st_size = ((__int32)hfi.nFileSizeHigh << 16) + hfi.nFileSizeLow;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
- buf->st_atime = dw;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
- buf->st_mtime = buf->st_ctime = dw;
- TRACE("%d %d 0x%08lx%08lx %ld %ld %ld\n", buf->st_mode,buf->st_nlink,
- (long)(buf->st_size >> 16),(long)buf->st_size,
- (long)buf->st_atime,(long)buf->st_mtime,(long)buf->st_ctime);
- return 0;
-}
-
-/*********************************************************************
- * _wstat64 (MSVCRT.@)
- */
-int CDECL _wstat64(const wchar_t* path, struct __stat64 * buf)
-{
- DWORD dw;
- WIN32_FILE_ATTRIBUTE_DATA hfi;
- unsigned short mode = ALL_S_IREAD;
- int plen;
-
- TRACE(":file (%s) buf(%p)\n",debugstr_w(path),buf);
-
- if (!GetFileAttributesExW(path, GetFileExInfoStandard, &hfi))
- {
- TRACE("failed (%d)\n",GetLastError());
- __set_errno(ERROR_FILE_NOT_FOUND);
- return -1;
- }
-
- memset(buf,0,sizeof(struct __stat64));
-
- /* FIXME: rdev isn't drive num, despite what the docs says-what is it? */
- if (iswalpha(*path))
- buf->st_dev = buf->st_rdev = toupperW(*path - 'A'); /* drive num */
- else
- buf->st_dev = buf->st_rdev = _getdrive() - 1;
-
- plen = strlenW(path);
-
- /* Dir, or regular file? */
- if ((hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
- (path[plen-1] == '\\'))
- mode |= (_S_IFDIR | ALL_S_IEXEC);
- else
- {
- mode |= _S_IFREG;
- /* executable? */
- if (plen > 6 && path[plen-4] == '.') /* shortest exe:
"\x.exe" */
- {
- ULONGLONG ext = tolowerW(path[plen-1]) | (tolowerW(path[plen-2]) << 16) |
- ((ULONGLONG)tolowerW(path[plen-3]) << 32);
- if (ext == WCEXE || ext == WCBAT || ext == WCCMD || ext == WCCOM)
- mode |= ALL_S_IEXEC;
- }
- }
-
- if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
- mode |= ALL_S_IWRITE;
-
- buf->st_mode = mode;
- buf->st_nlink = 1;
- buf->st_size = ((__int64)hfi.nFileSizeHigh << 32) + hfi.nFileSizeLow;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
- buf->st_atime = dw;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
- buf->st_mtime = buf->st_ctime = dw;
- TRACE("%d %d 0x%08lx%08lx %ld %ld %ld\n", buf->st_mode,buf->st_nlink,
- (long)(buf->st_size >> 32),(long)buf->st_size,
- (long)buf->st_atime,(long)buf->st_mtime,(long)buf->st_ctime);
- return 0;
-}
-
-/*********************************************************************
- * _wstati64 (MSVCRT.@)
- */
-int CDECL _wstati64(const wchar_t* path, struct _stati64 * buf)
-{
- int ret;
- struct __stat64 buf64;
-
- ret = _wstat64(path, &buf64);
- if (!ret)
- stat64_to_stati64(&buf64, buf);
- return ret;
-}
-
-/*********************************************************************
- * _wstat (MSVCRT.@)
- */
-int CDECL _wstat32(const wchar_t* path, struct _stat32 * buf)
-{
- DWORD dw;
- WIN32_FILE_ATTRIBUTE_DATA hfi;
- unsigned short mode = ALL_S_IREAD;
- int plen;
-
- TRACE(":file (%s) buf(%p)\n",debugstr_w(path),buf);
-
- if (!GetFileAttributesExW(path, GetFileExInfoStandard, &hfi))
- {
- TRACE("failed (%d)\n",GetLastError());
- __set_errno(ERROR_FILE_NOT_FOUND);
- return -1;
- }
-
- memset(buf,0,sizeof(struct _stat32));
-
- /* FIXME: rdev isn't drive num, despite what the docs says-what is it? */
- if (iswalpha(*path))
- buf->st_dev = buf->st_rdev = toupperW(*path - 'A'); /* drive num */
- else
- buf->st_dev = buf->st_rdev = _getdrive() - 1;
-
- plen = strlenW(path);
-
- /* Dir, or regular file? */
- if ((hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
- (path[plen-1] == '\\'))
- mode |= (_S_IFDIR | ALL_S_IEXEC);
- else
- {
- mode |= _S_IFREG;
- /* executable? */
- if (plen > 6 && path[plen-4] == '.') /* shortest exe:
"\x.exe" */
- {
- ULONGLONG ext = tolowerW(path[plen-1]) | (tolowerW(path[plen-2]) << 16) |
- ((ULONGLONG)tolowerW(path[plen-3]) << 32);
- if (ext == WCEXE || ext == WCBAT || ext == WCCMD || ext == WCCOM)
- mode |= ALL_S_IEXEC;
- }
- }
-
- if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
- mode |= ALL_S_IWRITE;
-
- buf->st_mode = mode;
- buf->st_nlink = 1;
- buf->st_size = ((__int32)hfi.nFileSizeHigh << 16) + hfi.nFileSizeLow;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
- buf->st_atime = dw;
- RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
- buf->st_mtime = buf->st_ctime = dw;
- TRACE("%d %d 0x%08lx%08lx %ld %ld %ld\n", buf->st_mode,buf->st_nlink,
- (long)(buf->st_size >> 16),(long)buf->st_size,
- (long)buf->st_atime,(long)buf->st_mtime,(long)buf->st_ctime);
- return 0;
}
/*********************************************************************
Modified: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find.c [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -1,106 +1,5 @@
-#include <precomp.h>
-#include <tchar.h>
-#include <io.h>
-/*
- * @implemented
- */
-intptr_t
-_tfindfirst(const _TCHAR* _name, struct _tfinddata_t* result)
-{
- WIN32_FIND_DATA FindFileData;
- long hFindFile;
-
- hFindFile = (intptr_t)FindFirstFile(_name, &FindFileData);
- if (hFindFile == -1) {
- _dosmaperr(GetLastError());
- return -1;
- }
-
- result->attrib = FindFileData.dwFileAttributes;
- result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
- result->time_access =
FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
- result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
- result->size = FindFileData.nFileSizeLow;
- _tcsncpy(result->name,FindFileData.cFileName,MAX_PATH);
-
- return hFindFile;
-}
-
-/*
- * @implemented
- */
-intptr_t _tfindnext(intptr_t handle, struct _tfinddata_t* result)
-{
- WIN32_FIND_DATA FindFileData;
-
- if (!FindNextFile((void*)handle, &FindFileData)) {
- _dosmaperr(GetLastError());
- return -1;
- }
-
- result->attrib = FindFileData.dwFileAttributes;
- result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
- result->time_access =
FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
- result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
- result->size = FindFileData.nFileSizeLow;
- _tcsncpy(result->name,FindFileData.cFileName, MAX_PATH);
-
- return 0;
-}
-
-
-/*
- * @implemented
- */
-intptr_t _tfindfirsti64(const _TCHAR *_name, struct _tfinddatai64_t *result)
-{
- WIN32_FIND_DATA FindFileData;
- long hFindFile;
-
- hFindFile = (intptr_t)FindFirstFile(_name, &FindFileData);
- if (hFindFile == -1)
- {
- _dosmaperr(GetLastError());
- return -1;
- }
-
- result->attrib = FindFileData.dwFileAttributes;
- result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
- result->time_access = FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
- result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
- result->size =
- (((__int64)FindFileData.nFileSizeLow)<<32) + FindFileData.nFileSizeLow;
- _tcsncpy(result->name,FindFileData.cFileName,MAX_PATH);
-
- return hFindFile;
-}
-
-/*
- * @implemented
- */
-int _tfindnexti64(intptr_t handle, struct _tfinddatai64_t *result)
-{
- WIN32_FIND_DATA FindFileData;
-
- if (!FindNextFile((HANDLE)handle, &FindFileData)) {
- _dosmaperr(GetLastError());
- return -1;
- }
-
- result->attrib = FindFileData.dwFileAttributes;
- result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
- result->time_access = FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
- result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
- result->size =
- (((__int64)FindFileData.nFileSizeLow)<<32) + FindFileData.nFileSizeLow;
- _tcsncpy(result->name,FindFileData.cFileName,MAX_PATH);
-
- return 0;
-}
-
-
-
-#ifndef _UNICODE
+#define _USE_FIND64 0
+#include "find64.c"
/*
* @implemented
@@ -114,5 +13,3 @@
return 0;
}
-
-#endif
Added: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find64.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find64.c (added)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find64.c [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -1,0 +1,119 @@
+#include <precomp.h>
+#include <tchar.h>
+#include <io.h>
+
+#ifndef _USE_FIND64
+#define _USE_FIND64 1
+#endif
+
+/*
+ * @implemented
+ */
+#if _USE_FIND64
+intptr_t _tfindfirst32i64(const _TCHAR* _name, struct _tfinddata32i64_t* result)
+#else
+intptr_t _tfindfirst32(const _TCHAR* _name, struct _tfinddata32_t* result)
+#endif
+{
+ WIN32_FIND_DATA FindFileData;
+ HANDLE hFindFile;
+
+ hFindFile = FindFirstFile(_name, &FindFileData);
+ if (hFindFile == INVALID_HANDLE_VALUE) {
+ _dosmaperr(GetLastError());
+ return -1;
+ }
+
+ result->attrib = FindFileData.dwFileAttributes;
+ result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
+ result->time_access =
FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
+ result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
+ result->size = FindFileData.nFileSizeLow;
+ _tcsncpy(result->name,FindFileData.cFileName,MAX_PATH);
+
+ return (intptr_t)hFindFile;
+}
+
+/*
+ * @implemented
+ */
+#if _USE_FIND64
+int _tfindnext32i64(intptr_t handle, struct _tfinddata32i64_t* result)
+#else
+int _tfindnext32(intptr_t handle, struct _tfinddata32_t* result)
+#endif
+{
+ WIN32_FIND_DATA FindFileData;
+
+ if (!FindNextFile((HANDLE)handle, &FindFileData)) {
+ _dosmaperr(GetLastError());
+ return -1;
+ }
+
+ result->attrib = FindFileData.dwFileAttributes;
+ result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
+ result->time_access =
FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
+ result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
+ result->size = FindFileData.nFileSizeLow;
+ _tcsncpy(result->name,FindFileData.cFileName, MAX_PATH);
+
+ return 0;
+}
+
+
+/*
+ * @implemented
+ */
+#if _USE_FIND64
+intptr_t _tfindfirst64(const _TCHAR *_name, struct _tfinddata64_t *result)
+#else
+intptr_t _tfindfirst64i32(const _TCHAR *_name, struct _tfinddata64i32_t *result)
+#endif
+{
+ WIN32_FIND_DATA FindFileData;
+ HANDLE hFindFile;
+
+ hFindFile = FindFirstFile(_name, &FindFileData);
+ if (hFindFile == INVALID_HANDLE_VALUE) {
+ _dosmaperr(GetLastError());
+ return -1;
+ }
+
+ result->attrib = FindFileData.dwFileAttributes;
+ result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
+ result->time_access = FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
+ result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
+ result->size =
+ (((__int64)FindFileData.nFileSizeLow)<<32) + FindFileData.nFileSizeLow;
+ _tcsncpy(result->name,FindFileData.cFileName,MAX_PATH);
+
+ return (intptr_t)hFindFile;
+}
+
+/*
+ * @implemented
+ */
+#if _USE_FIND64
+int _tfindnext64(intptr_t handle, struct _tfinddata64_t *result)
+#else
+int _tfindnext64i32(intptr_t handle, struct _tfinddata64i32_t *result)
+#endif
+{
+ WIN32_FIND_DATA FindFileData;
+
+ if (!FindNextFile((HANDLE)handle, &FindFileData)) {
+ _dosmaperr(GetLastError());
+ return -1;
+ }
+
+ result->attrib = FindFileData.dwFileAttributes;
+ result->time_create = FileTimeToUnixTime(&FindFileData.ftCreationTime,NULL);
+ result->time_access = FileTimeToUnixTime(&FindFileData.ftLastAccessTime,NULL);
+ result->time_write = FileTimeToUnixTime(&FindFileData.ftLastWriteTime,NULL);
+ result->size =
+ (((__int64)FindFileData.nFileSizeLow)<<32) + FindFileData.nFileSizeLow;
+ _tcsncpy(result->name,FindFileData.cFileName,MAX_PATH);
+
+ return 0;
+}
+
Propchange: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/find64.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat.c (added)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat.c [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -1,0 +1,15 @@
+#define _USE_STAT64 0
+#include "stat64.c"
+
+
+//only version needed
+//int CDECL _fstati64(int fd, struct _stati64* buf)
+//{
+// int ret;
+// struct __stat64 buf64;
+//
+// ret = _fstat64(fd, &buf64);
+// if (!ret)
+// stat64_to_stati64(&buf64, buf);
+// return ret;
+//}
Propchange: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat64.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat64.c (added)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat64.c [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -1,0 +1,365 @@
+#include <precomp.h>
+#include "wine/unicode.h"
+
+#include <direct.h>
+#include <tchar.h>
+#include <sys/stat.h>
+
+#ifndef _UNICODE
+#include <string.h>
+#endif
+
+#ifndef _USE_STAT64
+#define _USE_STAT64 1
+#endif
+
+/* for stat mode, permissions apply to all,owner and group */
+#define ALL_S_IREAD (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6))
+#define ALL_S_IWRITE (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6))
+#define ALL_S_IEXEC (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6))
+
+#define EXE ('e' << 16 | 'x' << 8 | 'e')
+#define BAT ('b' << 16 | 'a' << 8 | 't')
+#define CMD ('c' << 16 | 'm' << 8 | 'd')
+#define COM ('c' << 16 | 'o' << 8 | 'm')
+
+#define TOUL(x) (ULONGLONG)(x)
+#define WCEXE (TOUL('e') << 32 | TOUL('x') << 16 |
TOUL('e'))
+#define WCBAT (TOUL('b') << 32 | TOUL('a') << 16 |
TOUL('t'))
+#define WCCMD (TOUL('c') << 32 | TOUL('m') << 16 |
TOUL('d'))
+#define WCCOM (TOUL('c') << 32 | TOUL('o') << 16 |
TOUL('m'))
+
+#if _USE_STAT64
+void stat64_to_stati64(const struct __stat64 *buf64, struct _stati64 *buf)
+{
+ buf->st_dev = buf64->st_dev;
+ buf->st_ino = buf64->st_ino;
+ buf->st_mode = buf64->st_mode;
+ buf->st_nlink = buf64->st_nlink;
+ buf->st_uid = buf64->st_uid;
+ buf->st_gid = buf64->st_gid;
+ buf->st_rdev = buf64->st_rdev;
+ buf->st_size = buf64->st_size;
+ buf->st_atime = buf64->st_atime;
+ buf->st_mtime = buf64->st_mtime;
+ buf->st_ctime = buf64->st_ctime;
+}
+
+//int _tstati64(const TCHAR* path, struct _stati64 * buf)
+//{
+// int ret;
+// struct __stat64 buf64;
+//
+// ret = _tstat64(path, &buf64);
+// if (!ret)
+// stat64_to_stati64(&buf64, buf);
+// return ret;
+//}
+
+#endif
+
+HANDLE fdtoh(int fd); //file.c
+
+#if _USE_STAT64
+int CDECL _tstat64(const _TCHAR *path, struct _stat64 *buf)
+#else
+int CDECL _tstat64i32(const _TCHAR *path, struct _stat64i32 *buf)
+#endif
+{
+ DWORD dw;
+ WIN32_FILE_ATTRIBUTE_DATA hfi;
+ unsigned short mode = ALL_S_IREAD;
+ int plen;
+
+ TRACE(":file (%s) buf(%p)\n",path,buf);
+
+ if (!GetFileAttributesEx(path, GetFileExInfoStandard, &hfi))
+ {
+ TRACE("failed (%d)\n",GetLastError());
+ __set_errno(ERROR_FILE_NOT_FOUND);
+ return -1;
+ }
+
+ memset(buf,0,sizeof(struct __stat64));
+
+ /* FIXME: rdev isn't drive num, despite what the docs say-what is it?
+ Bon 011120: This FIXME seems incorrect
+ Also a letter as first char isn't enough to be classified
+ as a drive letter
+ */
+#ifndef _UNICODE
+ if (isalpha(*path)&& (*(path+1)==':'))
+ buf->st_dev = buf->st_rdev = toupper(*path) - 'A'; /* drive num */
+#else
+ if (iswalpha(*path))
+ buf->st_dev = buf->st_rdev = toupperW(*path - 'A'); /* drive num */
+#endif
+ else
+ buf->st_dev = buf->st_rdev = _getdrive() - 1;
+
+#ifndef _UNICODE
+ plen = strlen(path);
+#else
+ plen = strlenW(path);
+#endif
+
+ /* Dir, or regular file? */
+ if ((hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
+ (path[plen-1] == '\\'))
+ mode |= (_S_IFDIR | ALL_S_IEXEC);
+ else
+ {
+ mode |= _S_IFREG;
+ /* executable? */
+ if (plen > 6 && path[plen-4] == '.') /* shortest exe:
"\x.exe" */
+ {
+#ifndef _UNICODE
+ unsigned int ext = tolower(path[plen-1]) | (tolower(path[plen-2]) << 8) |
+ (tolower(path[plen-3]) << 16);
+ if (ext == EXE || ext == BAT || ext == CMD || ext == COM)
+ mode |= ALL_S_IEXEC;
+#else
+ ULONGLONG ext = tolowerW(path[plen-1]) | (tolowerW(path[plen-2]) << 16) |
+ ((ULONGLONG)tolowerW(path[plen-3]) << 32);
+ if (ext == WCEXE || ext == WCBAT || ext == WCCMD || ext == WCCOM)
+ mode |= ALL_S_IEXEC;
+#endif
+ }
+ }
+
+ if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
+ mode |= ALL_S_IWRITE;
+
+ buf->st_mode = mode;
+ buf->st_nlink = 1;
+#if _USE_STAT64
+ buf->st_size = buf->st_size = ((__int64)hfi.nFileSizeHigh << 32) +
hfi.nFileSizeLow;
+#else
+ buf->st_size = hfi.nFileSizeLow;
+#endif
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
+ buf->st_atime = dw;
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
+ buf->st_mtime = buf->st_ctime = dw;
+ TRACE("%d %d 0x%08lx%08lx %ld %ld %ld\n", buf->st_mode,buf->st_nlink,
+ (long)(buf->st_size >> 16),(long)buf->st_size,
+ (long)buf->st_atime,(long)buf->st_mtime,(long)buf->st_ctime);
+ return 0;
+}
+
+/*********************************************************************
+ * _stat (MSVCRT.@)
+ */
+#if _USE_STAT64
+int CDECL _tstat32i64(const _TCHAR *path,struct _stat32i64 *buf)
+#else
+int CDECL _tstat32(const _TCHAR *path,struct _stat32 *buf)
+#endif
+{
+ DWORD dw;
+ WIN32_FILE_ATTRIBUTE_DATA hfi;
+ unsigned short mode = ALL_S_IREAD;
+ int plen;
+
+ TRACE(":file (%s) buf(%p)\n",path,buf);
+
+ if (!GetFileAttributesEx(path, GetFileExInfoStandard, &hfi))
+ {
+ TRACE("failed (%d)\n",GetLastError());
+ __set_errno(ERROR_FILE_NOT_FOUND);
+ return -1;
+ }
+
+ memset(buf,0,sizeof(*buf));
+
+ /* FIXME: rdev isn't drive num, despite what the docs say-what is it?
+ Bon 011120: This FIXME seems incorrect
+ Also a letter as first char isn't enough to be classified
+ as a drive letter
+ */
+#ifndef _UNICODE
+ if (isalpha(*path)&& (*(path+1)==':'))
+ buf->st_dev = buf->st_rdev = toupper(*path) - 'A'; /* drive num */
+#else
+ if (iswalpha(*path))
+ buf->st_dev = buf->st_rdev = toupperW(*path - 'A'); /* drive num */
+#endif
+ else
+ buf->st_dev = buf->st_rdev = _getdrive() - 1;
+
+#ifndef _UNICODE
+ plen = strlen(path);
+#else
+ plen = strlenW(path);
+#endif
+
+ /* Dir, or regular file? */
+ if ((hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
+ (path[plen-1] == '\\'))
+ mode |= (_S_IFDIR | ALL_S_IEXEC);
+ else
+ {
+ mode |= _S_IFREG;
+ /* executable? */
+ if (plen > 6 && path[plen-4] == '.') /* shortest exe:
"\x.exe" */
+ {
+#ifndef _UNICODE
+ unsigned int ext = tolower(path[plen-1]) | (tolower(path[plen-2]) << 8) |
+ (tolower(path[plen-3]) << 16);
+ if (ext == EXE || ext == BAT || ext == CMD || ext == COM)
+ mode |= ALL_S_IEXEC;
+#else
+ ULONGLONG ext = tolowerW(path[plen-1]) | (tolowerW(path[plen-2]) << 16) |
+ ((ULONGLONG)tolowerW(path[plen-3]) << 32);
+ if (ext == WCEXE || ext == WCBAT || ext == WCCMD || ext == WCCOM)
+ mode |= ALL_S_IEXEC;
+#endif
+ }
+ }
+
+ if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
+ mode |= ALL_S_IWRITE;
+
+ buf->st_mode = mode;
+ buf->st_nlink = 1;
+#if _USE_STAT64
+ buf->st_size = ((__int32)hfi.nFileSizeHigh << 16) + hfi.nFileSizeLow;
+#else
+ buf->st_size = hfi.nFileSizeLow;
+#endif
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
+ buf->st_atime = dw;
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
+ buf->st_mtime = buf->st_ctime = dw;
+ TRACE("%d %d 0x%08lx%08lx %ld %ld %ld\n", buf->st_mode,buf->st_nlink,
+ (long)(buf->st_size >> 16),(long)buf->st_size,
+ (long)buf->st_atime,(long)buf->st_mtime,(long)buf->st_ctime);
+ return 0;
+}
+
+#ifndef _UNICODE //No wide versions needed
+
+#if _USE_STAT64
+int CDECL _fstat64(int fd, struct _stat64* buf)
+#else
+int CDECL _fstat64i32(int fd, struct _stat64i32* buf)
+#endif
+{
+ DWORD dw;
+ DWORD type;
+ BY_HANDLE_FILE_INFORMATION hfi;
+ HANDLE hand = fdtoh(fd);
+
+ TRACE(":fd (%d) stat (%p)\n",fd,buf);
+ if (hand == INVALID_HANDLE_VALUE)
+ return -1;
+
+ if (!buf)
+ {
+ WARN(":failed-NULL buf\n");
+ __set_errno(ERROR_INVALID_PARAMETER);
+ return -1;
+ }
+
+ memset(&hfi, 0, sizeof(hfi));
+ memset(buf, 0, sizeof(struct __stat64));
+ type = GetFileType(hand);
+ if (type == FILE_TYPE_PIPE)
+ {
+ buf->st_dev = buf->st_rdev = fd;
+ buf->st_mode = S_IFIFO;
+ buf->st_nlink = 1;
+ }
+ else if (type == FILE_TYPE_CHAR)
+ {
+ buf->st_dev = buf->st_rdev = fd;
+ buf->st_mode = S_IFCHR;
+ buf->st_nlink = 1;
+ }
+ else /* FILE_TYPE_DISK etc. */
+ {
+ if (!GetFileInformationByHandle(hand, &hfi))
+ {
+ WARN(":failed-last error (%d)\n",GetLastError());
+ __set_errno(ERROR_INVALID_PARAMETER);
+ return -1;
+ }
+ buf->st_mode = S_IFREG | S_IREAD;
+ if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
+ buf->st_mode |= S_IWRITE;
+ buf->st_size = ((__int64)hfi.nFileSizeHigh << 32) + hfi.nFileSizeLow;
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
+ buf->st_atime = dw;
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
+ buf->st_mtime = buf->st_ctime = dw;
+ buf->st_nlink = hfi.nNumberOfLinks;
+ }
+ TRACE(":dwFileAttributes = 0x%x, mode set to 0x%x\n",hfi.dwFileAttributes,
+ buf->st_mode);
+ return 0;
+}
+
+/*********************************************************************
+ * _fstat (MSVCRT.@)
+ */
+#if _USE_STAT64
+int CDECL _fstat32(int fd, struct _stat32* buf)
+#else
+int CDECL _fstat32i64(int fd, struct _stat32i64* buf)
+#endif
+{
+ DWORD dw;
+ DWORD type;
+ BY_HANDLE_FILE_INFORMATION hfi;
+ HANDLE hand = fdtoh(fd);
+
+ TRACE(":fd (%d) stat (%p)\n",fd,buf);
+ if (hand == INVALID_HANDLE_VALUE)
+ return -1;
+
+ if (!buf)
+ {
+ WARN(":failed-NULL buf\n");
+ __set_errno(ERROR_INVALID_PARAMETER);
+ return -1;
+ }
+
+ memset(&hfi, 0, sizeof(hfi));
+ memset(buf, 0, sizeof(struct _stat32));
+ type = GetFileType(hand);
+ if (type == FILE_TYPE_PIPE)
+ {
+ buf->st_dev = buf->st_rdev = fd;
+ buf->st_mode = S_IFIFO;
+ buf->st_nlink = 1;
+ }
+ else if (type == FILE_TYPE_CHAR)
+ {
+ buf->st_dev = buf->st_rdev = fd;
+ buf->st_mode = S_IFCHR;
+ buf->st_nlink = 1;
+ }
+ else /* FILE_TYPE_DISK etc. */
+ {
+ if (!GetFileInformationByHandle(hand, &hfi))
+ {
+ WARN(":failed-last error (%d)\n",GetLastError());
+ __set_errno(ERROR_INVALID_PARAMETER);
+ return -1;
+ }
+ buf->st_mode = S_IFREG | S_IREAD;
+ if (!(hfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
+ buf->st_mode |= S_IWRITE;
+ buf->st_size = ((__int32)hfi.nFileSizeHigh << 16) + hfi.nFileSizeLow;
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastAccessTime, &dw);
+ buf->st_atime = dw;
+ RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw);
+ buf->st_mtime = buf->st_ctime = dw;
+ buf->st_nlink = hfi.nNumberOfLinks;
+ }
+ TRACE(":dwFileAttributes = 0x%x, mode set to 0x%x\n",hfi.dwFileAttributes,
+ buf->st_mode);
+ return 0;
+}
+
+#endif
Propchange: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/stat64.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wfind.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wfind.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wfind.c [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -1,5 +1,8 @@
#define UNICODE
#define _UNICODE
-
-#include "find.c"
+#define _USE_FIND64 0
+#include <wchar.h>
+#include "find64.c"
+#undef _USE_FIND64
+#include "find64.c"
Added: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wstat.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wstat.c (added)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wstat.c [iso-8859-1] Sat Sep 13
02:12:22 2008
@@ -1,0 +1,7 @@
+#define _UNICODE
+#define UNICODE
+#define _USE_STAT64 0
+#include <wchar.h>
+#include "stat64.c"
+#undef _USE_STAT64
+#include "stat64.c"
Propchange: branches/ros-amd64-bringup/reactos/lib/sdk/crt/stdio/wstat.c
------------------------------------------------------------------------------
svn:eol-style = native