Added binary and unicode file i/o support to msvcrt.
[reactos.git] / reactos / lib / crtdll / io / find.c
index 25ff5f7..a2dfe8b 100644 (file)
@@ -1,81 +1,77 @@
 #include <windows.h>
-#include <crtdll/io.h>
-#include <crtdll/string.h>
-#include <crtdll/internal/file.h>
+#include <msvcrt/io.h>
+#include <msvcrt/string.h>
+#include <msvcrt/internal/file.h>
 
 
+int _findclose(int handle)
+{
+    // check no wildcards or invalid handle
+    if (handle == 0 || handle == -1)
+       return 0;
+    return FindClose((void*)handle);
+}
 
-int _findfirst(const char *_name, struct _finddata_t *result)
+int _findfirst(const char* _name, struct _finddata_t* result)
 {
+    WIN32_FIND_DATA FindFileData;
+    char dir[MAX_PATH];
+    long hFindFile;
+    int len = 0;
 
-        WIN32_FIND_DATA FindFileData;
-        char dir[MAX_PATH];
-        long hFindFile;
-        int len = 0;
-        
-        if ( _name == NULL || _name[0] == 0 ) {
-                len = GetCurrentDirectory(MAX_PATH-4,dir);
-                if (dir[len-1] != '\\') {
-                        dir[len] = '\\';
-                        dir[len+1] = 0;
-                }
-                strcat(dir,"*.*");
-        }
-        else 
-                strcpy(dir,_name);
-        hFindFile = (long)FindFirstFileA( dir, &FindFileData ); 
-        if ( hFindFile == -1 ) {
-               memset(result,0,sizeof(struct _finddata_t));
-               return -1;
+    if (_name == NULL || _name[0] == 0) {
+        len = GetCurrentDirectory(MAX_PATH-4,dir);
+        if (dir[len-1] != '\\') {
+            dir[len] = '\\';
+            dir[len+1] = 0;
         }
-        result->attrib = FindFileData.dwFileAttributes; 
+        strcat(dir,"*.*");
+    } else {
+        strcpy(dir,_name);
+    }
 
+    hFindFile = (long)FindFirstFileA(dir, &FindFileData);
+    if (hFindFile == -1) {
+        memset(result,0,sizeof(struct _finddata_t));
+        return -1;
+    }
 
-        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;
-        strncpy(result->name,FindFileData.cFileName,260);
-        
-        // if no wildcard the find file handle can be closed right away
-        // a return value of 0 can flag this.
-        
-        if(!strchr(dir,'*') && !strchr(dir,'?')) {
-               _findclose(hFindFile);
-               return 0;
-        }
-        
-        
-        return hFindFile;
+    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;
+    strncpy(result->name,FindFileData.cFileName,260);
+
+    // if no wildcard the find file handle can be closed right away
+    // a return value of 0 can flag this.
+
+    if (!strchr(dir,'*') && !strchr(dir,'?')) {
+        _findclose(hFindFile);
+        return 0;
+    }
 
+    return hFindFile;
 }
 
-int  _findnext(int handle, struct _finddata_t  *result)
+int _findnext(int handle, struct _finddata_t* result)
 {
-        WIN32_FIND_DATA FindFileData;
-        
-        // check no wildcards or invalid handle
-        if ( handle == 0 || handle == -1)
-               return 0;
-                
-          
+    WIN32_FIND_DATA FindFileData;
 
-        if ( !FindNextFile((void *)handle, &FindFileData ) )
-                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;
-        strncpy(result->name,FindFileData.cFileName,260);
+    // check no wildcards or invalid handle
+    if (handle == 0 || handle == -1)
         return 0;
-}
 
-int  _findclose(int handle)
-{
-       // check no wildcards or invalid handle
-       if ( handle == 0 || handle == -1)
-               return 0;
-        return FindClose((void *)handle);
+    if (!FindNextFileA((void*)handle, &FindFileData))
+        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;
+    strncpy(result->name,FindFileData.cFileName, MAX_PATH);
+
+    return 0;
 }
+