Panelsort.lua:77: assertion failed

Здесь можно сообщить о найденных багах в Far.
Post Reply
bfg
Posts: 18
Joined: Wed 05 Aug, 2015 04:13
Has thanked: 4 times
Been thanked: 1 time

Panelsort.lua:77: assertion failed

Post by bfg »

Проапгрейдил Фар с билда 4242 на 5939. Теперь получаю такую ошибку при запуске:

C:\Program Files\Far2\Plugins\LuaMacro\panelsort.lua:77: assertion failed!
stack traceback:
: in function 'assert'
C:\Program Files\Far2\Plugins\LuaMacro\panelsort.lua:77: in function 'LoadCustomSortMode'
...ng\Far Manager\Profile\Macros\scripts\SortByLastName.lua:31: in main chunk
[C]: in function 'xpcall'
C:\Program Files\Far2\Plugins\LuaMacro\utils.lua:782: in function <C:\Program Files\Far2\Plugins\LuaMacro\utils.lua:759>
[C]: in function 'RecursiveSearch'
C:\Program Files\Far2\Plugins\LuaMacro\utils.lua:851: in function <C:\Program Files\Far2\Plugins\LuaMacro\utils.lua:678>

У меня немало кастомных сортировок и подсветок было сделано в Фаре 4242. При клике ОК Фар 5939 вроде работает и мои сортировки/подсветки видны (хотя в деталях пока не проверял). Строчки 76-77 в panelsort.lua:

local minMode = F.SM_USER or 100 -- SM_USER appeared in Far 3.0.5655
assert(type(nMode)=="number" and nMode==math.floor(nMode) and nMode>=minMode and nMode<=0x7FFFFFFF)

Если строчку 77 закомментировать, то ошибка не возникает и вроде все работает (как и при клике на ОК). Вопрос только, не вылезет ли каких-то проблем из-за этого?

Я проверил все билды в архиве, и выяснил что ошибка стала возникать в билде 5656.1698. В билде 5655.1694 строчка 77 в panelsort.lua имеет вид:

assert(type(nMode)=="number" and nMode==math.floor(nMode) and nMode>=100 and nMode<=0x7FFFFFFF)

Т.е. видимо ошибку вызывает изменение проверки "nMode >= 100" на проверку "nMode >= F.SM_USER или 100". Нашел SM_USER, он равен 100000. Т.е. мои сортировки или подсветки видимо имеют номера от 100 до 100000, и это изменение кода теперь вызывает ошибку. Довольно странно что изменили проверку на такую, которая показывает ошибку с сортировками / подсветками созданными на более ранних версиях Фар.

Вопрос, как мне теперь избавиться от этой ошибки наиболее безопасным способом, т.е. чтобы не возникло никаких проблем от этого? Будет ли безопасным просто закомментировать или изменить assertion? Или нужно пересоздать все правила подсветки / сортировки?
Last edited by bfg on Mon 20 Dec, 2021 14:48, edited 1 time in total.
bfg
Posts: 18
Joined: Wed 05 Aug, 2015 04:13
Has thanked: 4 times
Been thanked: 1 time

Panelsort.lua:77: assertion failed

Post by bfg »

P.S. Вот другое сообщение об этой же ошибке: viewtopic.php?p=163067
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Panelsort.lua:77: assertion failed

Post by Shmuel »

bfg wrote: Mon 20 Dec, 2021 14:47 Будет ли безопасным просто закомментировать или изменить assertion? Или нужно пересоздать все правила подсветки / сортировки?
Не рекомендуется трогать плагин.
Измените в ваших скриптах номера режимов сортировки так, чтобы они начинались не со 100, а со 100000.
Например, был у вас режим 105, сделайте его 100005.
bfg
Posts: 18
Joined: Wed 05 Aug, 2015 04:13
Has thanked: 4 times
Been thanked: 1 time

Panelsort.lua:77: assertion failed

Post by bfg »

Shmuel wrote: Mon 20 Dec, 2021 15:04 Измените в ваших скриптах номера режимов сортировки так, чтобы они начинались не со 100, а со 100000.
Например, был у вас режим 105, сделайте его 100005.
А как это сделать?
Я не вижу поля для ввода номера в диалогах редактирования сортировки и подстветки.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Panelsort.lua:77: assertion failed

Post by Shmuel »

bfg wrote: Mon 20 Dec, 2021 14:47 У меня немало кастомных сортировок и подсветок было сделано в Фаре 4242.
Сортировки это одно, подсветки - другое. Ошибка выдаётся плагином на сортировку, поэтому я говорю о сортировках.
Видимо, вы их не сами делали, а взяли у кого-то, раз не знаете, где они.
Но в сообщении об ошибке файл и строка указаны: Far Manager\Profile\Macros\scripts\SortByLastName.lua:31:
Если затрудняетесь исправить сами, выложите этот файл, можно мне в личку.
bfg
Posts: 18
Joined: Wed 05 Aug, 2015 04:13
Has thanked: 4 times
Been thanked: 1 time

Panelsort.lua:77: assertion failed

Post by bfg »

Аа, все, понял. Я думал дело в сортировках по расширениям, а не в этой сортировке. Понял где изменить, спасибо.
Post Reply

Return to “Глюки и баги”