Переименовать callplugin

Здесь обсуждается всё, что касается макросов.
Locked
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Переименовать callplugin

Post by Maximus5 »

Latest post of the previous page:

Code: Select all

N=Plugin.Call(Guid[,MenuGuid])
как и у Config второй параметр необязателен, если у плагина один пункт
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

По поводу "обязателен/необязателен".

Технически сейчас можно указывать сколь угодно параметров и сколь угодно не указывать (big tnx zg).
Но мы сохраним старую форму синтаксиса с обоснованием: что же по минимуму ожидает та или иная макрофункция на входе.
We are the Borg. You will be assimilated.
So Say We All!
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Переименовать callplugin

Post by Maximus5 »

так я и говорю про минимум.
или ты про callplugin?
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Переименовать callplugin

Post by John Doe »

Skirda wrote:next
В этом билде mmode(3,1) работает как положено (активирует "асинхронный" режим callplugin).
Но отвалился запуск макропоследовательности переданной параметром
Хотя не, я ж со старой версией плагина запустил, так что всё в порядке!
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Переименовать callplugin

Post by John Doe »

Skirda wrote:На тестирование.

Code: Select all

N=Plugin.Call(Guid,MenuGuid)    
N=Plugin.Config(Guid[,MenuGuid])
N=Plugin.Prefix(Guid,Command)   
N=Plugin.Int(Guid,Item)


Mantis#1903
Диалог FileCase открывается, но при закрытии падает:

Code: Select all

macro:post Plugin.Call("ADAC3050-56E8-45FE-9CB1-A737623CC4A6")

Code: Select all

╔════════════════════════ Exception occurred ════════════════════════╗
║ Exception:   Access violation (read from 0x0000000E)               ║
║ Address:     0x00551456                                            ║
║ Function:    wmain                                                 ║
║ Module:      C:\APPs\FAR\1903\Far.exe                              ║
╟────────────────────────────────────────────────────────────────────╢
║                    { Terminate Far } [ Debug ]                     ║
╚════════════════════════════════════════════════════════════════════╝
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Переименовать callplugin

Post by Maximus5 »

Поправил.

Есть другая заморочка. Нужен специалист по макросам )

в итоге, MR разрушается. Push/Pop наверное где-то звать надо?
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Переименовать callplugin

Post by John Doe »

Возвращая к mmode(3,x).
Можно ли распространить его действие на новое семейство функций?
User avatar
SUSim
Posts: 1637
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Переименовать callplugin

Post by SUSim »

John Doe wrote:Возвращая к mmode(3,x).
Можно ли распространить его действие на новое семейство функций?
это какое такое семейство?
SimSU ··· ·· -- ··· ··-
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

Maximus5 wrote:Есть другая заморочка. Нужен специалист по макросам
Что и где и на чем смотреть?
We are the Borg. You will be assimilated.
So Say We All!
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Переименовать callplugin

Post by Maximus5 »

Запустить фар (PluginCall6.diff) с двумя плагинами: FileCase и FarCmds
Выполнить: macro:post Plugin.call("ADAC3050-56E8-45FE-9CB1-A737623CC4A6")
Открывается диалог, сразу жмем Esc, в отладчике, после завершения
macro.cpp:5853: MFunc->Func(MFunc);
видим, что указатель MR был разрушен (вложенный вызов GetKey/ReleaseWORKBuffer).
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

самое простое - содержимое функций втащить в GetKey() по аналогии с callplugin
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

тестируем (на основе PluginCall7.diff)
здесь так же mmode(3,1) по умолчанию включен
We are the Borg. You will be assimilated.
So Say We All!
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Переименовать callplugin

Post by John Doe »

Продолжает падать на том же примере.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Переименовать callplugin

Post by Maximus5 »

Исправил. это был артефакт от старого патча (
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

тестируем (на основе PluginCall8.diff)
здесь так же mmode(3,1) по умолчанию включен
We are the Borg. You will be assimilated.
So Say We All!
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Переименовать callplugin

Post by Maximus5 »

Чего-то еще подкрутить надо: игнорируется "DisableOutput"
Пример:

Code: Select all

macro:post Plugin.Call("ADAC3050-56E8-45FE-9CB1-A737623CC4A6") Esc
Видно, как мелькает диалог
А если так:

Code: Select all

macro:post F11 Enter Esc
то не мелькает
Locked

Return to “Обсуждение макросов”