VirtualBox

Changeset 28918 in vbox for trunk/src/VBox/Runtime


Ignore:
Timestamp:
Apr 29, 2010 6:30:09 PM (15 years ago)
Author:
vboxsync
Message:

iprt: dropped RT_DONT_CONVERT_FILENAMES, we've never needed it so far...

Location:
trunk/src/VBox/Runtime
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/include/internal/dir.h

    r28917 r28918  
    7575    /** Set to indicate that the Data member contains unread data. */
    7676    bool                fDataUnread;
    77 #ifndef RT_DONT_CONVERT_FILENAMES
    7877    /** Pointer to the converted filename.
    7978     * This can be NULL. */
     
    8584    /** The length of the converted filename. */
    8685    size_t              cchName;
    87 #endif
    8886
    8987#ifdef RT_OS_WINDOWS
     
    9290    /** Find data buffer.
    9391     * fDataUnread indicates valid data. */
    94 # ifdef RT_DONT_CONVERT_FILENAMES
    95     WIN32_FIND_DATAA    Data;
    96 # else
    9792    WIN32_FIND_DATAW    Data;
    98 # endif
    9993
    10094#else /* 'POSIX': */
  • trunk/src/VBox/Runtime/r3/dir.cpp

    r28915 r28918  
    637637    Assert(pb - (uint8_t *)pDir + cchRealPath + 1 <= cbAllocated);
    638638    pDir->fDataUnread = false;
    639 #ifndef RT_DONT_CONVERT_FILENAMES
    640639    pDir->pszName = NULL;
    641640    pDir->cchName = 0;
    642 #endif
    643641#ifndef RT_OS_WINDOWS
    644642    pDir->cbMaxName = cbDir - RT_OFFSETOF(RTDIR, Data.d_name);
  • trunk/src/VBox/Runtime/r3/posix/dir-posix.cpp

    r28915 r28918  
    261261        }
    262262
    263 #ifndef RT_DONT_CONVERT_FILENAMES
    264263        /*
    265264         * Convert the filename to UTF-8.
     
    279278            break;
    280279        rtPathFreeIprt(pDir->pszName, pDir->Data.d_name);
    281         pDir->pszName = NULL;
    282 #else
    283         if (   !pDir->pfnFilter
    284             || pDir->pfnFilter(pDir, pDir->Data.d_name))
    285             break;
    286 #endif
     280        pDir->pszName     = NULL;
    287281        pDir->fDataUnread = false;
    288282    }
     
    349343         * Check if we've got enough space to return the data.
    350344         */
    351 #ifdef RT_DONT_CONVERT_FILENAMES
    352         const char  *pszName    = pDir->Data.d_name;
    353         const size_t cchName    = strlen(pszName);
    354 #else
    355345        const char  *pszName    = pDir->pszName;
    356346        const size_t cchName    = pDir->cchName;
    357 #endif
    358347        const size_t cbRequired = RT_OFFSETOF(RTDIRENTRY, szName[1]) + cchName;
    359348        if (pcbDirEntry)
     
    376365            /* free cached data */
    377366            pDir->fDataUnread  = false;
    378 #ifndef RT_DONT_CONVERT_FILENAMES
    379367            rtPathFreeIprt(pDir->pszName, pDir->Data.d_name);
    380368            pDir->pszName = NULL;
    381 #endif
    382369        }
    383370        else
     
    457444         * Check if we've got enough space to return the data.
    458445         */
    459 #ifdef RT_DONT_CONVERT_FILENAMES
    460         const char  *pszName    = pDir->Data.d_name;
    461         const size_t cchName    = strlen(pszName);
    462 #else
    463446        const char  *pszName    = pDir->pszName;
    464447        const size_t cchName    = pDir->cchName;
    465 #endif
    466448        const size_t cbRequired = RT_OFFSETOF(RTDIRENTRYEX, szName[1]) + cchName;
    467449        if (pcbDirEntry)
     
    501483            /* free cached data */
    502484            pDir->fDataUnread  = false;
    503 #ifndef RT_DONT_CONVERT_FILENAMES
    504485            rtPathFreeIprt(pDir->pszName, pDir->Data.d_name);
    505486            pDir->pszName = NULL;
    506 #endif
    507487        }
    508488        else
  • trunk/src/VBox/Runtime/r3/posix/fileio-posix.cpp

    r28915 r28918  
    7575*   Defined Constants And Macros                                               *
    7676*******************************************************************************/
    77 /** @def RT_DONT_CONVERT_FILENAMES
    78  * Define this to pass UTF-8 unconverted to the kernel. */
    79 #ifdef DOXYGEN_RUNNING
    80 #define RT_DONT_CONVERT_FILENAMES 1
    81 #endif
    82 
    8377/** Default file permissions for newly created files. */
    8478#if defined(S_IRUSR) && defined(S_IWUSR)
     
    201195     * Open/create the file.
    202196     */
    203 #ifdef RT_DONT_CONVERT_FILENAMES
    204     int fh = open(pszFilename, fOpenMode, fMode);
    205     int iErr = errno;
    206 #else
    207197    char const *pszNativeFilename;
    208198    rc = rtPathToNative(&pszNativeFilename, pszFilename, NULL);
     
    213203    int iErr = errno;
    214204    rtPathFreeNative(pszNativeFilename, pszFilename);
    215 #endif
    216205    if (fh >= 0)
    217206    {
  • trunk/src/VBox/Runtime/r3/win/dir-win.cpp

    r28915 r28918  
    160160     */
    161161    int rc = VINF_SUCCESS;
    162 #ifndef RT_DONT_CONVERT_FILENAMES
    163162    PRTUTF16 pwszName;
    164163    rc = RTStrToUtf16(pszPathBuf, &pwszName);
     
    166165    {
    167166        pDir->hDir    = FindFirstFileW((LPCWSTR)pwszName, &pDir->Data);
    168 #else
    169         pDir->hDir    = FindFirstFileA(pszPathBuf, &pDir->Data);
    170 #endif
    171167        if (pDir->hDir != INVALID_HANDLE_VALUE)
    172168            pDir->fDataUnread = true;
     
    176172        else
    177173            rc = RTErrConvertFromWin32(GetLastError());
    178 #ifndef RT_DONT_CONVERT_FILENAMES
    179174        RTUtf16Free(pwszName);
    180175    }
    181 #endif
    182176
    183177    return rc;
     
    247241    if (!pDir->fDataUnread)
    248242    {
    249 #ifdef RT_DONT_CONVERT_FILENAMES
    250         BOOL fRc = FindNextFileA(pDir->hDir, &pDir->Data);
    251 
    252 #else
    253243        RTStrFree(pDir->pszName);
    254244        pDir->pszName = NULL;
    255245
    256246        BOOL fRc = FindNextFileW(pDir->hDir, &pDir->Data);
    257 #endif
    258247        if (!fRc)
    259248        {
     
    265254    }
    266255
    267 #ifndef RT_DONT_CONVERT_FILENAMES
    268256    /*
    269257     * Convert the filename to UTF-8.
     
    279267        pDir->cchName = strlen(pDir->pszName);
    280268    }
    281 #endif
    282269
    283270    /*
    284271     * Check if we've got enough space to return the data.
    285272     */
    286 #ifdef RT_DONT_CONVERT_FILENAMES
    287     const char  *pszName    = pDir->Data.cName;
    288     const size_t cchName    = strlen(pszName);
    289 #else
    290273    const char  *pszName    = pDir->pszName;
    291274    const size_t cchName    = pDir->cchName;
    292 #endif
    293275    const size_t cbRequired = RT_OFFSETOF(RTDIRENTRY, szName[1]) + cchName;
    294276    if (pcbDirEntry)
     
    352334    if (!pDir->fDataUnread)
    353335    {
    354 #ifdef RT_DONT_CONVERT_FILENAMES
    355         BOOL fRc = FindNextFileA(pDir->hDir, &pDir->Data);
    356 
    357 #else
    358336        RTStrFree(pDir->pszName);
    359337        pDir->pszName = NULL;
    360338
    361339        BOOL fRc = FindNextFileW(pDir->hDir, &pDir->Data);
    362 #endif
    363340        if (!fRc)
    364341        {
     
    370347    }
    371348
    372 #ifndef RT_DONT_CONVERT_FILENAMES
    373349    /*
    374350     * Convert the filename to UTF-8.
     
    384360        pDir->cchName = strlen(pDir->pszName);
    385361    }
    386 #endif
    387362
    388363    /*
    389364     * Check if we've got enough space to return the data.
    390365     */
    391 #ifdef RT_DONT_CONVERT_FILENAMES
    392     const char  *pszName    = pDir->Data.cName;
    393     const size_t cchName    = strlen(pszName);
    394 #else
    395366    const char  *pszName    = pDir->pszName;
    396367    const size_t cchName    = pDir->cchName;
    397 #endif
    398368    const size_t cbRequired = RT_OFFSETOF(RTDIRENTRYEX, szName[1]) + cchName;
    399369    if (pcbDirEntry)
     
    409379    Assert(pDirEntry->cbName == cchName);
    410380    memcpy(pDirEntry->szName, pszName, cchName + 1);
    411 #ifndef RT_DONT_CONVERT_FILENAMES /* this ain't nice since the whole point of this define is not to drag in conversion... */
    412381    if (pDir->Data.cAlternateFileName[0])
    413382    {
     
    424393    }
    425394    else
    426 #endif
    427395    {
    428396        memset(pDirEntry->wszShortName, 0, sizeof(pDirEntry->wszShortName));
  • trunk/src/VBox/Runtime/r3/win/fileio-win.cpp

    r28800 r28918  
    4646*   Defined Constants And Macros                                               *
    4747*******************************************************************************/
    48 /** @def RT_DONT_CONVERT_FILENAMES
    49  * Define this to pass UTF-8 unconverted to the kernel. */
    50 #ifdef DOXYGEN_RUNNING
    51 # define RT_DONT_CONVERT_FILENAMES 1
    52 #endif
    5348
    5449
     
    280275     * Open/Create the file.
    281276     */
    282 #ifdef RT_DONT_CONVERT_FILENAMES
    283     HANDLE hFile = CreateFile(pszFilename,
    284                               dwDesiredAccess,
    285                               dwShareMode,
    286                               pSecurityAttributes,
    287                               dwCreationDisposition,
    288                               dwFlagsAndAttributes,
    289                               NULL);
    290 #else
    291277    PRTUTF16 pwszFilename;
    292278    rc = RTStrToUtf16(pszFilename, &pwszFilename);
     
    301287                               dwFlagsAndAttributes,
    302288                               NULL);
    303 #endif
    304289    if (hFile != INVALID_HANDLE_VALUE)
    305290    {
     
    314299            &&  (fOpen & RTFILE_O_NOT_CONTENT_INDEXED))
    315300        {
    316 #ifdef RT_DONT_CONVERT_FILENAMES
    317             if (!SetFileAttributes(pszFilename, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED))
    318 #else
    319301            if (!SetFileAttributesW(pwszFilename, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED))
    320 #endif
    321302                rc = RTErrConvertFromWin32(GetLastError());
    322303        }
     
    335316            *pFile = (RTFILE)hFile;
    336317            Assert((HANDLE)*pFile == hFile);
    337 #ifndef RT_DONT_CONVERT_FILENAMES
    338318            RTUtf16Free(pwszFilename);
    339 #endif
    340319            return VINF_SUCCESS;
    341320        }
     
    345324    else
    346325        rc = RTErrConvertFromWin32(GetLastError());
    347 #ifndef RT_DONT_CONVERT_FILENAMES
    348326    RTUtf16Free(pwszFilename);
    349 #endif
    350327    return rc;
    351328}
     
    805782RTR3DECL(int)  RTFileDelete(const char *pszFilename)
    806783{
    807 #ifdef RT_DONT_CONVERT_FILENAMES
    808     if (DeleteFile(pszFilename))
    809         return VINF_SUCCESS;
    810     return RTErrConvertFromWin32(GetLastError());
    811 
    812 #else
    813784    PRTUTF16 pwszFilename;
    814785    int rc = RTStrToUtf16(pszFilename, &pwszFilename);
     
    821792
    822793    return rc;
    823 #endif
    824794}
    825795
  • trunk/src/VBox/Runtime/r3/win/fs-win.cpp

    r28800 r28918  
    8686
    8787
    88 #ifndef RT_DONT_CONVERT_FILENAMES
    8988
    9089/**
     
    155154}
    156155
    157 #else /* RT_DONT_CONVERT_FILENAMES */
    158 
    159 /**
    160  * Finds the root of the specified volume.
    161  *
    162  * @returns iprt status code.
    163  * @param   pszFsPath       Path within the filesystem. Verified as one byte or more.
    164  * @param   ppszFsRoot      Where to store the returned string. Free with rtFsFreeRoot(),
    165  */
    166 static int rtFsGetRoot(const char *pszFsPath, char **ppszFsRoot)
    167 {
    168     /*
    169      * Do straight forward stuff first,
    170      */
    171     if (rtFsIsRoot(pszFsPath))
    172         return RTStrDupEx(ppszFsRoot, pszFsPath);
    173 
    174     /*
    175      * Expand and add slash (if required).
    176      */
    177     char szFullPath[RTPATH_MAX];
    178     int rc = RTPathAbs(pszFsPath, szFullPath, sizeof(szFullPath));
    179     if (RT_FAILURE(rc))
    180         return rc;
    181     size_t cb = strlen(szFullPath);
    182     if (!RTPATH_IS_SLASH(szFullPath[cb - 1]))
    183     {
    184         AssertReturn(cb + 1 < RTPATH_MAX);
    185         szFullPath[cb] = '\\';
    186         szFullPath[++cb] = '\0';
    187     }
    188 
    189     /*
    190      * Walk the path until our proper API is happy or there is no more path left.
    191      */
    192     if (GetVolumeInformation(szFullPath, NULL, 0, NULL, NULL, 0, NULL, 0))
    193     {
    194         char *pszEnd = szFullPath + cb;
    195         char *pszMin = szFullPath + 2;
    196         do
    197         {
    198             /* Strip off the last path component. */
    199             while (pszEnd-- > pszMin)
    200                 if (RTPATH_IS_SLASH(*pszEnd))
    201                     break;
    202             AssertReturn(pszEnd >= pszMin, VERR_INTERNAL_ERROR);
    203             pszEnd[1] = '\0';
    204         } while (GetVolumeInformationA(pszStart, NULL, 0, NULL, NULL, 0, NULL, 0));
    205     }
    206 
    207     return RTStrDupEx(ppszFsRoot, szFullPath);
    208 }
    209 
    210 /**
    211  * Frees string returned by rtFsGetRoot().
    212  */
    213 static void rtFsFreeRoot(char *pszFsRoot)
    214 {
    215     RTStrFree(pszFsRoot);
    216 }
    217 
    218 #endif /* RT_DONT_CONVERT_FILENAMES*/
    219 
    220156
    221157RTR3DECL(int) RTFsQuerySizes(const char *pszFsPath, RTFOFF *pcbTotal, RTFOFF *pcbFree,
     
    226162     */
    227163    AssertMsgReturn(VALID_PTR(pszFsPath) && *pszFsPath, ("%p", pszFsPath), VERR_INVALID_PARAMETER);
    228 #ifndef RT_DONT_CONVERT_FILENAMES
    229164    PRTUTF16 pwszFsRoot;
    230165    int rc = rtFsGetRoot(pszFsPath, &pwszFsRoot);
    231 #else
    232     char pszFsRoot;
    233     int rc = rtFsGetRoot(pszFsPath, &pszFsRoot);
    234 #endif
    235166    if (RT_FAILURE(rc))
    236167        return rc;
     
    243174        ULARGE_INTEGER cbTotal;
    244175        ULARGE_INTEGER cbFree;
    245 #ifndef RT_DONT_CONVERT_FILENAMES
    246176        if (GetDiskFreeSpaceExW(pwszFsRoot, &cbFree, &cbTotal, NULL))
    247 #else
    248         if (GetDiskFreeSpaceExA(pszFsRoot, &cbFree, &cbTotal, NULL))
    249 #endif
    250177        {
    251178            if (pcbTotal)
     
    272199        DWORD cbSector;
    273200        DWORD cSectorsPerCluster;
    274 #ifndef RT_DONT_CONVERT_FILENAMES
    275201        if (GetDiskFreeSpaceW(pwszFsRoot, &cSectorsPerCluster, &cbSector, &dwDummy1, &dwDummy2))
    276 #else
    277         if (GetDiskFreeSpaceA(pszFsRoot, &cSectorsPerCluster, &cbSector, &dwDummy1, &dwDummy2))
    278 #endif
    279202        {
    280203            if (pcbBlock)
     
    292215    }
    293216
    294 #ifndef RT_DONT_CONVERT_FILENAMES
    295217    rtFsFreeRoot(pwszFsRoot);
    296 #else
    297     rtFsFreeRoot(pszFsRoot);
    298 #endif
    299218    return rc;
    300219}
     
    315234    AssertMsgReturn(VALID_PTR(pszFsPath) && *pszFsPath, ("%p", pszFsPath), VERR_INVALID_PARAMETER);
    316235    AssertMsgReturn(VALID_PTR(pu32Serial), ("%p", pu32Serial), VERR_INVALID_PARAMETER);
    317 #ifndef RT_DONT_CONVERT_FILENAMES
    318236    PRTUTF16 pwszFsRoot;
    319237    int rc = rtFsGetRoot(pszFsPath, &pwszFsRoot);
    320 #else
    321     char pszFsRoot;
    322     int rc = rtFsGetRoot(pszFsPath, &pszFsRoot);
    323 #endif
    324238    if (RT_FAILURE(rc))
    325239        return rc;
     
    331245    DWORD   dwFlags;
    332246    DWORD   dwSerial;
    333 #ifndef RT_DONT_CONVERT_FILENAMES
    334247    if (GetVolumeInformationW(pwszFsRoot, NULL, 0, &dwSerial, &dwMaxName, &dwFlags, NULL, 0))
    335 #else
    336     if (GetVolumeInformationA(pszFsRoot, NULL, 0, &dwSerial, &dwMaxName, &dwFlags, NULL, 0))
    337 #endif
    338248        *pu32Serial = dwSerial;
    339249    else
     
    345255    }
    346256
    347 #ifndef RT_DONT_CONVERT_FILENAMES
    348257    RTUtf16Free(pwszFsRoot);
    349 #else
    350     RTStrFree(pszFsRoot);
    351 #endif
    352258    return rc;
    353259}
     
    368274    AssertMsgReturn(VALID_PTR(pszFsPath) && *pszFsPath, ("%p", pszFsPath), VERR_INVALID_PARAMETER);
    369275    AssertMsgReturn(VALID_PTR(pProperties), ("%p", pProperties), VERR_INVALID_PARAMETER);
    370 #ifndef RT_DONT_CONVERT_FILENAMES
    371276    PRTUTF16 pwszFsRoot;
    372277    int rc = rtFsGetRoot(pszFsPath, &pwszFsRoot);
    373 #else
    374     char pszFsRoot;
    375     int rc = rtFsGetRoot(pszFsPath, &pszFsRoot);
    376 #endif
    377278    if (RT_FAILURE(rc))
    378279        return rc;
     
    384285    DWORD   dwFlags;
    385286    DWORD   dwSerial;
    386 #ifndef RT_DONT_CONVERT_FILENAMES
    387287    if (GetVolumeInformationW(pwszFsRoot, NULL, 0, &dwSerial, &dwMaxName, &dwFlags, NULL, 0))
    388 #else
    389     if (GetVolumeInformationA(pszFsRoot, NULL, 0, &dwSerial, &dwMaxName, &dwFlags, NULL, 0))
    390 #endif
    391288    {
    392289        memset(pProperties, 0, sizeof(*pProperties));
     
    407304    }
    408305
    409 #ifndef RT_DONT_CONVERT_FILENAMES
    410306    RTUtf16Free(pwszFsRoot);
    411 #else
    412     RTStrFree(pszFsRoot);
    413 #endif
    414307    return rc;
    415308}
  • trunk/src/VBox/Runtime/r3/win/path-win.cpp

    r28800 r28918  
    206206     */
    207207    WIN32_FILE_ATTRIBUTE_DATA Data;
    208 #ifndef RT_DONT_CONVERT_FILENAMES
    209208    PRTUTF16 pwszPath;
    210209    int rc = RTStrToUtf16(pszPath, &pwszPath);
     
    240239    }
    241240    RTUtf16Free(pwszPath);
    242 #else
    243     if (!GetFileAttributesExA(pszPath, GetFileExInfoStandard, &Data))
    244     {
    245         /* Fallback to FindFileFirst in case of sharing violation. */
    246         if (GetLastError() != ERROR_SHARING_VIOLATION)
    247             return RTErrConvertFromWin32(GetLastError());
    248         WIN32_FIND_DATAA FindData;
    249         HANDLE hDir = FindFirstFileA(pszPath, &FindData);
    250         if (hDir == INVALID_HANDLE_VALUE)
    251             return RTErrConvertFromWin32(GetLastError());
    252         FindClose(hDir);
    253         Data.dwFileAttributes = FindData.dwFileAttributes;
    254         Data.ftCreationTime = FindData.ftCreationTime;
    255         Data.ftLastAccessTime = FindData.ftLastAccessTime;
    256         Data.ftLastWriteTime = FindData.ftLastWriteTime;
    257         Data.nFileSizeHigh = FindData.nFileSizeHigh;
    258         Data.nFileSizeLow = FindData.nFileSizeLow;
    259     }
    260 #endif
    261241    if (   (fFlags & RTPATH_F_FOLLOW_LINK)
    262242        && (Data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT))
     
    538518     */
    539519    DWORD dwAttr;
    540 #ifndef RT_DONT_CONVERT_FILENAMES
    541520    PRTUTF16 pwszPath;
    542521    int rc = RTStrToUtf16(pszPath, &pwszPath);
     
    548527    else
    549528        dwAttr = INVALID_FILE_ATTRIBUTES;
    550 #else
    551     dwAttr = GetFileAttributesA(pszPath);
    552 #endif
    553 
    554529    if (dwAttr == INVALID_FILE_ATTRIBUTES)
    555530        return false;
     
    577552     * to MSDN, thus the GetFullPathName call.
    578553     */
    579 #ifndef RT_DONT_CONVERT_FILENAMES
    580554    RTUTF16 wszCurPath[RTPATH_MAX];
    581555    if (GetCurrentDirectoryW(RTPATH_MAX, wszCurPath))
     
    589563    else
    590564        rc = RTErrConvertFromWin32(GetLastError());
    591 #else
    592     char szCurPath[RTPATH_MAX];
    593     if (GetCurrentDirectory(RTPATH_MAX, szCurPath))
    594     {
    595         if (GetFullPathName(szCurPath, cchPath, pszPath, NULL))
    596             rc = VINF_SUCCESS;
    597         else
    598             rc = RTErrConvertFromWin32(GetLastError());
    599     }
    600     else
    601         rc = RTErrConvertFromWin32(GetLastError());
    602 #endif
    603565    return rc;
    604566}
     
    616578     * This interface is almost identical to the Windows API.
    617579     */
    618 #ifndef RT_DONT_CONVERT_FILENAMES
    619580    PRTUTF16 pwszPath;
    620581    int rc = RTStrToUtf16(pszPath, &pwszPath);
    621582    if (RT_SUCCESS(rc))
    622583    {
    623         /** @todo improove the slash stripping a bit? */
     584        /** @todo improve the slash stripping a bit? */
    624585        size_t cwc = RTUtf16Len(pwszPath);
    625586        if (    cwc >= 2
     
    634595        RTUtf16Free(pwszPath);
    635596    }
    636 #else
    637     int rc = VINF_SUCCESS;
    638     /** @todo improove the slash stripping a bit? */
    639     char const *pszEnd = strchr(pszPath, '\0');
    640     size_t const cchPath = pszPath - pszEnd;
    641     if (    cchPath >= 2
    642         &&  (   pszEnd[-1] == '/'
    643              || pszEnd[-1] == '\\')
    644         &&  pszEnd[-2] == ':')
    645     {
    646         char *pszCopy = (char *)RTMemTmpAlloc(cchPath);
    647         if (pszCopy)
    648         {
    649             memcpy(pszCopy, pszPath, cchPath - 1);
    650             pszCopy[cchPath - 1] = '\0';
    651             if (!SetCurrentDirectory(pszCopy))
    652                 rc = RTErrConvertFromWin32(GetLastError());
    653             RTMemTmpFree(pszCopy);
    654         }
    655         else
    656             rc = VERR_NO_MEMORY;
    657     }
    658     else
    659     {
    660         if (!SetCurrentDirectory(pszPath))
    661             rc = RTErrConvertFromWin32(GetLastError());
    662     }
    663 #endif
    664     return rc;
    665 }
    666 
     597    return rc;
     598}
     599
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette