VirtualBox

Ignore:
Timestamp:
Dec 10, 2018 2:30:29 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
127335
Message:

IPRT: Added RTPathFilenameUtf16[Ex].

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/path/RTPathFilenameUtf16.cpp

    r76093 r76094  
    11/* $Id$ */
    22/** @file
    3  * IPRT - RTPathFilename
     3 * IPRT - RTPathFilenameUtf16
    44 */
    55
     
    3636
    3737
    38 RTDECL(char *) RTPathFilename(const char *pszPath)
     38RTDECL(PRTUTF16) RTPathFilenameUtf16(PCRTUTF16 pwszPath)
    3939{
    40     return RTPathFilenameEx(pszPath, RTPATH_STYLE);
     40    return RTPathFilenameExUtf16(pwszPath, RTPATH_STYLE);
    4141}
    42 RT_EXPORT_SYMBOL(RTPathFilename);
     42RT_EXPORT_SYMBOL(RTPathFilenameUtf16);
    4343
    4444
    45 RTDECL(char *) RTPathFilenameEx(const char *pszPath, uint32_t fFlags)
     45RTDECL(PRTUTF16) RTPathFilenameExUtf16(PCRTUTF16 pwszPath, uint32_t fFlags)
    4646{
    47     const char *psz = pszPath;
    48     const char *pszName = pszPath;
     47    PCRTUTF16 pwsz = pwszPath;
     48    PCRTUTF16 pwszName = pwszPath;
    4949
    5050    Assert(RTPATH_STR_F_IS_VALID(fFlags, 0 /*no extra flags*/));
     
    5454    if (fFlags == RTPATH_STR_F_STYLE_DOS)
    5555    {
    56         for (;; psz++)
     56        for (;; pwsz++)
    5757        {
    58             switch (*psz)
     58            switch (*pwsz)
    5959            {
    6060                /* handle separators. */
     
    6262                case '\\':
    6363                case '/':
    64                     pszName = psz + 1;
     64                    pwszName = pwsz + 1;
    6565                    break;
    6666
    6767                /* the end */
    6868                case '\0':
    69                     if (*pszName)
    70                         return (char *)(void *)pszName;
     69                    if (*pwszName)
     70                        return (PRTUTF16)(void *)pwszName;
    7171                    return NULL;
    7272            }
     
    7676    {
    7777        Assert(fFlags == RTPATH_STR_F_STYLE_UNIX);
    78         for (;; psz++)
     78        for (;; pwsz++)
    7979        {
    80             switch (*psz)
     80            switch (*pwsz)
    8181            {
    8282                /* handle separators. */
    8383                case '/':
    84                     pszName = psz + 1;
     84                    pwszName = pwsz + 1;
    8585                    break;
    8686
    8787                /* the end */
    8888                case '\0':
    89                     if (*pszName)
    90                         return (char *)(void *)pszName;
     89                    if (*pwszName)
     90                        return (PRTUTF16)(void *)pwszName;
    9191                    return NULL;
    9292            }
     
    9696    /* not reached */
    9797}
    98 RT_EXPORT_SYMBOL(RTPathFilenameEx);
     98RT_EXPORT_SYMBOL(RTPathFilenameExUtf16);
    9999
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