Victor_VG
Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Проверка наличия бага mantis#0000716 исходниках Far 2.0.759 (SVN 2545), а конкретно в editor.cpp проводилась по следующей схеме: 1) взял произвольный файл в кодировке ср-1251 (попался под руку editor.cpp из исходников). 2) открыл его в редакторе Far 3) на глаз делим строку примерно пополам, переходим сначала в левую часть, нажимаем Ins, редактируем, выходим по Esc не давая команду сохранить изменения (F2). В итоге получаем ожидаемый запрос сохранения. Значит, эта часть алгоритма работает правильно, проверяем часть вторую. 4) повторяем операцию редактирования после нажатия Ins но, уже в правой половине строки, и также выходим по Esc не давая команду сохранить изменения (F2). В данном случае запрос на сохранение файла не появляется, а сами изменения не сохраняются. Следовательно, ошибка имеет место. 5) согласно инструкции в патче проверил наличие строки 3119: Код: if (NewLength!=Length || memcmp(CmpStr,NewCmpStr,Length)!=0 | - строка присутствует, заменил её на указанную в патче: Код: if (NewLength!=Length || memcmp(CmpStr,NewCmpStr,Length*sizeof(wchar_t))!=0) | и перекомпилировал Far.exe заново в gcc. 6) повторил пункты 3) - 4) проверки - пункт 3) поведение нормальное, при внесении изменений в текст запрос на сохранение выводится, пункт 4) - поведение изменилось - внесли изменения, выходим по Esc и видим запрос на сохранение изменений. Вывод: данный патч необходимо включить в исходный текст editor.cpp, т.к. его алгоритм действительно содержит ошибку описанную в тикете 0000716.
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
|