Changeset 4372 for trunk/src


Ignore:
Timestamp:
Oct 2, 2000, 3:39:18 PM (25 years ago)
Author:
sandervl
Message:

version changes + misc fixes/changes

Location:
trunk/src/kernel32
Files:
1 added
8 edited

Legend:

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

    r4285 r4372  
    1 /* $Id: Fileio.cpp,v 1.41 2000-09-20 21:32:50 hugh Exp $ */
     1/* $Id: Fileio.cpp,v 1.42 2000-10-02 13:38:55 sandervl Exp $ */
    22
    33/*
     
    672672    char *ptr;
    673673    DWORD rc;
    674     dprintf(("KERNEL32:  GetFullPathName called with %s %d %s \n", arg1, arg2, arg3));
    675       while((ptr = strchr(arg1, '/')) != NULL)
     674    dprintf(("KERNEL32:  GetFullPathName called with %s %d %x", arg1, arg2, arg3));
     675    while((ptr = strchr(arg1, '/')) != NULL)
    676676        *ptr = '\\';
    677677
  • trunk/src/kernel32/KERNEL32.CPP

    r4325 r4372  
    1 /* $Id: KERNEL32.CPP,v 1.54 2000-09-25 19:57:17 phaller Exp $ */
     1/* $Id: KERNEL32.CPP,v 1.55 2000-10-02 13:38:55 sandervl Exp $ */
    22
    33/*
     
    312312    dprintf2(("KERNEL32:  OS2IsDBCSLeadByte\n"));
    313313    return O32_IsDBCSLeadByte(arg1);
    314 }
    315 //******************************************************************************
    316 //******************************************************************************
    317 DWORD WIN32API LoadModule( LPCSTR arg1, PVOID  arg2)
    318 {
    319     dprintf(("KERNEL32:  OS2LoadModule\n"));
    320     return O32_LoadModule(arg1, arg2);
    321314}
    322315//******************************************************************************
     
    409402}
    410403//******************************************************************************
    411 //TODO: SetLastError
    412 //******************************************************************************
    413 BOOL WIN32API GetVersionExA(OSVERSIONINFOA *lpVersionInformation)
    414 {
    415    dprintf(("KERNEL32:  OS2GetVersionExA\n"));
    416 
    417    if(lpVersionInformation == NULL || lpVersionInformation->dwOSVersionInfoSize != sizeof(OSVERSIONINFOA))
    418         return(FALSE);
    419 
    420    lpVersionInformation->dwMajorVersion = ODINNT_MAJOR_VERSION;    //pretend we're NT 4.0
    421    lpVersionInformation->dwMinorVersion = ODINNT_MINOR_VERSION;
    422    lpVersionInformation->dwBuildNumber  = ODINNT_BUILD_NR;
    423    lpVersionInformation->dwPlatformId   = VER_PLATFORM_WIN32_NT;
    424    strcpy(lpVersionInformation->szCSDVersion, ODINNT_CSDVERSION);
    425    return(TRUE);
    426 }
    427 //******************************************************************************
    428 //******************************************************************************
    429 BOOL WIN32API GetVersionExW(OSVERSIONINFOW *lpVersionInformation)
    430 {
    431    dprintf(("KERNEL32:  OS2GetVersionExW\n"));
    432 
    433    if(lpVersionInformation == NULL || lpVersionInformation->dwOSVersionInfoSize != sizeof(OSVERSIONINFOW))
    434         return(FALSE);
    435 
    436    lpVersionInformation->dwMajorVersion = ODINNT_MAJOR_VERSION;    //pretend we're NT 4.0
    437    lpVersionInformation->dwMinorVersion = ODINNT_MINOR_VERSION;
    438    lpVersionInformation->dwBuildNumber  = ODINNT_BUILD_NR;
    439    lpVersionInformation->dwPlatformId   = VER_PLATFORM_WIN32_NT;
    440    lstrcpyW(lpVersionInformation->szCSDVersion, ODINNT_CSDVERSION_W);
    441    return(TRUE);
    442 }
    443 //******************************************************************************
    444 //******************************************************************************
    445 LONG WIN32API GetVersion()
    446 {
    447   dprintf(("KERNEL32:  GetVersion\n"));
    448   // highword 0 = NT, lowword high byte major ver, low byte minor ver
    449 /* @@@PH 98/04/04 MFC30 makes assumptions about process control block        */
    450 /*                structures that lead to crashes if we don't identify as NT */
    451 
    452   return ODINNT_VERSION;
    453 }
    454 //******************************************************************************
    455404//******************************************************************************
    456405BOOL WIN32API FlushInstructionCache(     /*PLF Mon  98-02-09 23:56:49 : STUB STUB STUB STUB STUB */
  • trunk/src/kernel32/dbglocal.cpp

    r4256 r4372  
    1 /* $Id: dbglocal.cpp,v 1.10 2000-09-13 21:10:58 sandervl Exp $ */
     1/* $Id: dbglocal.cpp,v 1.11 2000-10-02 13:38:55 sandervl Exp $ */
    22
    33/*
     
    121121"hmfile",
    122122"hmnpipe",
    123 "hmdisk"
     123"hmdisk",
     124"version"
    124125};
    125126//******************************************************************************
  • trunk/src/kernel32/dbglocal.h

    r4256 r4372  
    1 /* $Id: dbglocal.h,v 1.10 2000-09-13 21:10:58 sandervl Exp $ */
     1/* $Id: dbglocal.h,v 1.11 2000-10-02 13:38:56 sandervl Exp $ */
    22
    33/*
     
    121121#define DBG_hmnpipe        99
    122122#define DBG_hmdisk         100
    123 #define DBG_MAXFILES       101
     123#define DBG_version        101
     124#define DBG_MAXFILES       102
    124125
    125126extern USHORT DbgEnabled[DBG_MAXFILES];
  • trunk/src/kernel32/makefile

    r4256 r4372  
    1 # $Id: makefile,v 1.101 2000-09-13 21:10:59 sandervl Exp $
     1# $Id: makefile,v 1.102 2000-10-02 13:38:56 sandervl Exp $
    22
    33#
     
    128128$(OBJDIR)\hmnpipe.obj \
    129129$(OBJDIR)\hmdisk.obj \
     130$(OBJDIR)\version.obj \
    130131!ifdef DEBUG
    131132$(OBJDIR)\exceptstackdump.obj \
  • trunk/src/kernel32/oslibdos.cpp

    r4324 r4372  
    1 /* $Id: oslibdos.cpp,v 1.46 2000-09-25 19:00:27 sandervl Exp $ */
     1/* $Id: oslibdos.cpp,v 1.47 2000-10-02 13:38:56 sandervl Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    4545
    4646  if(DosQueryModuleHandle("DOSCALLS", &hDoscalls) != NO_ERROR) {
    47   return;
     47    return;
    4848  }
    4949  if(DosQueryProcAddr(hDoscalls, 989, NULL, (PFN *)&DosSetFileSizeLProc) != NO_ERROR) {
    50   return;
     50    return;
    5151  }
    5252  if(DosQueryProcAddr(hDoscalls, 988, NULL, (PFN *)&DosSetFilePtrLProc) != NO_ERROR) {
    53   return;
     53    return;
    5454  }
    5555  if(DosQueryProcAddr(hDoscalls, 986, NULL, (PFN *)&DosSetFileLocksLProc) != NO_ERROR) {
    56   return;
     56    return;
    5757  }
    5858  f64BitIO = TRUE;
     
    167167
    168168    case ERROR_DEVICE_IN_USE: //99
    169   return ERROR_DEVICE_IN_USE_W;
     169        return ERROR_DEVICE_IN_USE_W;
    170170
    171171    case ERROR_DRIVE_LOCKED: //108
     
    176176
    177177    case ERROR_OPEN_FAILED: //110
    178   return ERROR_OPEN_FAILED_W;
     178        return ERROR_OPEN_FAILED_W;
    179179
    180180    case ERROR_BUFFER_OVERFLOW: //111
     
    182182
    183183    case ERROR_DISK_FULL: //112
    184   return ERROR_DISK_FULL_W;
     184        return ERROR_DISK_FULL_W;
    185185
    186186    case ERROR_NO_MORE_SEARCH_HANDLES: //113
     
    233233
    234234    default:
    235       dprintf(("WARNING: error2WinError: error %d not included!!!!", rc));
     235        dprintf(("WARNING: error2WinError: error %d not included!!!!", rc));
    236236        return defaultCode;
    237237  }
     
    764764   //TODO: FILE_SHARE_DELETE
    765765   if((fuShare & (FILE_SHARE_READ_W | FILE_SHARE_WRITE_W)) == 0 )
    766   openMode |= OPEN_SHARE_DENYREADWRITE;
     766        openMode |= OPEN_SHARE_DENYREADWRITE;
    767767   else
    768768   if((fuShare & (FILE_SHARE_READ_W | FILE_SHARE_WRITE_W)) == (FILE_SHARE_READ_W | FILE_SHARE_WRITE_W))
     
    773773   else
    774774   if(fuShare & FILE_SHARE_WRITE_W)
    775   openMode |= OPEN_SHARE_DENYREAD;
     775        openMode |= OPEN_SHARE_DENYREAD;
    776776
    777777   if(fuAccess == (GENERIC_READ_W | GENERIC_WRITE_W))
    778   openMode |= OPEN_ACCESS_READWRITE;
     778        openMode |= OPEN_ACCESS_READWRITE;
    779779   else
    780780   if(fuAccess & GENERIC_READ_W)
    781   openMode |= OPEN_ACCESS_READONLY;
     781        openMode |= OPEN_ACCESS_READONLY;
    782782   else
    783783   if(fuAccess & GENERIC_WRITE_W)
     
    799799
    800800   if(strlen(lpszFile) == 2 && lpszFile[1] == ':') {
    801   //app tries to open physical disk
    802   openMode |= OPEN_FLAGS_DASD;
     801        //app tries to open physical disk
     802        openMode |= OPEN_FLAGS_DASD;
    803803   }
    804804   int retry = 0;
     
    815815                      NULL);
    816816    if(rc == ERROR_TOO_MANY_OPEN_FILES)
    817         {
    818       ULONG CurMaxFH;
    819       LONG  ReqCount = 32;
    820 
    821     rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
    822     if(rc) {
    823       dprintf(("DosSetRelMaxFH returned %d", rc));
    824       SetLastError(ERROR_TOO_MANY_OPEN_FILES_W);
    825       return INVALID_HANDLE_VALUE_W;
     817    {
     818        ULONG CurMaxFH;
     819        LONG  ReqCount = 32;
     820
     821        rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
     822        if(rc) {
     823            dprintf(("DosSetRelMaxFH returned %d", rc));
     824            SetLastError(ERROR_TOO_MANY_OPEN_FILES_W);
     825            return INVALID_HANDLE_VALUE_W;
     826        }
     827        dprintf(("DosOpen failed -> increased nr open files to %d", CurMaxFH));
    826828    }
    827     dprintf(("DosOpen failed -> increased nr open files to %d", CurMaxFH));
    828     }
    829   else  break;
    830   retry++;
     829    else  break;
     830    retry++;
    831831   }
    832832
     
    860860        if(fuMode & OF_CREATE_W) {
    861861            openFlag |= OPEN_ACTION_CREATE_IF_NEW |
    862                             OPEN_ACTION_REPLACE_IF_EXISTS;
    863   }
    864         else    openFlag |= OPEN_ACTION_OPEN_IF_EXISTS;                                //180575
    865 
    866         if(fuMode & OF_READWRITE_W)
    867             openMode |= OPEN_ACCESS_READWRITE;
    868         else
    869   if(fuMode & OF_WRITE_W)
    870             openMode |= OPEN_ACCESS_WRITEONLY;
    871         else
    872   if(fuMode & OF_CREATE_W)
    873             openMode |= OPEN_ACCESS_READWRITE;
     862                        OPEN_ACTION_REPLACE_IF_EXISTS;
     863   }
     864   else openFlag |= OPEN_ACTION_OPEN_IF_EXISTS;
     865
     866   if(fuMode & OF_READWRITE_W)
     867        openMode |= OPEN_ACCESS_READWRITE;
     868   else
     869   if(fuMode & OF_WRITE_W)
     870        openMode |= OPEN_ACCESS_WRITEONLY;
     871   else
     872   if(fuMode & OF_CREATE_W)
     873        openMode |= OPEN_ACCESS_READWRITE;
    874874   }
    875875
     
    930930
    931931   if(lpOverlapped) {//TODO:
    932   dprintf(("OSLibDosLockFile: overlapped lock not yet implemented!!"));
     932        dprintf(("OSLibDosLockFile: overlapped lock not yet implemented!!"));
    933933   }
    934934   //TODO: Locking region crossing end of file is permitted. Works in OS/2??
    935935   if(f64BitIO)
    936936   {
    937     FILELOCKL lockRangeL;
    938 
    939   lockRangeL.lOffset.ulLo = OffsetLow;
    940   lockRangeL.lOffset.ulHi = OffsetHigh;
    941   lockRangeL.lRange.ulLo  = nNumberOfBytesToLockLow;
    942   lockRangeL.lRange.ulHi  = nNumberOfBytesToLockHigh;
    943 
    944     rc = OdinDosSetFileLocksL(hFile, NULL, &lockRangeL,
     937        FILELOCKL lockRangeL;
     938
     939        lockRangeL.lOffset.ulLo = OffsetLow;
     940        lockRangeL.lOffset.ulHi = OffsetHigh;
     941        lockRangeL.lRange.ulLo  = nNumberOfBytesToLockLow;
     942        lockRangeL.lRange.ulHi  = nNumberOfBytesToLockHigh;
     943
     944        rc = OdinDosSetFileLocksL(hFile, NULL, &lockRangeL,
    945945                                  (dwFlags & LOCKFILE_FAIL_IMMEDIATELY_W) ? 0 : 5000, 0);
    946946        //SvL: 64 bits values are only supported by JFS
     
    948948        //     (TODO: should check the partition type instead)
    949949        if(rc == ERROR_INVALID_PARAMETER && (OffsetHigh || nNumberOfBytesToLockHigh)) {
    950     goto oldlock;
     950            goto oldlock;
    951951        }
    952952   }
     
    954954   {
    955955oldlock:
    956     FILELOCK lockRange = { OffsetLow, nNumberOfBytesToLockLow };
    957 
    958     rc = DosSetFileLocks(hFile, NULL, &lockRange,
     956        FILELOCK lockRange = { OffsetLow, nNumberOfBytesToLockLow };
     957
     958        rc = DosSetFileLocks(hFile, NULL, &lockRange,
    959959                             (dwFlags & LOCKFILE_FAIL_IMMEDIATELY_W) ? 0 : 5000, 0);
    960960   }
    961961   if(rc) {
    962     SetLastError(error2WinError(rc));
    963   return FALSE;
     962        SetLastError(error2WinError(rc));
     963        return FALSE;
    964964   }
    965965   SetLastError(ERROR_SUCCESS_W);
     
    978978
    979979   if(lpOverlapped) {//TODO:
    980   dprintf(("OSLibDosUnlockFile: overlapped unlock not yet implemented!!"));
     980        dprintf(("OSLibDosUnlockFile: overlapped unlock not yet implemented!!"));
    981981   }
    982982   if(f64BitIO)
    983983   {
    984     FILELOCKL unlockRangeL;
    985 
    986   unlockRangeL.lOffset.ulLo = OffsetLow;
    987   unlockRangeL.lOffset.ulHi = OffsetHigh;
    988   unlockRangeL.lRange.ulLo  = nNumberOfBytesToLockLow;
    989   unlockRangeL.lRange.ulHi  = nNumberOfBytesToLockHigh;
    990 
    991     rc = OdinDosSetFileLocksL(hFile, &unlockRangeL, NULL, 5000, 0);
     984        FILELOCKL unlockRangeL;
     985
     986        unlockRangeL.lOffset.ulLo = OffsetLow;
     987        unlockRangeL.lOffset.ulHi = OffsetHigh;
     988        unlockRangeL.lRange.ulLo  = nNumberOfBytesToLockLow;
     989        unlockRangeL.lRange.ulHi  = nNumberOfBytesToLockHigh;
     990
     991        rc = OdinDosSetFileLocksL(hFile, &unlockRangeL, NULL, 5000, 0);
    992992        //SvL: 64 bits values are only supported by JFS
    993993        //     Try the 32 bits DosSetFileLocks if it fails
    994994        //     (TODO: should check the partition type instead)
    995995        if(rc == ERROR_INVALID_PARAMETER && (OffsetHigh || nNumberOfBytesToLockHigh)) {
    996     goto oldlock;
     996            goto oldlock;
    997997        }
    998998   }
     
    10001000   {
    10011001oldlock:
    1002     FILELOCK unlockRange = { OffsetLow, nNumberOfBytesToLockLow };
     1002        FILELOCK unlockRange = { OffsetLow, nNumberOfBytesToLockLow };
    10031003
    10041004        rc = DosSetFileLocks(hFile, &unlockRange, NULL,  5000, 0);
    10051005   }
    10061006   if(rc) {
    1007     SetLastError(error2WinError(rc));
    1008   return FALSE;
     1007        SetLastError(error2WinError(rc));
     1008        return FALSE;
    10091009   }
    10101010   SetLastError(ERROR_SUCCESS_W);
     
    10301030   if(f64BitIO)
    10311031   {
    1032      FILESTATUS3L fsts3ConfigInfoL = {{0}};
    1033      ULONG        ulBufSize       = sizeof(FILESTATUS3L);
    1034 
    1035     rc = DosQueryFileInfo(hFile, FIL_STANDARDL, &fsts3ConfigInfoL, ulBufSize);
    1036     if(lpdwFileSizeHigh) {
    1037       *lpdwFileSizeHigh = fsts3ConfigInfoL.cbFile.ulHi;
    1038   }
    1039   sizeLow = fsts3ConfigInfoL.cbFile.ulLo;
     1032        FILESTATUS3L fsts3ConfigInfoL = {{0}};
     1033        ULONG        ulBufSize       = sizeof(FILESTATUS3L);
     1034
     1035        rc = DosQueryFileInfo(hFile, FIL_STANDARDL, &fsts3ConfigInfoL, ulBufSize);
     1036        if(lpdwFileSizeHigh) {
     1037            *lpdwFileSizeHigh = fsts3ConfigInfoL.cbFile.ulHi;
     1038        }
     1039        sizeLow = fsts3ConfigInfoL.cbFile.ulLo;
    10401040   }
    10411041   else
    10421042   {
    1043      FILESTATUS3 fsts3ConfigInfo = {{0}};
    1044      ULONG       ulBufSize       = sizeof(FILESTATUS3);
    1045 
    1046     if(lpdwFileSizeHigh) {
    1047       *lpdwFileSizeHigh = 0;
    1048   }
    1049     rc = DosQueryFileInfo(hFile, FIL_STANDARD, &fsts3ConfigInfo, ulBufSize);
    1050   sizeLow = fsts3ConfigInfo.cbFile;
     1043        FILESTATUS3 fsts3ConfigInfo = {{0}};
     1044        ULONG       ulBufSize       = sizeof(FILESTATUS3);
     1045
     1046        if(lpdwFileSizeHigh) {
     1047            *lpdwFileSizeHigh = 0;
     1048        }
     1049        rc = DosQueryFileInfo(hFile, FIL_STANDARD, &fsts3ConfigInfo, ulBufSize);
     1050        sizeLow = fsts3ConfigInfo.cbFile;
    10511051   }
    10521052   if(rc) {
    1053     SetLastError(error2WinError(rc));
    1054     return -1;
     1053        SetLastError(error2WinError(rc));
     1054        return -1;
    10551055   }
    10561056   SetLastError(ERROR_SUCCESS_W);
     
    10851085  if( (f64BitIO) && (OffsetHigh) )
    10861086  {
    1087   offsetL.ulLo = OffsetLow;
    1088   offsetL.ulHi = (OffsetHigh) ? *OffsetHigh : 0;
    1089   rc = OdinDosSetFilePtrL(hFile, offsetL, method, &newoffsetL);
    1090   if(OffsetHigh) {
    1091     *OffsetHigh = newoffsetL.ulHi;
    1092   }
    1093   newoffset = newoffsetL.ulLo;
    1094    }
    1095   else
    1096     rc = DosSetFilePtr(hFile, OffsetLow, method, &newoffset);
     1087        offsetL.ulLo = OffsetLow;
     1088        offsetL.ulHi = (OffsetHigh) ? *OffsetHigh : 0;
     1089        rc = OdinDosSetFilePtrL(hFile, offsetL, method, &newoffsetL);
     1090        if(OffsetHigh) {
     1091            *OffsetHigh = newoffsetL.ulHi;
     1092        }
     1093        newoffset = newoffsetL.ulLo;
     1094  }
     1095  else  rc = DosSetFilePtr(hFile, OffsetLow, method, &newoffset);
    10971096
    10981097  if(rc)
    10991098  {
    1100     SetLastError(error2WinError(rc));
    1101     return -1;
     1099        SetLastError(error2WinError(rc));
     1100        return -1;
    11021101  }
    11031102  SetLastError(ERROR_SUCCESS_W);
     
    11141113
    11151114   if(f64BitIO) {
    1116   rc = OdinDosSetFilePtrL(hFile, FilePosL, FILE_CURRENT, &newFilePosL);
    1117   if(rc == 0) {
    1118           rc = OdinDosSetFileSizeL(hFile, newFilePosL);
    1119   }
     1115        rc = OdinDosSetFilePtrL(hFile, FilePosL, FILE_CURRENT, &newFilePosL);
     1116        if(rc == 0) {
     1117            rc = OdinDosSetFileSizeL(hFile, newFilePosL);
     1118        }
    11201119   }
    11211120   else {
    1122     rc = DosSetFilePtr(hFile, 0, FILE_CURRENT, &newFilePos);
    1123   if(rc == 0) {
    1124           rc = DosSetFileSize(hFile, newFilePos);
    1125   }
     1121        rc = DosSetFilePtr(hFile, 0, FILE_CURRENT, &newFilePos);
     1122        if(rc == 0) {
     1123            rc = DosSetFileSize(hFile, newFilePos);
     1124        }
    11261125   }
    11271126   if(rc) {
    1128     SetLastError(error2WinError(rc));
    1129     return FALSE;
     1127        SetLastError(error2WinError(rc));
     1128        return FALSE;
    11301129   }
    11311130   SetLastError(ERROR_SUCCESS_W);
     
    11401139   if(f64BitIO)
    11411140   {
    1142      FILESTATUS4L statusL = { 0 };
    1143 
    1144     rc = DosQueryFileInfo(hFile,
    1145                         FIL_QUERYEASIZEL,
    1146                         &statusL,
    1147                               sizeof(statusL));
    1148     if(rc == NO_ERROR)
    1149     {
    1150       pInfo->dwFileAttributes = 0;
    1151     if(!(statusL.attrFile & NOT_NORMAL))
    1152         pInfo->dwFileAttributes |= FILE_ATTRIBUTE_NORMAL_W;
    1153     if(statusL.attrFile & FILE_READONLY)
    1154             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_READONLY_W;
    1155     if(statusL.attrFile & FILE_HIDDEN)
    1156             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN_W;
    1157     if(statusL.attrFile & FILE_SYSTEM)
    1158             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_SYSTEM_W;
    1159     if(statusL.attrFile & FILE_DIRECTORY)
    1160             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_DIRECTORY_W;
    1161     if(statusL.attrFile & FILE_ARCHIVED)
    1162             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_ARCHIVE_W;
    1163 
    1164     pmDateTimeToFileTime(&statusL.fdateCreation,
    1165                                &statusL.ftimeCreation,
    1166                                &pInfo->ftCreationTime);
    1167     pmDateTimeToFileTime(&statusL.fdateLastAccess,
    1168                                &statusL.ftimeLastAccess,
    1169                                &pInfo->ftLastAccessTime);
    1170     pmDateTimeToFileTime(&statusL.fdateLastWrite,
    1171                                &statusL.ftimeLastWrite,
    1172                                &pInfo->ftLastWriteTime);
    1173 
    1174     pInfo->nFileSizeHigh = statusL.cbFile.ulHi;
    1175     pInfo->nFileSizeLow  = statusL.cbFile.ulLo;
    1176     pInfo->dwVolumeSerialNumber = 0; //todo
    1177     pInfo->nNumberOfLinks = 1;
    1178     pInfo->nFileIndexHigh = 0;
    1179     pInfo->nFileIndexLow  = 0;
    1180      }
     1141        FILESTATUS4L statusL = { 0 };
     1142
     1143        rc = DosQueryFileInfo(hFile, FIL_QUERYEASIZEL,
     1144                              &statusL, sizeof(statusL));
     1145        if(rc == NO_ERROR)
     1146        {
     1147            pInfo->dwFileAttributes = 0;
     1148            if(!(statusL.attrFile & NOT_NORMAL))
     1149                pInfo->dwFileAttributes |= FILE_ATTRIBUTE_NORMAL_W;
     1150            if(statusL.attrFile & FILE_READONLY)
     1151                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_READONLY_W;
     1152            if(statusL.attrFile & FILE_HIDDEN)
     1153                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN_W;
     1154            if(statusL.attrFile & FILE_SYSTEM)
     1155                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_SYSTEM_W;
     1156            if(statusL.attrFile & FILE_DIRECTORY)
     1157                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_DIRECTORY_W;
     1158            if(statusL.attrFile & FILE_ARCHIVED)
     1159                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_ARCHIVE_W;
     1160
     1161            pmDateTimeToFileTime(&statusL.fdateCreation,
     1162                                 &statusL.ftimeCreation,
     1163                                 &pInfo->ftCreationTime);
     1164            pmDateTimeToFileTime(&statusL.fdateLastAccess,
     1165                                 &statusL.ftimeLastAccess,
     1166                                 &pInfo->ftLastAccessTime);
     1167            pmDateTimeToFileTime(&statusL.fdateLastWrite,
     1168                                 &statusL.ftimeLastWrite,
     1169                                 &pInfo->ftLastWriteTime);
     1170
     1171            pInfo->nFileSizeHigh = statusL.cbFile.ulHi;
     1172            pInfo->nFileSizeLow  = statusL.cbFile.ulLo;
     1173            pInfo->dwVolumeSerialNumber = 0; //todo
     1174            pInfo->nNumberOfLinks = 1;
     1175            pInfo->nFileIndexHigh = 0;
     1176            pInfo->nFileIndexLow  = 0;
     1177        }
    11811178   }
    11821179   else
    11831180   {
    1184      FILESTATUS4  status  = { 0 };
    1185 
    1186     rc = DosQueryFileInfo(hFile,
    1187                         FIL_QUERYEASIZE,
    1188                         &status,
     1181        FILESTATUS4  status  = { 0 };
     1182
     1183        rc = DosQueryFileInfo(hFile, FIL_QUERYEASIZE, &status,
    11891184                              sizeof(status));
    1190     if(rc == NO_ERROR)
    1191     {
    1192       pInfo->dwFileAttributes = 0;
    1193     if(!(status.attrFile & NOT_NORMAL))
    1194         pInfo->dwFileAttributes |= FILE_ATTRIBUTE_NORMAL_W;
    1195     if(status.attrFile & FILE_READONLY)
    1196             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_READONLY_W;
    1197     if(status.attrFile & FILE_HIDDEN)
    1198             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN_W;
    1199     if(status.attrFile & FILE_SYSTEM)
    1200             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_SYSTEM_W;
    1201     if(status.attrFile & FILE_DIRECTORY)
    1202             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_DIRECTORY_W;
    1203     if(status.attrFile & FILE_ARCHIVED)
    1204             pInfo->dwFileAttributes |= FILE_ATTRIBUTE_ARCHIVE_W;
    1205 
    1206     pmDateTimeToFileTime(&status.fdateCreation,
    1207                                &status.ftimeCreation,
    1208                                &pInfo->ftCreationTime);
    1209     pmDateTimeToFileTime(&status.fdateLastAccess,
    1210                                &status.ftimeLastAccess,
    1211                                &pInfo->ftLastAccessTime);
    1212     pmDateTimeToFileTime(&status.fdateLastWrite,
    1213                                &status.ftimeLastWrite,
    1214                                &pInfo->ftLastWriteTime);
    1215 
    1216     pInfo->nFileSizeHigh = 0;
    1217     pInfo->nFileSizeLow = status.cbFile;
    1218     pInfo->dwVolumeSerialNumber = 0; //todo
    1219     pInfo->nNumberOfLinks = 1;
    1220     pInfo->nFileIndexHigh = 0;
    1221     pInfo->nFileIndexLow = 0;
    1222      }
     1185        if(rc == NO_ERROR)
     1186        {
     1187            pInfo->dwFileAttributes = 0;
     1188            if(!(status.attrFile & NOT_NORMAL))
     1189                pInfo->dwFileAttributes |= FILE_ATTRIBUTE_NORMAL_W;
     1190            if(status.attrFile & FILE_READONLY)
     1191                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_READONLY_W;
     1192            if(status.attrFile & FILE_HIDDEN)
     1193                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN_W;
     1194            if(status.attrFile & FILE_SYSTEM)
     1195                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_SYSTEM_W;
     1196            if(status.attrFile & FILE_DIRECTORY)
     1197                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_DIRECTORY_W;
     1198            if(status.attrFile & FILE_ARCHIVED)
     1199                    pInfo->dwFileAttributes |= FILE_ATTRIBUTE_ARCHIVE_W;
     1200
     1201            pmDateTimeToFileTime(&status.fdateCreation,
     1202                                 &status.ftimeCreation,
     1203                                 &pInfo->ftCreationTime);
     1204            pmDateTimeToFileTime(&status.fdateLastAccess,
     1205                                 &status.ftimeLastAccess,
     1206                                 &pInfo->ftLastAccessTime);
     1207            pmDateTimeToFileTime(&status.fdateLastWrite,
     1208                                 &status.ftimeLastWrite,
     1209                                 &pInfo->ftLastWriteTime);
     1210
     1211            pInfo->nFileSizeHigh = 0;
     1212            pInfo->nFileSizeLow = status.cbFile;
     1213            pInfo->dwVolumeSerialNumber = 0; //todo
     1214            pInfo->nNumberOfLinks = 1;
     1215            pInfo->nFileIndexHigh = 0;
     1216            pInfo->nFileIndexLow = 0;
     1217        }
    12231218   }
    12241219   if(rc) {
    12251220        SetLastError(error2WinError(rc));
    1226     return FALSE;
     1221        return FALSE;
    12271222   }
    12281223   SetLastError(ERROR_SUCCESS_W);
     
    12421237  if(rc == NO_ERROR)
    12431238  {
    1244   if(creationdate && creationtime) {
    1245     fileInfo.fdateCreation   = *(FDATE *)&creationdate;
    1246           fileInfo.ftimeCreation   = *(FTIME *)&creationtime;
    1247   }
    1248   if(lastaccessdate && lastaccesstime) {
    1249     fileInfo.fdateLastAccess = *(FDATE *)&lastaccessdate;
    1250           fileInfo.ftimeLastAccess = *(FTIME *)&lastaccesstime;
    1251   }
    1252   if(lastwritedate && lastwritetime) {
    1253     fileInfo.fdateLastWrite  = *(FDATE *)&lastwritedate;
    1254           fileInfo.ftimeLastWrite  = *(FTIME *)&lastwritetime;
    1255   }
    1256 
    1257   rc = DosSetFileInfo(hFile, FIL_STANDARD, &fileInfo, sizeof(fileInfo));
     1239    if(creationdate && creationtime) {
     1240        fileInfo.fdateCreation   = *(FDATE *)&creationdate;
     1241        fileInfo.ftimeCreation   = *(FTIME *)&creationtime;
     1242    }
     1243    if(lastaccessdate && lastaccesstime) {
     1244        fileInfo.fdateLastAccess = *(FDATE *)&lastaccessdate;
     1245        fileInfo.ftimeLastAccess = *(FTIME *)&lastaccesstime;
     1246    }
     1247    if(lastwritedate && lastwritetime) {
     1248        fileInfo.fdateLastWrite  = *(FDATE *)&lastwritedate;
     1249        fileInfo.ftimeLastWrite  = *(FTIME *)&lastwritetime;
     1250    }
     1251
     1252    rc = DosSetFileInfo(hFile, FIL_STANDARD, &fileInfo, sizeof(fileInfo));
    12581253  }
    12591254
    12601255  if(rc)
    12611256  {
    1262         SetLastError(error2WinError(rc));
    1263       return FALSE;
     1257    SetLastError(error2WinError(rc));
     1258    return FALSE;
    12641259  }
    12651260  SetLastError(ERROR_SUCCESS_W);
     
    12791274  if(rc == NO_ERROR)
    12801275  {
    1281   *creationdate   = *(WORD *)&fileInfo.fdateCreation;
    1282         *creationtime   = *(WORD *)&fileInfo.ftimeCreation;
    1283   *lastaccessdate = *(WORD *)&fileInfo.fdateLastAccess;
    1284         *lastaccesstime = *(WORD *)&fileInfo.ftimeLastAccess;
    1285   *lastwritedate  = *(WORD *)&fileInfo.fdateLastWrite;
    1286         *lastwritetime  = *(WORD *)&fileInfo.ftimeLastWrite;
     1276    *creationdate   = *(WORD *)&fileInfo.fdateCreation;
     1277    *creationtime   = *(WORD *)&fileInfo.ftimeCreation;
     1278    *lastaccessdate = *(WORD *)&fileInfo.fdateLastAccess;
     1279    *lastaccesstime = *(WORD *)&fileInfo.ftimeLastAccess;
     1280    *lastwritedate  = *(WORD *)&fileInfo.fdateLastWrite;
     1281    *lastwritetime  = *(WORD *)&fileInfo.ftimeLastWrite;
    12871282  }
    12881283
    12891284  if(rc)
    12901285  {
    1291         SetLastError(error2WinError(rc));
    1292       return FALSE;
     1286    SetLastError(error2WinError(rc));
     1287    return FALSE;
    12931288  }
    12941289  SetLastError(ERROR_SUCCESS_W);
     
    19191914   switch(rc) {
    19201915   case ERROR_INVALID_DRIVE:
    1921   return ERROR_INVALID_DRIVE_W;
     1916        return ERROR_INVALID_DRIVE_W;
    19221917   case ERROR_NO_VOLUME_LABEL:
    1923   return ERROR_NO_VOLUME_LABEL_W;
     1918        return ERROR_NO_VOLUME_LABEL_W;
    19241919   case NO_ERROR:
    1925   break;
     1920        break;
    19261921   default:
    1927   return ERROR_NOT_ENOUGH_MEMORY; //whatever
     1922        return ERROR_NOT_ENOUGH_MEMORY; //whatever
    19281923   }
    19291924
     
    19331928   if(lpVolumeNameBuffer)
    19341929   {
    1935     if(nVolumeNameSize > fsi.vol.cch) {
    1936              strcpy(lpVolumeNameBuffer, (PCHAR)fsi.vol.szVolLabel);
    1937   }
     1930        if(nVolumeNameSize > fsi.vol.cch) {
     1931            strcpy(lpVolumeNameBuffer, (PCHAR)fsi.vol.szVolLabel);
     1932        }
    19381933        else return ERROR_BUFFER_OVERFLOW_W;
    19391934   }
     
    20412036{
    20422037  APIRET rc;
    2043  
    2044   rc = DosQuerySysInfo(iStart, iLast, pBuf, cbBuf); 
     2038
     2039  rc = DosQuerySysInfo(iStart, iLast, pBuf, cbBuf);
    20452040  SetLastError(error2WinError(rc,ERROR_INVALID_HANDLE));
    20462041  return rc;
  • trunk/src/kernel32/profile.cpp

    r4353 r4372  
    1 /* $Id: profile.cpp,v 1.25 2000-10-01 21:16:04 phaller Exp $ */
     1/* $Id: profile.cpp,v 1.26 2000-10-02 13:38:57 sandervl Exp $ */
    22
    33/*
     
    4747
    4848#define SystemHeap               GetProcessHeap()
    49 
    50 #ifndef strcasecmp
    51 #define strcasecmp               stricmp
    52 #endif
    53 
    5449#define DOSFS_GetFullName(a,b,c) strcpy(c,a)
    5550#define CharLowerA(a)            (a)
  • trunk/src/kernel32/wprocess.cpp

    r4351 r4372  
    1 /* $Id: wprocess.cpp,v 1.97 2000-10-01 12:05:57 sandervl Exp $ */
     1/* $Id: wprocess.cpp,v 1.98 2000-10-02 13:38:58 sandervl Exp $ */
    22
    33/*
     
    16431643    rc = O32_WaitForInputIdle(procinfo.hProcess, 15000);
    16441644    if(rc != 0) {
    1645     dprintf(("WinExec: WaitForInputIdle %x returned %x", procinfo.hProcess, rc));
     1645        dprintf(("WinExec: WaitForInputIdle %x returned %x", procinfo.hProcess, rc));
    16461646    }
    16471647    return procinfo.hProcess; //correct?
     1648}
     1649/**********************************************************************
     1650 * LoadModule    (KERNEL32.499)
     1651 *
     1652 * Wine: 20000909
     1653 *
     1654 * Copyright 1995 Alexandre Julliard
     1655 */
     1656HINSTANCE WINAPI LoadModule( LPCSTR name, LPVOID paramBlock )
     1657{
     1658    LOADPARAMS *params = (LOADPARAMS *)paramBlock;
     1659    PROCESS_INFORMATION info;
     1660    STARTUPINFOA startup;
     1661    HINSTANCE hInstance;
     1662    LPSTR cmdline, p;
     1663    char filename[MAX_PATH];
     1664    BYTE len;
     1665
     1666    dprintf(("LoadModule %s %x", name, paramBlock));
     1667
     1668    if (!name) return ERROR_FILE_NOT_FOUND;
     1669
     1670    if (!SearchPathA( NULL, name, ".exe", sizeof(filename), filename, NULL ) &&
     1671        !SearchPathA( NULL, name, NULL, sizeof(filename), filename, NULL ))
     1672        return GetLastError();
     1673
     1674    len = (BYTE)params->lpCmdLine[0];
     1675    if (!(cmdline = (LPSTR)HeapAlloc( GetProcessHeap(), 0, strlen(filename) + len + 2 )))
     1676        return ERROR_NOT_ENOUGH_MEMORY;
     1677
     1678    strcpy( cmdline, filename );
     1679    p = cmdline + strlen(cmdline);
     1680    *p++ = ' ';
     1681    memcpy( p, params->lpCmdLine + 1, len );
     1682    p[len] = 0;
     1683
     1684    memset( &startup, 0, sizeof(startup) );
     1685    startup.cb = sizeof(startup);
     1686    if (params->lpCmdShow)
     1687    {
     1688        startup.dwFlags = STARTF_USESHOWWINDOW;
     1689        startup.wShowWindow = params->lpCmdShow[1];
     1690    }
     1691   
     1692    if (CreateProcessA( filename, cmdline, NULL, NULL, FALSE, 0,
     1693                        params->lpEnvAddress, NULL, &startup, &info ))
     1694    {
     1695        /* Give 15 seconds to the app to come up */
     1696        if ( O32_WaitForInputIdle ( info.hProcess, 15000 ) ==  0xFFFFFFFF )
     1697            dprintf(("ERROR: WaitForInputIdle failed: Error %ld\n", GetLastError() ));
     1698        hInstance = 33;
     1699        /* Close off the handles */
     1700        CloseHandle( info.hThread );
     1701        CloseHandle( info.hProcess );
     1702    }
     1703    else if ((hInstance = GetLastError()) >= 32)
     1704    {
     1705        dprintf(("ERROR: Strange error set by CreateProcess: %d\n", hInstance ));
     1706        hInstance = 11;
     1707    }
     1708
     1709    HeapFree( GetProcessHeap(), 0, cmdline );
     1710    return hInstance;
    16481711}
    16491712//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.