Fix CurDir on Windows
* Allow lowercase argument. (And properly check the sal_Unicode value with rtl::isAsciiUpperCase instead of with isalpha, which would cause UB for values outside of unsigned char + EOF). * Use _wgetdcwd to get a UTF-16 path in the first place (instead of erroneously converting via createFromAscii and assuming the path only contains 7-bit ASCII characters). * At least with a MSVC 2015 Update 3 --enable-dbgutil build, a call like CurDir("A") for a non-existent drive A will cause a failure message box Microsoft Visual C++ Runtime Library Debug Assertion Failed! Program: ...\instdir\program\soffice.bin File: minkernel\crts\ucrt\src\desktopcrt\misc\getcwd.cpp Line: 225 Expression: ("Invalid Drive", 0) though, which appears it can't be intercepted---trying with a _set_thread_local_invalid_parameter_handler around the call to _wgetdcwd didn't have any effect. Change-Id: I666f84b0695152c0f2c25de3bae100e58929594a
Showing
Please
register
or
sign in
to comment