- const wxChar *pDot = wxStrrchr(pszFileName, wxFILE_SEP_EXT);
-
-#ifdef __WXMSW__
- // under Windows we understand both separators
- const wxChar *pSepUnix = wxStrrchr(pszFileName, wxFILE_SEP_PATH_UNIX);
- const wxChar *pSepDos = wxStrrchr(pszFileName, wxFILE_SEP_PATH_DOS);
- const wxChar *pLastSeparator = pSepUnix > pSepDos ? pSepUnix : pSepDos;
-#else // assume Unix
- const wxChar *pLastSeparator = wxStrrchr(pszFileName, wxFILE_SEP_PATH_UNIX);
-
- if ( pDot == pszFileName )
- {
- // under Unix files like .profile are treated in a special way
- pDot = NULL;
- }
-#endif // MSW/Unix
-
- if ( pDot < pLastSeparator )
- {
- // the dot is part of the path, not the start of the extension
- pDot = NULL;
- }
-
- if ( pstrPath )
- {
- if ( pLastSeparator )
- *pstrPath = wxString(pszFileName, pLastSeparator - pszFileName);
- else
- pstrPath->Empty();
- }
-
- if ( pstrName )
- {
- const wxChar *start = pLastSeparator ? pLastSeparator + 1 : pszFileName;
- const wxChar *end = pDot ? pDot : pszFileName + wxStrlen(pszFileName);
+ wxFileName::SplitPath(pszFileName, pstrPath, pstrName, pstrExt);
+}