Latest post of the previous page:
а ты проверьMax Rusov wrote:Как я понимаю mmode(3 - не делает функцию асинхронной, а решает другую проблему - реентрантность макросов:
http://bugs.farmanager.com/view.php?id=1280
Latest post of the previous page:
а ты проверьMax Rusov wrote:Как я понимаю mmode(3 - не делает функцию асинхронной, а решает другую проблему - реентрантность макросов:
http://bugs.farmanager.com/view.php?id=1280
Это ясно, можно не разжёвывать.ProcessMacroFuncW и callplugin (или что-то подобное) - разные сущности
Code: Select all
mmode(3,1) callplugin("C941E865-9C29-485C-99B3-0C710940F2D8","ShiftRight ShiftRight ShiftDown ShiftDown ShiftLeft ShiftLeft ShiftUp ShiftUp ShiftRight Esc")
Code: Select all
mmode(3,1) callplugin("C941E865-9C29-485C-99B3-0C710940F2D8")
ShiftRight ShiftRight ShiftDown ShiftDown ShiftLeft ShiftLeft ShiftUp ShiftUp ShiftRight Esc
Я не понимаю какую роль он выполняет в описании mmode(3,...)Первый вариант считай учебным
т.к. TechInfo у нас зло, то mmode(3) это замена "KeyMacros/CallPluginRules", но с той разницей, что CallPluginRules ты перед стартом Far`а делал, а сейчас можно динамически управлять поведением callplugin из макроса.svs 19.02.2010 17:18:28 +0300 - build 1412
...
5. Добавлено временное правило KeyMacros/CallPluginRules:dword (по мотивам Mantis#1280)
0 - блокировать макросы при вызове плагина функцией CallPlugin, 1 - разрешить макросы (ахтунг!)
по умолчанию 0 - блокировать
"временное" - чтобы понять на сколько это критично.
Нет. Вы путаете 2 проблемы - синхронность и реентрантность.John Doe wrote:1) Часть макропоследовательности, следуящая за callplugin не выполняется
Спасибо что разъяснили наконец.Max Rusov wrote:Вы путаете 2 проблемы - синхронность и реентрантность.
Они и сейчас не выполняются. Речь идет про то, что описал Макс. А именно, что если включен режим, то плагин может подсунуть движку свою последовательность (как пример с дравлайном, там параметр, как макрос, плагином возвращается ФАРу), которую ФАР исполнит, притормозив ту последовательность, которая вызвала плагин через callplugin.John Doe wrote:2) Был "techinfo" позволяющий командам следующим за callplugin как-то выполнятся, но при этом возникали проблемы.
Что и нужно выяснитьJohn Doe wrote:Но получается что использование этого mmode(3,) может привести к падениям, описанным в тикете?
Только на callplugin.John Doe wrote:Из скудного описания следует что mmode(3,) действует на callplugin.
Эээ... не понял. eval(), не?John Doe wrote:Или эффект распространяется шире, давая возможность вызывать макросы из макросов?
Ты как то однобоко на этот пример смотришь.John Doe wrote:Или же речь идёт только о макросах передаваемых параметром, как в примере?
Не. Например в данный момент работает "прозрачный" макрос, ждущий закрытия диалога, типа $while(Dialog) ... eval(waitkey()) $exitSkirda wrote:Эээ... не понял. eval(), не?John Doe wrote:Или эффект распространяется шире, давая возможность вызывать макросы из макросов?
Мне не нравится само это "подсовывание".Skirda wrote:плагин может по той же методе "подсунуть" свою, нужную только ему, последовательность.