From 05e1201cb5943fb9c75f5612e9fb9323358edab5 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 8 Oct 2003 23:22:00 +0000 Subject: [PATCH] wxFileName::Normalize(wxPATH_NORM_ENV_VARS) now works git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 3 ++- src/common/filename.cpp | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 18ab3b5253..aa59ed5a09 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -65,11 +65,12 @@ All: - wxDateTime::ParseDateTime() implemented (Linus McCabe) - wxHTTP::GetResponse() added (David Nock) - added conversions to/from UTF 16/32 LE/BE (Andreas Pflug) -- wxFileName::Normalize(wxPATH_NORM_ALL) doesn't lower filename case any more - added wxTextInputStream::ReadChar() (M.J.Wetherell) - added translation to Afrikaans (Petri Jooste) - Spanish translations updated (Javier San Jose) - added gettext plural forms support to wxLocale (Michael N. Filippov) +- wxFileName::Normalize(wxPATH_NORM_ALL) doesn't lower filename case any more +- wxFileName::Normalize(wxPATH_NORM_ENV_VARS) now works All (GUI): diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 64437fa161..757bba49a8 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -848,6 +848,18 @@ bool wxFileName::Normalize(int flags, const wxString& cwd, wxPathFormat format) { + // deal with env vars renaming first as this may seriously change the path + if ( flags & wxPATH_NORM_ENV_VARS ) + { + wxString pathOrig = GetFullPath(format); + wxString path = wxExpandEnvVars(pathOrig); + if ( path != pathOrig ) + { + Assign(path); + } + } + + // the existing path components wxArrayString dirs = GetDirs(); @@ -940,11 +952,6 @@ bool wxFileName::Normalize(int flags, } } - if ( flags & wxPATH_NORM_ENV_VARS ) - { - dir = wxExpandEnvVars(dir); - } - if ( (flags & wxPATH_NORM_CASE) && !IsCaseSensitive(format) ) { dir.MakeLower(); -- 2.45.2