phoenix-firestorm/indra
Nat Goodspeed 5002bf5660 MAINT-8087: Use env vars from VMP for AppData\Roaming and Local.
On Windows, when logged in with a non-ASCII username, every one of the three
documented APIs -- SHGetSpecialFolderPath(), SHGetFolderPath() and
SHGetKnownFolderPath() -- fails to retrieve any pathname at all. We cannot
account for the fact that the oldest of these continues to work with the
release viewer and within a Python script (though not, curiously, from a
Python interactive session). With a non-ASCII username, they consistently fail
when called from an Alex Ivy viewer build: "The filename, directory name, or
volume label syntax is incorrect."

Empirically, with a non-ASCII username, the preset APPDATA and LOCALAPPDATA
environment variables are also useless, e.g. c:\Users\??????\AppData\Roaming
where those are, yup, actual question marks.

Empirically, the VMP is able to successfully call SHGetFolderPath() to
retrieve both AppData\Roaming and AppData\Local. Therefore, we make the VMP
set the APPDATA and LOCALAPPDATA environment variables to the UTF-8 encoded
correct pathnames. Instead of calling SHGetSomethingFolderPath() at all, make
LLDir_Win32 retrieve those environment variables.

Make LLFile::mkdir() treat "directory already exists" as a success case. Every
single call fell into one of two categories: either it didn't check success at
all, or it tested specially to exempt errno == EEXIST. Migrate that test into
mkdir(); eliminate it from call sites.

Make LLDir::append() and add() convenience functions accept variadic
arguments. Replace add(add()...) constructs, as well as clumsy concatenations
of directory names and getDirDelimiter(), with simple variadic add() calls.
2017-12-20 22:51:26 -05:00
..
cmake MAINT-7081: Mention libnghttp2*.dylib in yet another place. 2017-10-24 15:38:00 -04:00
copy_win_scripts
doxygen
integration_tests
lib/python/indra MAINT-7751: Rework DarwinManifest to produce new app bundle structure. 2017-12-04 17:15:47 -05:00
linux_crash_logger
llappearance
llaudio
llcharacter
llcommon MAINT-8087: Use env vars from VMP for AppData\Roaming and Local. 2017-12-20 22:51:26 -05:00
llcorehttp MAINT-7081: Only request HTTP2 with $VIEWERASSET override (testing) 2017-10-24 15:57:36 -04:00
llcrashlogger
llimage DRTVWR-418: Merge from latest viewer-release 2017-11-29 14:47:09 -05:00
llimagej2coj
llinventory
llkdu
llmath DRTVWR-418: Merge from latest viewer-release 2017-11-29 14:47:09 -05:00
llmessage
llplugin
llprimitive MAINT-2161 Fixed dae parsing issue - dae expects escaped names 2017-10-31 16:41:39 +02:00
llrender DRTVWR-418: Merge from latest viewer-release 2017-11-29 14:47:09 -05:00
llui MAINT-8087: Use env vars from VMP for AppData\Roaming and Local. 2017-12-20 22:51:26 -05:00
llvfs MAINT-8087: Use env vars from VMP for AppData\Roaming and Local. 2017-12-20 22:51:26 -05:00
llwindow
llxml
mac_crash_logger
media_plugins
newview MAINT-8087: Use env vars from VMP for AppData\Roaming and Local. 2017-12-20 22:51:26 -05:00
test MAINT-8087: Use env vars from VMP for AppData\Roaming and Local. 2017-12-20 22:51:26 -05:00
tools/vstool
viewer_components
win_crash_logger
CMakeLists.txt
edit-me-to-trigger-new-build.txt
fix-incredibuild.py