FarCmds: запуск far:macro save из истории команд

Здесь можно сообщить о найденных багах в Far.
Post Reply
User avatar
HaRT
Moderator
Posts: 10939
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 363 times

FarCmds: запуск far:macro save из истории команд

Post by HaRT »

far:macro save и macro:save не отрабатывают, если запущены из истории команд. :(
far:macro load и macro:load, напротив, работают нормально.

Far b.2112, FarCmds b.18, без прочих плагинов

У кого-нибудь это воспроизводится?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

А... случаем вызов save из меню не из макроса отрабатывает?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

...почему то (почему - не помню :oops:) стоит проверка на "сейчас макрос исполняется?"
Если "угу", то return FALSE.
User avatar
HaRT
Moderator
Posts: 10939
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 363 times

Post by HaRT »

Skirda
Не знаю, как оно так внутренне реализовано, но макрос на Enter в меню у меня есть (он просто говорит Enter и дополнительно сбрасывает некую глобальную переменную). Если его убить, то действительно начинает работать как надо. Почему так?

Кстати, в режиме записи макроса save и load не отрабатывают и из командной строки. Это специально?
User avatar
HaRT
Moderator
Posts: 10939
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 363 times

Post by HaRT »

Skirda wrote:... стоит проверка на "сейчас макрос исполняется?"
Что считается моментом окончания исполнения макроса?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

1. Во время записи мкароса обе команды не отрабатывают
2. Окончание макроса - когда в стеке не осталось ни одной команды.

Твой Enter запускает некий процесс, пока он не отработает (не будет передано управление ФАру, а оттуда макродвижку)... считается, что исполняется макрос.
User avatar
HaRT
Moderator
Posts: 10939
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 363 times

Post by HaRT »

Skirda
Ладно, с этим разобрались, спасибо. (Хотя пока по-прежнему непонятно, как в моём случае это обойти.)

А нет ли каких-то предположений, почему macro:save может не работать из AltHistory? Там ведь диалог, и Enter у меня не замакросен…
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Хмм... мне тут подумалось...
С момента "запрета" исполнения SAVE при активном макросе утекло много воды, многое было исправлено и все такое...

Давай пожалуй "откроем" возможность исполнения save во время проигрывания макроса, т.к. байткод исполняется в отдельной области и т.н. RAM не трогает...

В обшем посмотрим, что из этого получится ;-)
User avatar
HaRT
Moderator
Posts: 10939
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 363 times

Post by HaRT »

Skirda wrote:пожалуй "откроем" возможность
Спасибо!
HaRT wrote:нет ли каких-то предположений, почему macro:save может не работать из AltHistory? Там ведь диалог, и Enter у меня не замакросен…
А об этом есть какие-то идеи? (Разумеется, у Nikolayа я тоже спрошу.)
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

HaRT, покажи "алгоритм", чтобы можно было по нему повторить твою беду.
User avatar
HaRT
Moderator
Posts: 10939
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 363 times

Post by HaRT »

Skirda
Да какой там алгоритм…
Запускаю far:macro save из командной строки — отрабатывает.
Записываю для теста новый макрос (любой).
Открываю список Альтернативной истории команд (любым способом).
Выбираю в нём far:macro save, нажимаю Enter — в соответствующий ключ реестра ничего не переносится.

Если конкретно, то я сначала использую быстрый префикс /, а потом — макрос ShiftSpace, который вызывает AltHistory| Commands History| List of commands.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

нарисуй траблу на мантис.
про альтхистори, farcmds и макросы.
вместе с указанным алгоритмом.
чтобы не забыть :-)
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

HaRT
Ну скорее всего AltHistory выполняет макрос чтоб запустить команду в комстроке (Enter).
User avatar
HaRT
Moderator
Posts: 10939
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 363 times

Post by HaRT »

Skirda
Записал на Мантис: № 236 (правда, в обобщённой формулировке).

t-rex
Nikolay подтвердил.
Post Reply

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