Некорректность в far.Menu

Здесь можно сообщить о найденных багах в Far.
Post Reply
JouriM
Posts: 48
Joined: Fri 04 Dec, 2015 21:16
Been thanked: 3 times

Некорректность в far.Menu

Post by JouriM »

Сабж
Которая, похоже, заключается в том что он считает что все элементы таблицы являются пунктами меню. Неудобно.
Иллюстрация: Берем вот , запускаем его в каком-нить диалоге а потом там где диалога нет (в панелях, редакторе и т.д.)
При втором запуске видно что происходит обращение к нулю за пределами числа элементов

Предложение: считать концом элементов любой элемент таблицы "menu items" не являющийся таблицей
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Некорректность в far.Menu

Post by Shmuel »

Разбираться в макросе такой величины нет времени. Давайте пример попроще.
IgorZ
Posts: 792
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Некорректность в far.Menu

Post by IgorZ »

Shmuel, как я понял, ТС, не желая зачищать таблицу нормально, просто обнуляет первый элемент. В результате получает нечто вроде

Code: Select all

local items = {
nil,
{text="line2"}
}
far.Menu({Title="test"},items)
JouriM, процитирую руководство:
Items: table (array of menu items)
То есть, это как раз корректность, заключающаяся в том, что far.Menu работает в точности так, как задумано и описано. Что же до макроса, то проще всего перенести определение m:
А надёжнее - корректно вычищать все элементы меню.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Некорректность в far.Menu

Post by Shmuel »

IgorZ wrote: А надёжнее - корректно вычищать все элементы меню.
В Lua обычно вместо чистки таблицы просто заводят новую, а о старой сборщик мусора позаботится.

Я в скрипте этом не разбирался, нет ни времени, ни желания. Когда человек хочет сделать репорт, это его обязанность предоставить короткий внятный пример, по возможности не содержащий ничего, к делу не относящегося.
Post Reply

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