Если в пути присутствует каталог имеющий в своем названии русские буквы, но не содержащий пробела внутри, то WINE не понимает путь правильно. Не имеет значения, сколько русскоязычных каталогов присутствует в пути, но если хотя бы в одном присутствует такое название WINE не правильно понимает путь.
Также, если в названии до 8 букв включительно. ш в названии нет пробела, то ничего не работает. Есть предположение, что это смязано с механизмом распознавания длины названия каталога. Например, если длина меньше 9 символов и нет пробелов, тот считается, что этот каталог создан в стиле DOS. Если в каталоге более 8 символов или есть пробел в середине или запятая в любой части слова, то он создан в Windows. Соответственно для распознавания Windows-каталогов используется UTF, а для DOS-каталогов нет.
Created attachment 48 [details] лог по process
Created attachment 49 [details] лог по process и file
Created attachment 50 [details] лог по process file и relay
Следует обратить внимание на функцию OpenFile16
echo "и" | iconv -f koi8-r -t cp1251 | iconv -f cp866 -t cp1251 | iconv -f cp1251 -t koi8-r ш
Функция GetModuleFileName16 должна отдавать путь в кодировке OEM, а отдает в ANSI. Но это недоделка в GetShortPathNameA, copy_filename_WtoA и AreFileApisANSI.
Написал тесты для GetShortPathA и W/ Отправил в HQ. Пока не приняли. Тесты показывают, что с путями всё впорядке.
Тест приняли.
Не занимаюсь.
Актуально? Год прошёл, вполне могли перекопать уже механизм.
На текущей сборке проблема не воспроизвелась. libwine-1.0.9-alt0.M41.36 wine-etersoft-sql-1.0.9-alt14 wine-1.0.9-alt0.M41.36