Page 1 of 3
AkelPad вылетает при использовании regex.
Posted: Wed May 13, 2020 8:44 am
by lopotun74
Есть такой фрагмент текста:
Code: Select all
First North NOK -NewONSE 106324675N
First North NOK -NewONSE 106324675N
Nordic OMX STO Fund ESTO 106324675N
Nordic OMX STO Fund ESTO 106324675N
Nordic OMX STO Fund ESTO 106324675N
First North NOK -NewONSE 106324675N
Мне нужно найти в нём отдельно стоящее слово "STO". Для этого использую Ctrl-F + regex \WSTO\W
Он успешно находит три раза искомое слово, но если нажать "Find Next" ещё раз, то AkelPad тихонько умирает безо всякого сообщения об ошибке.
Версия: 4.9.8 (х64) + последние версии плагинов.
Re: AkelPad вылетает при использовании regex.
Posted: Wed May 13, 2020 9:11 am
by DV
Подтверждаю проблему, AkelPad 4.9.8, 32-bit.
Похоже, падение возникает из-за начального фрагмента регулярного выражения "\WS"

Если заменить на "[\W]STO[\W]", то работает.
Posted: Wed May 13, 2020 9:25 am
by lopotun74
Действительно, [\W]STO[\W] работает. \sSTO\s работает тоже. Интересно, что такого волшебного есть в \WS

Posted: Wed May 13, 2020 10:14 am
by opk44
lopotun74
С точки зрения практического использования.
Можете воспользоваться "тестовой" версией 4.9.9 (
x86 или
x64) от 2019-07-07. В ней данная ошибка не воспроизводится (исправлено).
Вообще говоря, данный баг в тестовых версиях исправлен даже раньше (где-то между 2017-11-04 и 2018-08-26).
Posted: Wed May 13, 2020 10:45 am
by DV
opk44 wrote:Можете воспользоваться "тестовой" версией 4.9.9
Тут возникает вопрос: как прикрутить к этой версии имеющиеся плагины, и не будут ли они (плагины) работать некорректно из-за потенциальных отличий внутреннего API ?
Posted: Wed May 13, 2020 1:00 pm
by lopotun74
DV wrote:opk44 wrote:Можете воспользоваться "тестовой" версией 4.9.9
Тут возникает вопрос: как прикрутить к этой версии имеющиеся плагины, и не будут ли они (плагины) работать некорректно из-за потенциальных отличий внутреннего API ?
Хороший вопрос. Лучше иметь workaround к некорректно работащему regex, чем полностью работащий regex, но с потенциально неработающими плагинами.
Posted: Wed May 13, 2020 1:06 pm
by lopotun74
opk44 wrote:lopotun74
С точки зрения практического использования.
Можете воспользоваться "тестовой" версией 4.9.9 (
x86 или
x64) от 2019-07-07. В ней данная ошибка не воспроизводится (исправлено).
Вообще говоря, данный баг в тестовых версиях исправлен даже раньше (где-то между 2017-11-04 и 2018-08-26).
Странно. То есть, этот баг был исправлен давно, затем появился в 4.9.8 и снова пропал в 4.9.9?

