Ignore:
Timestamp:
Mar 29, 2000, 5:17:29 PM (25 years ago)
Author:
cbratschi
Message:

FindFirst* changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/Fileio.cpp

    r3259 r3269  
    1 /* $Id: Fileio.cpp,v 1.26 2000-03-28 17:11:48 sandervl Exp $ */
     1/* $Id: Fileio.cpp,v 1.27 2000-03-29 15:17:27 cbratschi Exp $ */
    22
    33/*
     
    2929#include "oslibdos.h"
    3030
    31 #define DBG_LOCALLOG    DBG_fileio
     31#define DBG_LOCALLOG    DBG_fileio
    3232#include "dbglocal.h"
    3333
     
    7777//******************************************************************************
    7878ODINFUNCTION2(HANDLE, FindFirstFileA,
    79               LPCSTR, arg1,
    80               WIN32_FIND_DATAA *, arg2)
    81 {
    82   dprintf(("FindFirstFileA %s", arg1));
    83   return O32_FindFirstFile(arg1, arg2);
    84 }
    85 
     79              LPCSTR, lpFileName,
     80              WIN32_FIND_DATAA *, lpFindFileData)
     81{
     82  return (HANDLE)OSLibDosFindFirst(lpFileName,lpFindFileData);
     83}
     84//******************************************************************************
     85// internal function for faster access (SHELL32)
     86//******************************************************************************
     87ODINFUNCTION3(HANDLE, FindFirstFileMultiA,
     88              LPCSTR, lpFileName,
     89              WIN32_FIND_DATAA *, lpFindFileData,
     90              DWORD *,count)
     91{
     92  return (HANDLE)OSLibDosFindFirstMulti(lpFileName,lpFindFileData,count);
     93}
    8694//******************************************************************************
    8795//******************************************************************************
    8896ODINFUNCTION2(HANDLE,  FindFirstFileW,
    89               LPCWSTR, arg1,
    90               WIN32_FIND_DATAW *, arg2)
     97              LPCWSTR, lpFileName,
     98              WIN32_FIND_DATAW *, lpFindFileData)
    9199{
    92100  HANDLE           rc;
     
    94102  WIN32_FIND_DATAA wfda;
    95103
    96   astring = UnicodeToAsciiString((LPWSTR)arg1);
    97   rc = FindFirstFileA(astring, &wfda);
     104  astring = UnicodeToAsciiString((LPWSTR)lpFileName);
     105  rc = (HANDLE)OSLibDosFindFirst(astring,&wfda);
    98106
    99107  if(rc == -1) {
    100         memset(arg2, 0, sizeof(WIN32_FIND_DATAW));
    101   }
    102   else {
    103         // convert back the result structure
    104         memcpy(arg2,
    105                  &wfda,
    106                  sizeof(WIN32_FIND_DATAA));
    107        
    108         lstrcpynAtoW (arg2->cFileName,
    109                       wfda.cFileName,
    110                       sizeof(wfda.cFileName));
    111        
    112         lstrcpynAtoW (arg2->cAlternateFileName,
    113                       wfda.cAlternateFileName,
    114                       sizeof(wfda.cAlternateFileName));
    115   }     
    116   FreeAsciiString(astring);
    117   return(rc);
    118 }
    119 //******************************************************************************
    120 //******************************************************************************
    121 ODINFUNCTION2(BOOL,   FindNextFileA,
    122               HANDLE, arg1,
    123               WIN32_FIND_DATAA *, arg2)
    124 {
    125   return O32_FindNextFile(arg1, arg2);
    126 }
    127 //******************************************************************************
    128 //******************************************************************************
    129 ODINFUNCTION2(BOOL, FindNextFileW,
    130               HANDLE, arg1,
    131               WIN32_FIND_DATAW *, arg2)
    132 {
    133   WIN32_FIND_DATAA wfda;
    134   BOOL             rc;
    135 
    136   rc = FindNextFileA(arg1, &wfda);
    137 
    138   if(rc == 0) {
    139         memset(arg2, 0, sizeof(WIN32_FIND_DATAW));
     108        memset(lpFindFileData, 0, sizeof(WIN32_FIND_DATAW));
    140109  }
    141110  else {
    142111        // convert back the result structure
    143         memcpy(arg2,
     112        memcpy(lpFindFileData,
     113                 &wfda,
     114                 sizeof(WIN32_FIND_DATAA));
     115
     116        lstrcpynAtoW (lpFindFileData->cFileName,
     117                      wfda.cFileName,
     118                      sizeof(wfda.cFileName));
     119
     120        lstrcpynAtoW (lpFindFileData->cAlternateFileName,
     121                      wfda.cAlternateFileName,
     122                      sizeof(wfda.cAlternateFileName));
     123  }
     124  FreeAsciiString(astring);
     125  return(rc);
     126}
     127//******************************************************************************
     128//******************************************************************************
     129ODINFUNCTION2(BOOL,   FindNextFileA,
     130              HANDLE, hFindFile,
     131              WIN32_FIND_DATAA *, lpFindFileData)
     132{
     133  return OSLibDosFindNext(hFindFile,lpFindFileData);
     134}
     135//******************************************************************************
     136// internal function for faster access (SHELL32)
     137//******************************************************************************
     138ODINFUNCTION3(BOOL,   FindNextFileMultiA,
     139              HANDLE, hFindFile,
     140              WIN32_FIND_DATAA *, lpFindFileData,
     141              DWORD *,count)
     142{
     143  return OSLibDosFindNextMulti(hFindFile,lpFindFileData,count);
     144}
     145//******************************************************************************
     146//******************************************************************************
     147ODINFUNCTION2(BOOL, FindNextFileW,
     148              HANDLE, hFindFile,
     149              WIN32_FIND_DATAW *, lpFindFileData)
     150{
     151  WIN32_FIND_DATAA wfda;
     152  BOOL             rc;
     153
     154  rc = OSLibDosFindNext(hFindFile,&wfda);
     155
     156  if(rc == 0) {
     157        memset(lpFindFileData, 0, sizeof(WIN32_FIND_DATAW));
     158  }
     159  else {
     160        // convert back the result structure
     161        memcpy(lpFindFileData,
    144162               &wfda,
    145163               sizeof(WIN32_FIND_DATAA));
    146164
    147         lstrcpynAtoW (arg2->cFileName,
     165        lstrcpynAtoW (lpFindFileData->cFileName,
    148166                      wfda.cFileName,
    149167                      sizeof(wfda.cFileName));
    150168
    151         lstrcpynAtoW (arg2->cAlternateFileName,
     169        lstrcpynAtoW (lpFindFileData->cAlternateFileName,
    152170                      wfda.cAlternateFileName,
    153171                      sizeof(wfda.cAlternateFileName));
     
    158176//******************************************************************************
    159177ODINFUNCTION1(BOOL, FindClose,
    160               HANDLE, arg1)
    161 {
    162   return O32_FindClose(arg1);
     178              HANDLE, hFindFile)
     179{
     180  return OSLibDosFindClose(hFindFile);
    163181}
    164182//******************************************************************************
     
    380398    if((NULL!=lpszFileName) && strlen(lpszFileName)==2 && lpszFileName[1] == ':')
    381399    {
    382         char szDrive[4];
    383         szDrive[0] = lpszFileName[0];
    384         szDrive[1] = lpszFileName[1];
    385         szDrive[2] = '\\';
    386         szDrive[3] = 0x00;
    387         rc = O32_GetFileAttributes((LPSTR)szDrive);
     400        char szDrive[4];
     401        szDrive[0] = lpszFileName[0];
     402        szDrive[1] = lpszFileName[1];
     403        szDrive[2] = '\\';
     404        szDrive[3] = 0x00;
     405        rc = O32_GetFileAttributes((LPSTR)szDrive);
    388406    }
    389407    else rc = O32_GetFileAttributes((LPSTR)lpszFileName);
Note: See TracChangeset for help on using the changeset viewer.