VirtualBox

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


Ignore:
Timestamp:
Oct 7, 2015 12:05:47 AM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
103125
Message:

IPRT,*: Simplified RTUriFilePath by removing the uFormat parameter. It now defaults to the host path style just like RTUriFileCreate.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/misc/uri.cpp

    r58068 r58069  
    11531153
    11541154
    1155 RTDECL(char *) RTUriFilePath(const char *pszUri, uint32_t uFormat)
    1156 {
    1157     uint32_t fPathStyle;
    1158     switch (uFormat)
    1159     {
    1160         case URI_FILE_FORMAT_WIN:  fPathStyle = RTPATH_STR_F_STYLE_DOS; break;
    1161         case URI_FILE_FORMAT_UNIX: fPathStyle = RTPATH_STR_F_STYLE_UNIX; break;
    1162         case URI_FILE_FORMAT_AUTO: fPathStyle = RTPATH_STR_F_STYLE_HOST; break;
    1163         default: AssertFailedReturn(NULL);
    1164     }
    1165 
     1155RTDECL(char *) RTUriFilePath(const char *pszUri)
     1156{
    11661157    char *pszPath = NULL;
    1167     int rc = RTUriFilePathEx(pszUri, fPathStyle, &pszPath, 0 /*cbPath*/, NULL /*pcchPath*/);
     1158    int rc = RTUriFilePathEx(pszUri, RTPATH_STR_F_STYLE_HOST, &pszPath, 0 /*cbPath*/, NULL /*pcchPath*/);
    11681159    if (RT_SUCCESS(rc))
    11691160        return pszPath;
  • trunk/src/VBox/Runtime/testcase/tstRTUri.cpp

    r58068 r58069  
    307307    uint32_t        fPathPathStyle;
    308308    const char     *pszUri;
    309     uint32_t        uFormat;
     309    uint32_t        fUriPathStyle;
    310310    const char     *pszCreatedPath;
    311311    const char     *pszCreatedUri;
     
    316316        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    317317        /* .pszUri           =*/ "file:///C:%5Cover/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60%5Cthere",
    318         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     318        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    319319        /* .pszCreatedPath   =*/ "C:\\over\\ <>#%\"{}|^[]`\\there",
    320320        /* .pszCreatedUri    =*/ "file:///C:/over/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60/there",
     
    326326        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    327327        /* .pszUri           =*/ "file:///over/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60/there",
    328         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     328        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    329329        /* .pszCreatedPath   =*/ "/over/ <>#%\"{}|^[]`/there",
    330330        /* .pszCreatedUri    =*/ "file:///over/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60/there",
     
    336336        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    337337        /* .pszUri           =*/ "file://",
    338         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     338        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    339339        /* .pszCreatedPath   =*/ NULL,
    340340        /* .pszCreatedUri    =*/ NULL,
     
    346346        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    347347        /* .pszUri           =*/ "file://",
    348         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     348        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    349349        /* .pszCreatedPath   =*/ NULL,
    350350        /* .pszCreatedUri    =*/ NULL,
     
    356356        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    357357        /* .pszUri           =*/ "file:///",
    358         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     358        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    359359        /* .pszCreatedPath   =*/ "/",
    360360        /* .pszCreatedUri    =*/ "file:///",
     
    366366        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    367367        /* .pszUri           =*/ "file:///",
    368         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     368        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    369369        /* .pszCreatedPath   =*/ "\\",
    370370        /* .pszCreatedUri    =*/ "file:///",
     
    376376        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    377377        /* .pszUri           =*/ "file:///foo/bar",
    378         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     378        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    379379        /* .pszCreatedPath   =*/ "/foo/bar",
    380380        /* .pszCreatedUri    =*/ "file:///foo/bar",
     
    386386        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    387387        /* .pszUri           =*/ "file:///foo%5Cbar",
    388         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     388        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    389389        /* .pszCreatedPath   =*/ "\\foo\\bar",
    390390        /* .pszCreatedUri    =*/ "file:///foo/bar",
     
    396396        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    397397        /* .pszUri           =*/ "file:///C:/over/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60/there",
    398         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     398        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    399399        /* .pszCreatedPath   =*/ "C:/over/ <>#%\"{}|^[]`/there",
    400400        /* .pszCreatedUri    =*/ "file:///C:/over/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60/there",
     
    406406        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    407407        /* .pszUri           =*/ "file:///over/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60/there",
    408         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     408        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    409409        /* .pszCreatedPath   =*/ "\\over\\ <>#%\"{}|^[]`\\there",
    410410        /* .pszCreatedUri    =*/ "file:///over/%20%3C%3E%23%25%22%7B%7D%7C%5E%5B%5D%60/there",
     
    416416        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    417417        /* .pszUri           =*/ "file:///usr/bin/grep",
    418         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     418        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    419419        /* .pszCreatedPath   =*/ "/usr/bin/grep",
    420420        /* .pszCreatedUri    =*/ "file:///usr/bin/grep",
     
    426426        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    427427        /* .pszUri           =*/ "file:///usr/bin/grep",
    428         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     428        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    429429        /* .pszCreatedPath   =*/ "\\usr\\bin\\grep",
    430430        /* .pszCreatedUri    =*/ "file:///usr/bin/grep",
     
    436436        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    437437        /* .pszUri           =*/ "file:///somerootsubdir/isos/files.lst",
    438         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     438        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    439439        /* .pszCreatedPath   =*/ "/somerootsubdir/isos/files.lst",
    440440        /* .pszCreatedUri    =*/ "file:///somerootsubdir/isos/files.lst",
     
    446446        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    447447        /* .pszUri           =*/ "file:///not-a-cifsserver/isos/files.lst",
    448         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     448        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    449449        /* .pszCreatedPath   =*/ "\\not-a-cifsserver\\isos\\files.lst",
    450450        /* .pszCreatedUri    =*/ "file:///not-a-cifsserver/isos/files.lst",
     
    456456        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_UNIX,
    457457        /* .pszUri           =*/ "file:///rootsubdir/isos/files.lst",
    458         /* .uFormat          =*/ URI_FILE_FORMAT_UNIX,
     458        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_UNIX,
    459459        /* .pszCreatedPath   =*/ "/rootsubdir/isos/files.lst",
    460460        /* .pszCreatedUri    =*/ "file:///rootsubdir/isos/files.lst",
     
    466466        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    467467        /* .pszUri           =*/ "file:///not-a-cifsserver-either/isos/files.lst",
    468         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     468        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    469469        /* .pszCreatedPath   =*/ "\\not-a-cifsserver-either\\isos\\files.lst",
    470470        /* .pszCreatedUri    =*/ "file:///not-a-cifsserver-either/isos/files.lst",
     
    476476        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    477477        /* .pszUri           =*/ "file:////cifsserver/isos/files.lst",
    478         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     478        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    479479        /* .pszCreatedPath   =*/ "\\\\cifsserver\\isos\\files.lst",
    480480        /* .pszCreatedUri    =*/ "file://cifsserver/isos/files.lst",
     
    486486        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    487487        /* .pszUri           =*/ "file://localhost/c:boot.ini",
    488         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     488        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    489489        /* .pszCreatedPath   =*/ "c:boot.ini",
    490490        /* .pszCreatedUri    =*/ "file:///c:boot.ini",
     
    496496        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    497497        /* .pszUri           =*/ "file:///c|boot.ini",
    498         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     498        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    499499        /* .pszCreatedPath   =*/ "c:boot.ini",
    500500        /* .pszCreatedUri    =*/ "file:///c:boot.ini",
     
    506506        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    507507        /* .pszUri           =*/ "file:c:\\legacy-no-slash%2Eini",
    508         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     508        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    509509        /* .pszCreatedPath   =*/ "c:\\legacy-no-slash.ini",
    510510        /* .pszCreatedUri    =*/ "file:///c:/legacy-no-slash.ini",
     
    516516        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    517517        /* .pszUri           =*/ "file:c|\\legacy-no-slash%2Eini",
    518         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     518        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    519519        /* .pszCreatedPath   =*/ "c:\\legacy-no-slash.ini",
    520520        /* .pszCreatedUri    =*/ "file:///c:/legacy-no-slash.ini",
     
    526526        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    527527        /* .pszUri           =*/ "file:/c:\\legacy-single-slash%2Eini",
    528         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     528        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    529529        /* .pszCreatedPath   =*/ "c:\\legacy-single-slash.ini",
    530530        /* .pszCreatedUri    =*/ "file:///c:/legacy-single-slash.ini",
     
    536536        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    537537        /* .pszUri           =*/ "file:/c:\\legacy-single-slash%2Eini",
    538         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     538        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    539539        /* .pszCreatedPath   =*/ "c:\\legacy-single-slash.ini",
    540540        /* .pszCreatedUri    =*/ "file:///c:/legacy-single-slash.ini",
     
    546546        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    547547        /* .pszUri           =*/ "file:/legacy-single-slash%2Eini",
    548         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     548        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    549549        /* .pszCreatedPath   =*/ "\\legacy-single-slash.ini",
    550550        /* .pszCreatedUri    =*/ "file:///legacy-single-slash.ini",
     
    556556        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    557557        /* .pszUri           =*/ "file://C:\\legacy-double-slash%2E.ini",
    558         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     558        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    559559        /* .pszCreatedPath   =*/ "C:\\legacy-double-slash%2E.ini",
    560560        /* .pszCreatedUri    =*/ "file:///C:/legacy-double-slash%252E.ini",
     
    566566        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    567567        /* .pszUri           =*/ "file://C|/legacy-double-slash%2E.ini",
    568         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     568        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    569569        /* .pszCreatedPath   =*/ "C:\\legacy-double-slash%2E.ini",
    570570        /* .pszCreatedUri    =*/ "file:///C:/legacy-double-slash%252E.ini",
     
    576576        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    577577        /* .pszUri           =*/ "file:////C|/legacy-4-slashes%2E.ini",
    578         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     578        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    579579        /* .pszCreatedPath   =*/ "C:\\legacy-4-slashes%2E.ini",
    580580        /* .pszCreatedUri    =*/ "file:///C:/legacy-4-slashes%252E.ini",
     
    586586        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    587587        /* .pszUri           =*/ "file:////C:/legacy-4-slashes%2E.ini",
    588         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     588        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    589589        /* .pszCreatedPath   =*/ "C:\\legacy-4-slashes%2E.ini",
    590590        /* .pszCreatedUri    =*/ "file:///C:/legacy-4-slashes%252E.ini",
     
    596596        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    597597        /* .pszUri           =*/ "file:////cifsserver/share/legacy-4-slashes%2E.ini",
    598         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     598        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    599599        /* .pszCreatedPath   =*/ "\\\\cifsserver\\share\\legacy-4-slashes%2E.ini",
    600600        /* .pszCreatedUri    =*/ "file://cifsserver/share/legacy-4-slashes%252E.ini",
     
    606606        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    607607        /* .pszUri           =*/ "file://///cifsserver/share/legacy-5-slashes%2Eini",
    608         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     608        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    609609        /* .pszCreatedPath   =*/ "\\\\cifsserver\\share\\legacy-5-slashes.ini",
    610610        /* .pszCreatedUri    =*/ "file://cifsserver/share/legacy-5-slashes.ini",
     
    616616        /* .fPathPathStyle   =*/ RTPATH_STR_F_STYLE_DOS,
    617617        /* .pszUri           =*/ "file://///C|/share/legacy-5-slashes%2Eini",
    618         /* .uFormat          =*/ URI_FILE_FORMAT_WIN,
     618        /* .fUriPathStyle    =*/ RTPATH_STR_F_STYLE_DOS,
    619619        /* .pszCreatedPath   =*/ "\\\\C|\\share\\legacy-5-slashes.ini",
    620620        /* .pszCreatedUri    =*/ "file://C%7C/share/legacy-5-slashes.ini",
     
    654654}
    655655
     656static const char *tstNamePathStyle(uint32_t fPathStyle)
     657{
     658    switch (fPathStyle)
     659    {
     660        case RTPATH_STR_F_STYLE_DOS:   return "RTPATH_STR_F_STYLE_DOS";
     661        case RTPATH_STR_F_STYLE_UNIX:  return "RTPATH_STR_F_STYLE_UNIX";
     662        case RTPATH_STR_F_STYLE_HOST:  return "RTPATH_STR_F_STYLE_HOST";
     663        default: AssertFailedReturn("Invalid");
     664    }
     665}
     666
    656667static void tstWindowsReferenceResults(void)
    657668{
     
    668679        tstPrintCString(g_aCreateFileURIs[i].pszPath);
    669680        RTPrintf(",\n");
     681        RTPrintf("        /* .fPathPathStyle   =*/ %s,\n", tstNamePathStyle(g_aCreateFileURIs[i].fPathPathStyle));
    670682        RTPrintf("        /* .pszUri           =*/ ");
    671683        tstPrintCString(g_aCreateFileURIs[i].pszUri);
    672684        RTPrintf(",\n");
    673         RTPrintf("        /* .uFormat          =*/ %s,\n",
    674                    g_aCreateFileURIs[i].uFormat == URI_FILE_FORMAT_WIN  ? "URI_FILE_FORMAT_WIN"
    675                  : g_aCreateFileURIs[i].uFormat == URI_FILE_FORMAT_UNIX ? "URI_FILE_FORMAT_UNIX"
    676                  : g_aCreateFileURIs[i].uFormat == URI_FILE_FORMAT_AUTO ? "URI_FILE_FORMAT_AUTO" : "URI_FILE_FORMAT_INVALID");
     685        RTPrintf("        /* .fUriPathStyle    =*/ %s,\n", tstNamePathStyle(g_aCreateFileURIs[i].fUriPathStyle));
    677686        RTPrintf("        /* .pszCreatedPath   =*/ ");
    678687        tstPrintCString(g_aCreateFileURIs[i].pszCreatedPath);
     
    751760
    752761
     762static void tstRTUriFilePathEx(void)
     763{
     764    RTTestISub("RTUriFilePathEx");
     765    for (size_t i = 0; i < RT_ELEMENTS(g_aCreateFileURIs); ++i)
     766    {
     767        uint32_t const     fPathStyle = g_aCreateFileURIs[i].fUriPathStyle;
     768        const char * const pszUri     = g_aCreateFileURIs[i].pszUri;
     769        char *pszPath = (char *)&pszPath;
     770        int rc = RTUriFilePathEx(pszUri, fPathStyle, &pszPath, 0, NULL);
     771        if (RT_SUCCESS(rc))
     772        {
     773            if (g_aCreateFileURIs[i].pszCreatedPath)
     774            {
     775                if (strcmp(pszPath, g_aCreateFileURIs[i].pszCreatedPath) == 0)
     776                {
     777                    /** @todo check out the other variations of the API. */
     778                }
     779                else
     780                    RTTestIFailed("#%u: '%s'/%#x => '%s', expected '%s'",
     781                                  i, pszUri, fPathStyle, pszPath, g_aCreateFileURIs[i].pszCreatedPath);
     782            }
     783            else
     784                RTTestIFailed("#%u: bad testcase; pszCreatedPath is NULL\n", i);
     785        }
     786        else if (rc != VERR_PATH_ZERO_LENGTH || RTStrCmp(pszUri, "file://") != 0)
     787            RTTestIFailed("#%u: '%s'/%#x => %Rrc", i, pszUri, fPathStyle, rc);
     788    }
     789}
     790
     791
    753792static void tstRTUriFileCreateEx(void)
    754793{
     
    839878    bool fSavedQuiet    = RTAssertSetQuiet(true);
    840879
    841     /* File Uri path */
    842     RTTestISub("RTUriFilePath");
    843     for (size_t i = 0; i < RT_ELEMENTS(g_aCreateFileURIs); ++i)
    844         CHECK_STR_API(RTUriFilePath(g_aCreateFileURIs[i].pszUri, g_aCreateFileURIs[i].uFormat),
    845                       g_aCreateFileURIs[i].pszCreatedPath);
    846 
    847     /* File Uri creation */
     880    tstRTUriFilePathEx();
    848881    tstRTUriFileCreateEx();
    849882
Note: See TracChangeset for help on using the changeset viewer.

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