Я пытаюсь устранить проблему с Cabal, из-за которой он не будет работать, если я изменю значение переменной среды %USERPROFILE% перед его запуском. Кажется, я проследил ошибку до вызова win32 sHGetFolderPath, указывающего на SIDL_APPDATA, который, кажется, терпит неудачу, если эта переменная изменена.
Я не совсем уверен, куда идти отсюда, хотя. Почему этот звонок прерывается? Почему изменение этого env-var просто не указывает каталог пользователя в другом месте? (Пытаюсь заставить кабалу чисто работать с флешки.)
По той же теме вызовы одной и той же функции с SIDL_PROFILE возвращают мой фактический (вошедший в систему) пользовательский каталог (C:/Docs и Settings/Me), даже несмотря на то, что консоль, на которой запущен GHCi, имела все env-var, которые я мог найти с пользовательским каталогом в нем сброс на флешку. Эти вызовы Win32 просто полностью игнорируют переменные среды?