VirtualBox

Ignore:
Timestamp:
Aug 5, 2022 10:48:48 AM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
152851
Message:

IPRT/nocrt: Added no-CRT per-thread data like errno and strtok state. Implemented strtol and errno accessor. bugref:10261

Location:
trunk/src/VBox/Runtime/common/string
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/string/nocrt-strtok.cpp

    r96045 r96052  
    2929*   Header Files                                                                                                                 *
    3030*********************************************************************************************************************************/
    31 #include "internal/iprt.h"
     31#include "internal/nocrt.h"
    3232#include <iprt/string.h>
    3333
     
    3636char *RT_NOCRT(strtok)(char *psz, const char *pszDelimiters)
    3737{
    38     static char *s_pszState = NULL; /** @todo make this a TLS variable. */
    39     return RT_NOCRT(strtok_r)(psz, pszDelimiters, &s_pszState);
     38    PRTNOCRTTHREADDATA pNoCrtData = rtNoCrtThreadDataGet();
     39    if (pNoCrtData)
     40        return RT_NOCRT(strtok_r)(psz, pszDelimiters, &pNoCrtData->pszStrToken);
     41
     42    static char *s_pszFallback = NULL;
     43    return RT_NOCRT(strtok_r)(psz, pszDelimiters, &s_pszFallback);
    4044}
    4145RT_ALIAS_AND_EXPORT_NOCRT_SYMBOL(strtok);
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