Bug 4267

Summary: Регресс: Meta Trader при отрисовке баланса текст ограничивается размером столбца
Product: [Свободные проекты (Open source projects)] Wine Public Reporter: Denis V. Chernosov <denis0.ru>
Component: ОбщееAssignee: Илья Шпигорь <shpigor>
Status: CLOSED FIXED QA Contact: Денис Баранов <baraka>
Severity: minor    
Priority: P4 CC: lav, night, shpigor, svzhu, vitperov
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 595    
Bug Blocks: 3932, 6917, 7036    
Attachments: Глюк с отрисовкой сводной инофрмации
пример правильной отрисовки сводной информации

Description Denis V. Chernosov 2009-09-02 15:59:49 MSD
Окно Терминал. Внизу первого столбца отображается сводная информация, которая занимает места больше, чем первый столбец. В ранних версиях этот текст продолжался за границы первого столбца. Сейчас он отсекается по первому столбцу.

Глюг есть например, здесь:
rpm -qa | grep wine
libwine-1.1.25-alt1
libwine-gl-1.1.25-alt1
wine-1.1.25-alt1
libkwineffects4-4.3.0-alt7



Нет его здесь:
 rpm -qa | grep wine
wine-7zip-4.32-alt0.1
libwine-20071130-alt0.M40.7
wine-20071130-alt0.M40.7

Скриншоты прилагаю.
Comment 1 Denis V. Chernosov 2009-09-02 16:00:40 MSD
Created attachment 1309 [details]
Глюк с отрисовкой сводной инофрмации
Comment 2 Denis V. Chernosov 2009-09-02 16:01:17 MSD
Created attachment 1310 [details]
пример правильной отрисовки сводной информации
Comment 3 Иван Дончевский 2009-09-02 19:15:40 MSD
нельзя ли по-подробней описать алгоритм воспроизведения бага?
Comment 4 Denis V. Chernosov 2009-09-03 09:36:18 MSD
Открываем демо-счет. В окне Терминал (Ctrl+T) смотрим первую закладку (Торговля). Если весь текст, начинающийся со слова "Баланс" виден, значит всё в порядке.
Если текст виден не полностью, то можно убедиться, что он обрезается именно по первому столбцу. Т.е., увеличивая размер первого столбца, мы будем видеть всё большую часть искомой строки.

