Changeset 3094 for trunk/src


Ignore:
Timestamp:
Oct 14, 2017, 5:32:50 AM (8 years ago)
Author:
bird
Message:

utime/lutime windows emulation fixes.

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/kmkbuiltin/mscfakes.c

    r3060 r3094  
    652652int utimes(const char *pszPath, const struct timeval *paTimes)
    653653{
    654     BirdTimeVal_T aTimes[2];
    655     aTimes[0].tv_sec  = paTimes[0].tv_sec;
    656     aTimes[0].tv_usec = paTimes[0].tv_usec;
    657     aTimes[1].tv_sec  = paTimes[1].tv_sec;
    658     aTimes[1].tv_usec = paTimes[1].tv_usec;
    659     return birdUtimes(pszPath, aTimes);
     654    if (paTimes)
     655    {
     656        BirdTimeVal_T aTimes[2];
     657        aTimes[0].tv_sec  = paTimes[0].tv_sec;
     658        aTimes[0].tv_usec = paTimes[0].tv_usec;
     659        aTimes[1].tv_sec  = paTimes[1].tv_sec;
     660        aTimes[1].tv_usec = paTimes[1].tv_usec;
     661        return birdUtimes(pszPath, aTimes);
     662    }
     663    return birdUtimes(pszPath, NULL);
    660664}
    661665
     
    663667int lutimes(const char *pszPath, const struct timeval *paTimes)
    664668{
    665     BirdTimeVal_T aTimes[2];
    666     aTimes[0].tv_sec  = paTimes[0].tv_sec;
    667     aTimes[0].tv_usec = paTimes[0].tv_usec;
    668     aTimes[1].tv_sec  = paTimes[1].tv_sec;
    669     aTimes[1].tv_usec = paTimes[1].tv_usec;
    670     return birdUtimes(pszPath, aTimes);
     669    if (paTimes)
     670    {
     671        BirdTimeVal_T aTimes[2];
     672        aTimes[0].tv_sec  = paTimes[0].tv_sec;
     673        aTimes[0].tv_usec = paTimes[0].tv_usec;
     674        aTimes[1].tv_sec  = paTimes[1].tv_sec;
     675        aTimes[1].tv_usec = paTimes[1].tv_usec;
     676        return birdUtimes(pszPath, aTimes);
     677    }
     678    return birdUtimes(pszPath, NULL);
    671679}
    672680
  • trunk/src/lib/nt/ntutimes.c

    r3060 r3094  
    5757
    5858        memset(&Info, 0, sizeof(0));
    59         Info.LastAccessTime.QuadPart = birdNtTimeFromTimeVal(&paTimes[0]);
    60         Info.LastWriteTime.QuadPart  = birdNtTimeFromTimeVal(&paTimes[1]);
     59        if (paTimes)
     60        {
     61            Info.LastAccessTime.QuadPart = birdNtTimeFromTimeVal(&paTimes[0]);
     62            Info.LastWriteTime.QuadPart  = birdNtTimeFromTimeVal(&paTimes[1]);
     63        }
     64        else
     65        {
     66            /** @todo replace this with something from ntdll  */
     67            FILETIME Now;
     68            GetSystemTimeAsFileTime(&Now);
     69            Info.LastAccessTime.HighPart  = Now.dwHighDateTime;
     70            Info.LastAccessTime.LowPart   = Now.dwLowDateTime;
     71            Info.LastWriteTime.HighPart   = Now.dwHighDateTime;
     72            Info.LastWriteTime.LowPart    = Now.dwLowDateTime;
     73        }
    6174
    6275        Ios.Information = -1;
Note: See TracChangeset for help on using the changeset viewer.