Bug 234

Summary: Проблема с короткими русскоязычными путями
Product: WINE@Etersoft Reporter: Константин Петров <argentum>
Component: ОбщееAssignee: Денис Баранов <baraka>
Status: CLOSED FIXED QA Contact: Vitaly Lipatov <lav>
Severity: normal    
Priority: P5 CC: kondratyuk, lav
Version: 1.0.4   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 98    
Bug Blocks: 2000, 2710    
Attachments: лог по process
лог по process и file
лог по process file и relay

Description Константин Петров 2006-09-21 14:40:52 MSD
Если в пути присутствует каталог имеющий в своем названии русские буквы, но не
содержащий пробела внутри, то WINE не понимает путь правильно.
Не имеет значения, сколько русскоязычных каталогов присутствует в пути, но если
хотя бы в одном присутствует такое название WINE не правильно понимает путь.
Comment 1 Константин Петров 2006-09-21 15:08:22 MSD
Также, если в названии до 8 букв включительно. ш в названии нет пробела, то
ничего не работает. 
Есть предположение, что это смязано с механизмом распознавания длины названия
каталога. Например, если длина меньше 9 символов и нет пробелов, тот считается,
что этот каталог создан в стиле DOS. Если в каталоге более 8 символов или есть
пробел в середине или запятая в любой части слова, то он создан в Windows.
Соответственно для распознавания Windows-каталогов используется UTF, а для
DOS-каталогов нет.
Comment 2 Константин Петров 2006-09-21 15:24:59 MSD
Created attachment 48 [details]
лог по process
Comment 3 Константин Петров 2006-09-21 15:25:24 MSD
Created attachment 49 [details]
лог по process и file
Comment 4 Константин Петров 2006-09-21 15:26:37 MSD
Created attachment 50 [details]
лог по process file и relay
Comment 5 Константин Петров 2006-09-21 15:29:13 MSD
Следует обратить внимание на функцию OpenFile16
Comment 6 Константин Петров 2006-09-21 17:06:54 MSD
echo "и" | iconv -f koi8-r -t cp1251 | iconv -f cp866 -t cp1251 | iconv -f
cp1251 -t koi8-r
ш
Comment 7 Константин Петров 2006-09-21 19:11:26 MSD
Функция GetModuleFileName16 должна отдавать путь в кодировке OEM, а отдает в
ANSI. Но это недоделка в GetShortPathNameA, copy_filename_WtoA и AreFileApisANSI.
Comment 8 Анатолий Лютин 2007-06-20 21:49:27 MSD
Написал тесты для GetShortPathA и W/ Отправил в HQ. Пока не приняли. Тесты показывают, что с путями всё впорядке.
Comment 9 Анатолий Лютин 2007-12-04 21:49:13 MSK
Тест приняли.
Comment 10 Анатолий Лютин 2008-07-10 15:09:31 MSD
Не занимаюсь.
Comment 11 Константин Кондратюк 2008-12-04 10:38:51 MSK
Актуально? Год прошёл, вполне могли перекопать уже механизм.
Comment 12 Денис Баранов 2008-12-05 20:56:15 MSK
На текущей сборке проблема не воспроизвелась.

libwine-1.0.9-alt0.M41.36
wine-etersoft-sql-1.0.9-alt14
wine-1.0.9-alt0.M41.36