Например, у меня в новой версии видно только 
"Баланс: 5 000.0". 
А если раздвинуть столбец, то открывается 
"Баланс: 5 000.00 Средства: 5 000.00 Свободно: 5 000.00"
Comment 5 Денис Баранов 2009-09-03 18:53:37 MSD
Нужно создать новую бутылку и воспроизвести.
Comment 6 Andrey Vusik 2009-09-08 12:07:35 MSD
(In reply to comment #5)
> Нужно создать новую бутылку и
> воспроизвести.
> 

Подтверждаю.
Бутылка bugs/4267
Запускаем terminal.exe
Внизу модальное окно "Терминал".
Строка "Баланс" должна быть видна полностью, а не быть обрубленой.
На предыдущих скриншотах всё хорошо видно.
Comment 7 Иван Дончевский 2009-09-08 19:40:22 MSD
Посмотрел. Ошибка появляется с версии 1.0.9, т.е. в 1.0.8 еще нет ее. Так что вначале надо поспрашивать Илью, может быть он знает что-то об этом.
Comment 8 Иван Дончевский 2009-09-09 15:51:20 MSD
ошибка хоть и похожа а багу 2097, в чем-то другом, т.к. откат хака из той баги не помог.
Comment 9 Иван Дончевский 2009-09-09 18:58:49 MSD
пробую искать место ошибки bisect'ом
Comment 10 Иван Дончевский 2009-09-10 03:15:42 MSD
пока не получилось найти бисектом из-за ошибок компиляции на конечных этапах
Comment 11 Иван Дончевский 2009-09-14 14:15:53 MSD
в новом свободном вайне (wwo) бага отстуствует
Comment 12 Иван Дончевский 2009-09-14 17:49:42 MSD
откатил свободный вайн до версии 1.1.7, на которой основан wine@etersoft 1.0.9. В wine 1.1.7 также нет баги, в отличие от wine@etersoft 1.0.9
Comment 13 Иван Дончевский 2009-09-14 18:09:59 MSD
посмотрел еще раз - действительно нужно искать между этими версиями
Comment 14 Иван Дончевский 2009-09-16 17:30:06 MSD
локализовал ошибку.
Вседело в dlls/user32/text.c в функции TEXT_NewLineW. Там обрезание текста происходит при вызове
/* If no ellipsified or word-broken string and the line don't fit,
* correcting the string length. Eterbug #595.
*/
if(!line_fits && !ellipsified && !word_broken)
    j_in_seg = num_fit;
Comment 15 Иван Дончевский 2009-09-16 17:36:02 MSD
Собственно выходит, что старый патч Ильи к баге 595 надо переделывать.

Хотелось бы узнать поддерживается ли еще та программа к которой был тот патч.
Если нет, то можно просто сделать revert...

Жду комментариев.
Comment 16 Иван Дончевский 2009-09-17 21:33:38 MSD
Передам все-таки Илье ошибку...
Comment 17 Илья Шпигорь 2009-09-22 14:29:53 MSD
Бага должна решиться новым патчем на #595.

См. http://bugs.etersoft.ru/show_bug.cgi?id=595#c15
Comment 18 Andrey Vusik 2009-09-24 19:11:44 MSD
WINE@Etersoft 1.0 SQL 1.0.11-eter8.3/4

All is fine.
Comment 19 Denis V. Chernosov 2009-12-22 14:01:03 MSK
А в публичную версию вы его добавлять не планируете? 

В ванильной версии всё искаропки работает :( А в етерсофтсовской инкарнации и в 1.1.32 присутствует.
Comment 20 Илья Шпигорь 2009-12-25 12:54:42 MSK
(In reply to comment #19)
> А в публичную версию вы его добавлять не
> планируете? 
> 
> В ванильной версии всё искаропки работает
> :( А в етерсофтсовской инкарнации и в 1.1.32
> присутствует.
> 

Протестировал.

В оригинальном wine все должно работать (т.е. на нашей сборке wine-vanilla тоже не воспроизводится). В WINE@etersoft бага решена.

В открытом wine, нашей сборки бага есть, будем исправлять.
Comment 21 Илья Шпигорь 2009-12-25 15:58:55 MSK
Откатил в eterwine/master патч, приводящий к ошибке:

commit 9d4634c6f1cf692746aee2a901c0e0439ca9b41e
Author: Ilya Shpigor <shpigor@etersoft.ru>
Date:   Fri Aug 22 17:00:23 2008 +0400

    Fix eterbug #595. Add checking the string length to correct in TEXT_NextLineW

Он чинил баг #595 в программе Налогоплательщик ЮЛ. Не думаю, что это актуально для нашей открытой сборки.
Comment 22 Vitaly Lipatov 2009-12-25 16:40:34 MSK
(In reply to comment #21)
...
>     Fix eterbug #595. Add checking the string length to correct in
> TEXT_NextLineW
> 
> Он чинил баг #595 в программе Налогоплательщик ЮЛ. Не думаю, что это
> актуально для нашей открытой сборки.
1. Не понял, а как же работа МетаТрейдера в WINE@Etersoft, без этого патча всё нормально?

2. Думаю, нам нужно прийти к тому, чтобы Налогоплательщик ЮЛ работал в нашей свободной сборке. Это важно.
Comment 23 Илья Шпигорь 2009-12-25 16:56:48 MSK
> 1. Не понял, а как же работа МетаТрейдера в
> WINE@Etersoft, без этого патча всё нормально?

Собственно, этот патч и привел к появлению данной баги.

> 2. Думаю, нам нужно прийти к тому, чтобы
> Налогоплательщик ЮЛ работал в нашей
> свободной сборке. Это важно.

Приложил конечный вариант патча на #595 из eterhack:

gdi32: Fix size of the filling background for drawing the text (eterbug #4267 #595)

Comment 24 Svetlana Zhukova 2011-09-06 13:43:39 MSK
еще разок проверено на WINE@Etersoft version 1.3.27-eter1.7
wine@eterhack bottle bugs/993
все ок.