punk_joker, имелось ввиду, что TinyPad "немного по-дебильному написан". При открытии файла он копирует содержимое во второй буфер, в начале строк вставляет структуры, превращает табуляции в пробелы, удаляет переводы строк, в конце строк добавляет по 10 пробелов. Половина кода занимается тасованием этого ужаса. В конце процесс обратный. И это вместо того, чтобы просто завести массив структур отдельно. Ширина наиболее длинной строки, таки да, рассчитывается без пробелов в конце.
Вообще, создаётся впечатление, что TinyPad редактировали люди со смутным представлением об ассемлере. Я бы поставил диагноз — рак кода:
Code:
proc key.f3
call search
jc @f
@@:ret
endp
Или вот в самом начале tp-common.asm
Code:
proc clear_selection
push eax ebx
mov eax,[cur_editor.SelStart.Y]
mov ebx,[cur_editor.Caret.Y]
cmp eax,ebx
jle @f
xchg eax,ebx
@@:push [cur_editor.Caret.X] [cur_editor.Caret.Y]
pop [cur_editor.SelStart.Y] [cur_editor.SelStart.X]
pop ebx eax
ret
endp
kiv wrote:
ИМХО как фича (1) хорош только при реакции исключительно на мышь
Можно сделать. Можно сделать настройку.