xml-copy-editor-code/src/pathresolver.cpp

43 lines
1.1 KiB
C++
Raw Normal View History

2007-09-07 23:17:30 +02:00
#include <wx/filename.h>
#include "pathresolver.h"
2007-09-08 00:25:30 +02:00
wxString PathResolver::run ( const wxString& path, const wxString& anchor )
2007-09-07 23:17:30 +02:00
{
2007-09-08 00:25:30 +02:00
if ( path.empty() )
return wxEmptyString;
2007-09-07 23:17:30 +02:00
2007-09-08 00:25:30 +02:00
wxString myPath, myAnchor;
myPath = path;
myAnchor = anchor;
wxFileName pathObject ( myPath );
if ( pathObject.IsAbsolute() ||
myPath.Contains ( _T ( "http://" ) ) )
return myPath;
2007-09-07 23:17:30 +02:00
2007-09-08 00:25:30 +02:00
// check anchor
wxFileName anchorObject ( myAnchor );
if ( myAnchor.empty() )
{
myAnchor = wxFileName::GetCwd();
}
else if ( !anchorObject.IsDir() )
{
myAnchor = anchorObject.GetPath();
}
pathObject.MakeAbsolute ( myAnchor );
return pathObject.GetFullPath();
2007-09-07 23:17:30 +02:00
}
2007-09-08 00:25:30 +02:00
std::string PathResolver::run (
const std::string& path,
const std::string& anchor )
2007-09-07 23:17:30 +02:00
{
2007-09-08 00:25:30 +02:00
wxString widePath, wideAnchor;
widePath = wxString ( path.c_str(), wxConvUTF8, path.size() );
wideAnchor = wxString ( anchor.c_str(), wxConvUTF8, anchor.size() );
wxString wideReturn = PathResolver::run ( widePath, wideAnchor );
return ( const char * ) wideReturn.mb_str ( wxConvUTF8 );
2007-09-07 23:17:30 +02:00
}