Bugs / Найденные баги (1)

Russian main discussion
Locked
  • Author
  • Message
Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Багофича?
Image

Я себе без задней мысли выравниваю сотни строк, а оно мне втихаря гадит пробелами в хвосты тех из ни что покороче. С пробелами та же история, да.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Кстати о переоткрытии с сохранением истории отмен.
Я тут у себя скрипт откопал, аж от мая 2012-го.
Только я совершенно не помню, что с ним не так и почему я его отложил. А, может, и нормально все...
Так или иначе, пользоваться я им почему-то не стал.
https://github.com/Infocatcher/AkelPad_ ... eReopen.js

[Upd] Хотя нет, одна проблема все же была: при чтении сохраненного файла угадывалась кодировка вместо использования текущей.
И в бэкапах нашлась

Code: Select all

--- a/undoableReopen_2011-06-24.js
+++ b/undoableReopen_2012-05-11.js
@@ -35,7 +35,7 @@
 function noScroll(func, hWndEdit) {
 	if(!hWndEdit)
 		hWndEdit = AkelPad.GetEditWnd();
-	var lpPoint = AkelPad.MemAlloc(8 /*sizeof(POINT)*/, true);
+	var lpPoint = AkelPad.MemAlloc(8 /*sizeof(POINT)*/);
 	if(!lpPoint)
 		return;
 	setRedraw(hWndEdit, false);
@@ -45,7 +45,7 @@
 
 	AkelPad.SendMessage(hWndEdit, 1246 /*EM_SETSCROLLPOS*/, 0, lpPoint);
 	setRedraw(hWndEdit, true);
-	AkelPad.MemFree(lpPoint, true);
+	AkelPad.MemFree(lpPoint);
 }
 function setRedraw(hWnd, bRedraw) {
 	AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0);

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

FeyFre wrote:Багофича?
Это особенность работы с вертикальным выделением. "Баг" (так пока его назовём) проявляется в том случае, если выделение выходит за правый край строки. НО.
1. Для той операции, что вам в действительности была нужна, не было, как мне кажется, никакого смысла растягивать вертикальное выделение вправо (на 123...90). Вполне было достаточно вертикального выделения нулевой ширины. При таком применении, лишних пробелов не появится.
2. Проблема "вдруг возникших" концевых пробелов не так остра, ибо легко решается (например, перед сохранением файла [Ctrl+A] затем [Alt+Backspace]).
3. Возвращаясь к особенностям поведения блочного выделения. Возможно вам покажется любопытным и то, что эффекта появления доп.пробелов на хвостах строк можно добиться и на операции [Shift+Backspace] (т.е. "убрать первый символ в начале строк") если правый край блочного выделения выезжает за символ конца строки.
4. Не готов сходу привести какой-либо "очевидный" общий пример полезного применения таких особенностей. Но сам я использовал эту "багофичу" когда врукопашную выравнивал текст по правому краю (заимствовал правые пробелы для переноса влево). "Голь на выдумки хитра".
P.S. "Нескриптописатели", знаете ли, иногда прибегают к таа-а-ки-им вычурным способам редактирования :)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »


Offline
Posts: 5
Joined: Sun Mar 16, 2014 10:43 am

Post by n1kka »

Аварийное завершение AkelPad при использовании плагина jscript.dll

ОС: Windows 7 x64 SP1 + все последние обновления

Какие действия были сделаны:
1. Открытие AkelPad
2. Открытие меню скриптов
3. Выбор скрипта "Фильтр строк с регулярными выражениями"

Image

Какой результат получился:
3.1. AkelPad аварийно завершился.

Image

Ранее таких проблем не наблюдалось.

Аналогичное поведение наблюдается на большинстве скриптов, которые идут по дефолту с приложением.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

n1kka
jscript.dll - это не плагин AkelPad'а, это интерпретатор языка JScript. Какая у вас версия плагина Scripts?

Offline
Posts: 5
Joined: Sun Mar 16, 2014 10:43 am

Post by n1kka »

Instructor wrote:n1kka
jscript.dll - это не плагин AkelPad'а, это интерпретатор языка JScript. Какая у вас версия плагина Scripts?
Будем знать :)

Версия 13.6

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »


Offline
Posts: 5
Joined: Sun Mar 16, 2014 10:43 am

Post by n1kka »

Instructor wrote:n1kka
Scripts plugin v13.7
Вот это оперативность! Благодарю!

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Баг блокирующий открытие файла
Шаги воспроизведения бага:
1. открыть файл в акелпаде.
2. удалить этот же файл.
3. свернуть все окна.
4. попытаться перетащить какой-то файл в окно акелпада (через наведение курсора на окно акелпада на панели задач windows)

Текущий результат:
В акелпаде вылезает окно-уведомление о том, что просматриваемый файл был изменён, drag'n'drop приходится отменять: drop'нуть перетаскиваемый файл в акелпад, чтоб он открылся - невозможно.

Ожидаемый результат:
Окно-уведомление не должно вылезать пока идёт процесс drag'n'drop'а.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Drugmix
Все корректно. Чтобы продолжить процесс Drag'n'Drop, необходимо ответить на сообщение свободной рукой с клавиатуры.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Instructor
это дискриминация одноруких.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Instructor wrote:Drugmix
AutoScript-UndoReopen.js
Похоже, что в этом скрипте не хватает одной небольшой - но о-очень важной - проверки. (К слову, в своём предыдущем развёрнутом сообщении на эту тему я как-то упустил этот нюанс из виду.)
Итак, если перечитывается немодифицированный файл, то буфер Undo должен это либо вообще игнорировать, либо запоминать предыдущее содержимое только в случае явно включенной соответствующей настройки.
Яркий пример того, почему это очень важно: пусть мы мониторим лог-файл, содержимое которого изменяется каждые несколько секунд. В этой ситуации размер файла и прошедшее время полностью определяют момент, когда буфер Undo съест всю доступную память.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

DV
мониторинг лог-файлов - это отдельная песня: там надо либо отключать подгрузку undo истории насовсем, либо делать примитивный и быстрый diff (в лог-файлах текст добавляется строго новыми строками внизу или вверху документа).
Я понимаю, что это всё сложно и что кроме меня это мало кому нужно, и я уже смирился с тем, что скорей всего это не войдёт в акелпад и мне придётся пользоваться скриптами, но мне нужно ещё чуть-чуть помощи с ними:
есть undoableReopen.js, который подгружает UnDo историю как раз так, как мне хочется, но этот скрипт нужно вызывать вручную.
А есть AutoScript-UndoReopen.js который подгружает её не так, как мне хочется, но зато он сам отслеживает события и его достаточно в автозагрузку добавить.

Очень хочется гибрид этих двух скриптов, чтобы история подгружалась как в первом, но при этом не надо было делать его вызовы вручную, т.е. чтоб он следил за событиями как второй.
Сам я пытался это сделать, но мне не хватило ума и/или знаний.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Воспроизводим ошибку, при которой AkelPad не открывает файл:
1. Пусть у нас некоторые файлы "1.txt" и "2.txt"
2. Запускаем из командной строки: AkelPad.exe 1.txt - запускается AkelPad (в режиме MDI) и открывает файл "1.txt"
3. Физически удаляем файл "1.txt" (при этом AkelPad, потеряв фокус, ещё никак не реагирует на удаление файла)
4. Запускаем из командной строки: AkelPad.exe 2.txt - при этом AkelPad сообщает, что не может открыть файл "1.txt", и не открывает файл "2.txt"
Locked