Похоже на проблему при merge веток проекта. Если это так, то возможно, автору AkelPad будет интересно проверить не подцепились ли и другие баги из-за некорректного merge.
Posted: Wed May 13, 2020 4:24 pm
by opk44
DV wrote:Тут возникает вопрос: как прикрутить к этой версии имеющиеся плагины, и не будут ли они (плагины) работать некорректно из-за потенциальных отличий внутреннего API ?
Не попробуешь – не узнаешь. Работаю с тестовой версией, так сказать "штатно". Никаких неудобств в плане совместимости с плагинами не возникало. Единственный известный минус - языковые модули. Тут приходится проходить три стадии: 1) пользоваться только внутренним языком (англ.), 2) заморочиться с редакторами ресурсов, 3) самому компилировать всю сборку.
Справедливости ради добавлю, что частью плагинов я либо не пользуюсь вообще, либо пользуюсь только время от времени.
lopotun74 wrote:Странно. То есть, этот баг был исправлен давно, затем появился в 4.9.8 и снова пропал в 4.9.9?
Откуда такой вывод? Нет никакого "затем".
Версия 4.9.8 - 18 июля 2016 [r4313].
Исправлен баг ориентировочно в интервале [r4344]-[r4377]**.
Текущая версия - 13 ноября 2019 [r4410].
**Я все подряд не компилировал, поэтому и не называю точную цифру.
Posted: Thu May 14, 2020 1:49 am
by AZJIO
4.9.9 использую давно, почти с начала использования, написал все свои скрипты используя эту версию, экспериментируя с плагами. В общем проблем не замечал.
Posted: Thu May 14, 2020 8:29 am
by lopotun74
opk44 wrote:
lopotun74 wrote:Странно. То есть, этот баг был исправлен давно, затем появился в 4.9.8 и снова пропал в 4.9.9?
Откуда такой вывод? Нет никакого "затем".
Версия 4.9.8 - 18 июля 2016 [r4313].
Исправлен баг ориентировочно в интервале [r4344]-[r4377]**.
Текущая версия - 13 ноября 2019 [r4410].
**Я все подряд не компилировал, поэтому и не называю точную цифру.
Упс, я даже не обратил внимания, что последняя major версия аж с 2016 года. В принципе, мне не критично. Все regex, которые я использовал раньше в AkelPad работали нормально, а на этот проблемны regex есть workaround.
Поскольку AkelPad -- мой основной текстовый редактор (заменяет стандартный Notepad), мне его надёжность важнее, чем какие-то мелкие недочёты. Так что пока остаюсь на 4.9.8. Но новый официальный релиз более чем приветствуется

Posted: Thu May 14, 2020 9:25 am
by AZJIO
lopotun74
Там всего лишь файл exe поменять. Допустим я переименова AkelPad.exe в AkelPad498.exe, а AkelPad.exe взял из версии 4.9.9. Типа когда будет сбой могу поменять и так уже год прошёл, всё никак не сбоит. Рег.выр.ами тоже пользуюсь часто, даже
подсветку им делал. Но в основном FindReplaceEx.js, незнаю влияет ли, ведь в нём используется те же внутренние вызовы AkelPad.
Posted: Thu May 14, 2020 1:00 pm
by DV
Собрал AkelPad.exe r4410 (последний на данный момент) и языковые файлы к нему. Версии 32-бит и 64-бит.
https://drive.google.com/open?id=1t1nYe ... NNHySqJWcr
Отличия в заголовочных файлах между 4.9.9 и 4.9.8 невелики, совместимость плагинов должна сохраниться.
Posted: Thu May 14, 2020 1:48 pm
by lopotun74
"AkelPad_r4410.zip Владелец переместил файл в корзину"
А жаль

Да, кстати, если есть сборка х64, то она более предпочтительна. Не то, чтобы редактирую гигантские тексты. Просто я не знаю, важно ли х32/х64 для плагинов.
Posted: Thu May 14, 2020 1:58 pm
by lopotun74
AZJIO wrote:lopotun74
Там всего лишь файл exe поменять. Допустим я переименова AkelPad.exe в AkelPad498.exe, а AkelPad.exe взял из версии 4.9.9. Типа когда будет сбой могу поменять и так уже год прошёл, всё никак не сбоит. Рег.выр.ами тоже пользуюсь часто, даже
подсветку им делал. Но в основном FindReplaceEx.js, незнаю влияет ли, ведь в нём используется те же внутренние вызовы AkelPad.
Так где ж его взять? Вот, DV выложил х32 сборку, но она уже недоступна. Наверное, можно скачать исходники и скомлипировать самому, но тогда надо и компилятор сгружать и вспоминать как компилировать. А делов-то всего было \WS

Posted: Thu May 14, 2020 2:09 pm
by DV
lopotun74 wrote:Вот, DV выложил х32 сборку, но она уже недоступна
Попробуйте ещё раз - у меня качается.