Changed GetLong/ShortPath to allocate memory dynamically

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2001-03-21 22:25:32 +00:00
parent 6e6d9f9e7b
commit 75ef572207

View File

@@ -493,22 +493,23 @@ wxString wxFileName::GetShortPath() const
{
#if defined(__WXMSW__) && defined(__WIN32__)
wxString path(GetFullPath());
wxChar outBuf[MAX_PATH];
// TODO: can't work out how to determine if the function failed
// (positive value if either it succeeded or the buffer was too small)
int bufSz = ::GetShortPathName((const wxChar*) path, outBuf, MAX_PATH*sizeof(wxChar));
if (bufSz == 0)
wxString pathOut;
DWORD sz = ::GetShortPathName(path, NULL, 0);
bool ok = sz != 0;
if ( ok )
{
return wxEmptyString;
ok = ::GetShortPathName
(
path,
pathOut.GetWriteBuf(sz),
sz
) != 0;
pathOut.UngetWriteBuf();
}
if (ok)
return pathOut;
else
{
return wxString(outBuf);
}
return path;
#else
return GetFullPath();
#endif
@@ -519,22 +520,23 @@ wxString wxFileName::GetLongPath() const
{
#if defined(__WXMSW__) && defined(__WIN32__)
wxString path(GetFullPath());
wxChar outBuf[MAX_PATH];
// TODO: can't work out how to determine if the function failed
// (positive value if either it succeeded or the buffer was too small)
int bufSz = ::GetLongPathName((const wxChar*) path, outBuf, MAX_PATH*sizeof(wxChar));
if (bufSz == 0)
wxString pathOut;
DWORD sz = ::GetLongPathName(path, NULL, 0);
bool ok = sz != 0;
if ( ok )
{
return wxEmptyString;
ok = ::GetLongPathName
(
path,
pathOut.GetWriteBuf(sz),
sz
) != 0;
pathOut.UngetWriteBuf();
}
if (ok)
return pathOut;
else
{
return wxString(outBuf);
}
return path;
#else
return GetFullPath();
#endif