From 157180e77202107dd4f040dcc29ff910cca908c0 Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Thu, 1 May 2025 23:18:44 -0400 Subject: [PATCH] Swap windows path chars in FILENAME_RESOLVER::ResolvePath This fixes the QA for issue13591 falsely passing on Linux. It is actually failing this entire time. But there is more wtfery going on, such as wxFFile::IsOpened returning True on a directory path. --- common/filename_resolver.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/filename_resolver.cpp b/common/filename_resolver.cpp index 6a7fe24fbf..e5a750cdcd 100644 --- a/common/filename_resolver.cpp +++ b/common/filename_resolver.cpp @@ -257,6 +257,11 @@ wxString FILENAME_RESOLVER::ResolvePath( const wxString& aFileName, const wxStri // first attempt to use the name as specified: wxString tname = aFileName; + // Swap separators for non-Windows, in case a Windows path is being passed +#ifndef __WIN32__ + tname.Replace( "\\", "/" ); +#endif + // Note: variable expansion must preferably be performed via a threadsafe wrapper for the // getenv() system call. If we allow the wxFileName::Normalize() routine to perform expansion // then we will have a race condition since wxWidgets does not assure a threadsafe wrapper