Re: TinyPad 4.0.4
Posted: Fri Nov 22, 2013 7:56 pm
Баг подтверждаю.
Исправлено в SVN r.4316.0CodErr wrote:Открыл в TinyPad файл размером 0 байтов и нажал 5 раз клавишу Enter — программа вылетела:Spoiler:
Такую нумерацию заложил mike.dld и я не вижу причин менять.Leency wrote:Мог бы менять до 4.1, не совсем удобно использовать 3 цифры для нумерации да и нет ощущения праздника
Ну вообще-то я думал это известный баг. Если в многострочном файле с самого конца одной из строк скопировать этот конец строки (т.е. \r\n видимо) и несколько последующих символов, а затем вставить в другое место в этом же файле, то начинались такие чудеса, что лучше этот файл было не сохранять во избежание утраты части этого файла.Mario_r4 wrote: Также обнаружилось, что случайные Page Fault при пользовании внутренним буфером обмена происходили, еще до внедрения моего кода, так что с эти еще предстоит разобраться.
Ну, вот видишь - раз на форуме не упомянули, то я потратил больше недели реального времени (5х8) по вечерам, ломая голову почему "глючит" мой код и уже в приступе отчаяния решил проверить код до моих изменений.Asper wrote:Ну вообще-то я думал это известный баг. Если в многострочном файле с самого конца одной из строк скопировать этот конец строки (т.е. \r\n видимо) и несколько последующих символов, а затем вставить в другое место в этом же файле, то начинались такие чудеса, что лучше этот файл было не сохранять во избежание утраты части этого файла.Mario_r4 wrote: Также обнаружилось, что случайные Page Fault при пользовании внутренним буфером обмена происходили, еще до внедрения моего кода, так что с эти еще предстоит разобраться.
Вроде не должно такого быть. Приведи точную методику повторения.Albom wrote:А почему в буфер обмена вместе с текстом добавляется два символа (которых в исходном фрагменте нет) - перевод строки и возврат каретки?
С TextEdit вполне совмещалось, а насчет Shell опять же нужны подробности и насколько я понимаю этот код еще не закончен?Albom wrote:Это будет совместимо с другими программами? (добавил в Shell буфер обмена - приходится вручную обрезать строку)
Да, возможно не до конца разобрался.Mario_r4 wrote:Вроде не должно такого быть. Приведи точную методику повторения.
С Tinypad посмотрю, может в коде я не все учел.Albom wrote:Пример: в Tinypad скопировал ls.
Длина буфера обмена - 17 ( = 3*4 (заголовок) + 2 (ls) +2 (13 и 10) + 1 ('\0') )
А вот насчет вставки из TextEdit - тут уже не я делал код, надо у автора спрашивать. У него там не всегда соответствует число скопированной информации. Иной раз копирует все и ставит 0, где заканчиваются данные. В общем нечеткая логика.Albom wrote:Второй пример - попробовал t_edit. Буфер оказывается пуст (первый dword равен 0).
Исправлено в SVN r.4552, как и падение Tinypad при вставке из Shell.Albom wrote:Пример: в Tinypad скопировал ls.
Длина буфера обмена - 17 ( = 3*4 (заголовок) + 2 (ls) +2 (13 и 10) + 1 ('\0') )
Исправлено в SVN r. 4566.Mario_r4 wrote:Осталась проблема с падением от вставки многострочных текстов (в том числе и из Shell, если многострочный текст в сам Shell предварительно вставить, а потом скопировать обратно в буфер обмена) в область за пределами текста, т.е. там где пустота справа и по идее ничего нет, но курсор туда устанавливается.