audacia/src/PlatformCompatibility.cpp
Paul Licameli 5e7d41ec07 Each .cpp/.mm file includes corresponding header before any other...
... except Audacity.h

This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
2019-03-17 22:54:52 -04:00

66 lines
1.3 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
PlatformCompatibility.cpp
Markus Meyer
*******************************************************************//*!
\class PlatformCompatibility
\brief Filename Compatibility utilities.
\see FileNames
*//*******************************************************************/
#include "PlatformCompatibility.h"
#include <wx/filefn.h>
#include <wx/filename.h>
#include <wx/stdpaths.h>
#include <wx/app.h>
FilePath PlatformCompatibility::GetLongFileName(const FilePath &shortFileName)
{
wxFileName fn(shortFileName);
return fn.GetLongPath();
}
const FilePath &PlatformCompatibility::GetExecutablePath()
{
static bool found = false;
static FilePath path;
if (!found) {
path = wxStandardPaths::Get().GetExecutablePath();
found = true;
}
return path;
}
FilePath PlatformCompatibility::ConvertSlashInFileName(const FilePath &filePath)
{
#ifdef __WXMAC__
wxString path = filePath;
wxString filename;
wxString newPath = filePath;
// int pathLen = 1;
while (!wxDirExists(wxPathOnly(newPath)) && ! path.empty()) {
path = newPath.BeforeLast('/');
filename = newPath.AfterLast('/');
newPath = path;
newPath += ':';
newPath += filename;
}
return newPath;
#else
return filePath;
#endif
}