View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001941 | Far Manager | Plugins API.Editor | public | 2011-12-08 14:09 | 2014-08-02 06:25 |
Reporter | shmuel | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | x86 | OS | Windows | OS Version | XP SP3 |
Product Version | 3.0 | ||||
Summary | 0001941: Редактор неправильно отрабатывает ECTL_SETSTRING в последней строке | ||||
Description | [ Фар 3.0.2290 ] Если последняя строка файла "неполная", то-есть нет перевода строки, и вызывается ECTL_SETSTRING для этой строки, содержащий перевод строки, то редактор не полностью обновляет своё состояние: (а) нельзя перейти на добавленную строку (б) статус-бар показывает прежнее количество строк Если же сохранить файл, выйти из редактора и открыть снова, то оказывается, что: (а) есть добавленная строка, на неё можно перейти, и (б) статус-бар её учитывает. | ||||
Tags | No tags attached. | ||||
Build | |||||
has duplicate | 0002657 | new | Некорректная работа при изменении последней строки файла из плагина |
|
а то что при замене "полной" строки на "неполную" неполнота теряется (и для последней строки тоже), вас устраивает? |
|
Следует разделить данную проблему на две части. 1. Как должен вести себя редактор при вызове ECTL_SETSTRING с разными EOL. Тут можно спорить. Например, я бы при замене полной строки на неполную конкатенировал бы данную строку со следующей, что равносильно нажатию DEL в конце строки. Однако, не настаиваю. 2. При нынешнем поведении, описанном в данном репорте, редактор ведёт себя по-разному до и после сохранения и переоткрытия файла. Вот это уже бесспорный баг. |
|
согласен и с 1. и с 2. но т.к. я далек от реального использования плагин апи - не знаю, вдруг упомянутые ...фичи используются многими и изменение поведения их сильно огорчит. если возражений в ближайшее время не появится, я постараюсь это поправить. |
|
Да, не исключено, что некоторые плагины могут повести себя не так. А с другой стороны, раз API ломается, можно и это поправить. Хотя вряд ли кто-то сознательно указывает StringEOL == "", чаще NULL. Если надо проверять, я всегда готов, т.к. изменения в моих скриптах не требуют ни перекомпиляции, ни перезапуска Фара. |
|
Ещё один глюк того же типа: 1. Для непоследней строки вызываем ECTL_SETSTRING, задавая StringEOL="". Выполнилось, никакой склейки строк в редакторе не наблюдается. (Ладно, так было всегда). 2. Вызываем ECTL_GETSTRING для этой же строки, видим, что StringEOL=="", что уже подозрительно для непоследней строки. 3. Сохраняем, закрываем и переоткрываем файл. Повторяем п.2, получаем StringEOL=="\r\n". |
|
Дубль 0002657 |
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 |