View Issue Details

IDProjectCategoryView StatusLast Update
0001941Far ManagerPlugins API.Editorpublic2014-08-02 06:25
Reportershmuel Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Summary0001941: Редактор неправильно отрабатывает ECTL_SETSTRING в последней строке
Description[ Фар 3.0.2290 ]
Если последняя строка файла "неполная", то-есть нет перевода строки, и вызывается ECTL_SETSTRING для этой строки, содержащий перевод строки, то редактор не полностью обновляет своё состояние:
  (а) нельзя перейти на добавленную строку
  (б) статус-бар показывает прежнее количество строк
Если же сохранить файл, выйти из редактора и открыть снова, то оказывается, что:
  (а) есть добавленная строка, на неё можно перейти, и
  (б) статус-бар её учитывает.
TagsNo tags attached.
Build

Relationships

has duplicate 0002657 new Некорректная работа при изменении последней строки файла из плагина 

Activities

2useven10

2011-12-09 15:12

developer   bugnote:0008133

а то что при замене "полной" строки на "неполную" неполнота теряется (и для последней строки тоже), вас устраивает?

shmuel

2011-12-09 15:53

developer   bugnote:0008134

Следует разделить данную проблему на две части.

1. Как должен вести себя редактор при вызове ECTL_SETSTRING с разными EOL. Тут можно спорить. Например, я бы при замене полной строки на неполную конкатенировал бы данную строку со следующей, что равносильно нажатию DEL в конце строки. Однако, не настаиваю.

2. При нынешнем поведении, описанном в данном репорте, редактор ведёт себя по-разному до и после сохранения и переоткрытия файла. Вот это уже бесспорный баг.

2useven10

2011-12-09 17:14

developer   bugnote:0008135

согласен и с 1. и с 2.
но т.к. я далек от реального использования плагин апи - не знаю, вдруг упомянутые
...фичи используются многими и изменение поведения их сильно огорчит.

если возражений в ближайшее время не появится, я постараюсь это поправить.

shmuel

2011-12-09 17:38

developer   bugnote:0008136

Да, не исключено, что некоторые плагины могут повести себя не так. А с другой стороны, раз API ломается, можно и это поправить. Хотя вряд ли кто-то сознательно указывает StringEOL == "", чаще NULL.

Если надо проверять, я всегда готов, т.к. изменения в моих скриптах не требуют ни перекомпиляции, ни перезапуска Фара.

shmuel

2011-12-23 13:44

developer   bugnote:0008218

Ещё один глюк того же типа:
1. Для непоследней строки вызываем ECTL_SETSTRING, задавая StringEOL="". Выполнилось, никакой склейки строк в редакторе не наблюдается. (Ладно, так было всегда).
2. Вызываем ECTL_GETSTRING для этой же строки, видим, что StringEOL=="", что уже подозрительно для непоследней строки.
3. Сохраняем, закрываем и переоткрываем файл. Повторяем п.2, получаем StringEOL=="\r\n".

JohnDoe

2014-08-02 01:28

updater   bugnote:0012829

Дубль 0002657

Issue History

Date Modified Username Field Change
2011-12-08 14:09 shmuel New Issue
2011-12-09 15:12 2useven10 Note Added: 0008133
2011-12-09 15:53 shmuel Note Added: 0008134
2011-12-09 17:14 2useven10 Note Added: 0008135
2011-12-09 17:38 shmuel Note Added: 0008136
2011-12-23 13:44 shmuel Note Added: 0008218
2014-08-02 01:28 JohnDoe Note Added: 0012829
2014-08-02 06:25 shmuel Relationship added has duplicate 0002657