AkelPad вылетает при использовании regex.

Russian main discussion
  • Author
  • Message
Offline
Posts: 17
Joined: Mon Apr 08, 2013 8:46 am
Location: Jerusalem

AkelPad вылетает при использовании regex.

Post 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) + последние версии плагинов.

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

Re: AkelPad вылетает при использовании regex.

Post by DV »

Подтверждаю проблему, AkelPad 4.9.8, 32-bit.
Похоже, падение возникает из-за начального фрагмента регулярного выражения "\WS" :!:
Если заменить на "[\W]STO[\W]", то работает.

Offline
Posts: 17
Joined: Mon Apr 08, 2013 8:46 am
Location: Jerusalem

Post by lopotun74 »

Действительно, [\W]STO[\W] работает. \sSTO\s работает тоже. Интересно, что такого волшебного есть в \WS :?

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

Post by opk44 »

lopotun74
С точки зрения практического использования.
Можете воспользоваться "тестовой" версией 4.9.9 (x86 или x64) от 2019-07-07. В ней данная ошибка не воспроизводится (исправлено).
Вообще говоря, данный баг в тестовых версиях исправлен даже раньше (где-то между 2017-11-04 и 2018-08-26).

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

Post by DV »

opk44 wrote:Можете воспользоваться "тестовой" версией 4.9.9
Тут возникает вопрос: как прикрутить к этой версии имеющиеся плагины, и не будут ли они (плагины) работать некорректно из-за потенциальных отличий внутреннего API ?

Offline
Posts: 17
Joined: Mon Apr 08, 2013 8:46 am
Location: Jerusalem

Post by lopotun74 »

DV wrote:
opk44 wrote:Можете воспользоваться "тестовой" версией 4.9.9
Тут возникает вопрос: как прикрутить к этой версии имеющиеся плагины, и не будут ли они (плагины) работать некорректно из-за потенциальных отличий внутреннего API ?
Хороший вопрос. Лучше иметь workaround к некорректно работащему regex, чем полностью работащий regex, но с потенциально неработающими плагинами.

Offline
Posts: 17
Joined: Mon Apr 08, 2013 8:46 am
Location: Jerusalem

Post 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? :roll: Похоже на проблему при merge веток проекта. Если это так, то возможно, автору AkelPad будет интересно проверить не подцепились ли и другие баги из-за некорректного merge.

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

Post 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].
**Я все подряд не компилировал, поэтому и не называю точную цифру.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

4.9.9 использую давно, почти с начала использования, написал все свои скрипты используя эту версию, экспериментируя с плагами. В общем проблем не замечал.

Offline
Posts: 17
Joined: Mon Apr 08, 2013 8:46 am
Location: Jerusalem

Post 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. Но новый официальный релиз более чем приветствуется :D

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

lopotun74
Там всего лишь файл exe поменять. Допустим я переименова AkelPad.exe в AkelPad498.exe, а AkelPad.exe взял из версии 4.9.9. Типа когда будет сбой могу поменять и так уже год прошёл, всё никак не сбоит. Рег.выр.ами тоже пользуюсь часто, даже подсветку им делал. Но в основном FindReplaceEx.js, незнаю влияет ли, ведь в нём используется те же внутренние вызовы AkelPad.

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

Post by DV »

Собрал AkelPad.exe r4410 (последний на данный момент) и языковые файлы к нему. Версии 32-бит и 64-бит.
https://drive.google.com/open?id=1t1nYe ... NNHySqJWcr
Отличия в заголовочных файлах между 4.9.9 и 4.9.8 невелики, совместимость плагинов должна сохраниться.

Offline
Posts: 17
Joined: Mon Apr 08, 2013 8:46 am
Location: Jerusalem

Post by lopotun74 »

DV wrote:Собрал AkelPad.exe r4410 (последний на данный момент) и языковые файлы к нему. Версии 32-бит и 64-бит.
https://drive.google.com/open?id=1t1nYe ... NNHySqJWcr
Отличия в заголовочных файлах между 4.9.9 и 4.9.8 невелики, совместимость плагинов должна сохраниться.
"AkelPad_r4410.zip Владелец переместил файл в корзину"
А жаль :roll: Да, кстати, если есть сборка х64, то она более предпочтительна. Не то, чтобы редактирую гигантские тексты. Просто я не знаю, важно ли х32/х64 для плагинов.

Offline
Posts: 17
Joined: Mon Apr 08, 2013 8:46 am
Location: Jerusalem

Post by lopotun74 »

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

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

Post by DV »

lopotun74 wrote:Вот, DV выложил х32 сборку, но она уже недоступна
Попробуйте ещё раз - у меня качается.
Post Reply