Skip to content

Commit

Permalink
Небольшой рефакторинг в макросистеме.
Browse files Browse the repository at this point in the history
  • Loading branch information
shmuz committed Oct 28, 2015
1 parent 014c0ac commit 5454317
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 31 deletions.
16 changes: 10 additions & 6 deletions far/changelog
@@ -1,4 +1,8 @@
w17 27.10.2015 19:36:48 +0300 - build 4449
shmuel 28.10.2015 19:12:06 +0200 - build 4450

1. Мелкий рефакторинг в макросистеме.

w17 27.10.2015 19:36:48 +0300 - build 4449

1. Продолжение 4448. Не падаем в обработчике STACK_OVERFLOW, minidump покажет корректное место переполнения стека.

Expand Down Expand Up @@ -204,7 +208,7 @@ svs 10.09.2015 10:31:11 +0300 - build 4418
Диалог-предупреждение об уничтожении файла с несколькими хардлинками

RecycleFolderConfirmDeleteLinkId = {26A7AB9F-51F5-40F7-9061-1AE6E2FBD00A} --> Dlg.Id
Предупреждение о том, что папка содержит символические ссылки и при очистке корзины
Предупреждение о том, что папка содержит символические ссылки и при очистке корзины
данные будут потеряны и нужно разорвать связи (см. MRecycleFolderConfirmDeleteLink?)

CannotRecycleFileId = {52CEB5A5-06FA-43DD-B37C-239C02652C99} --> Dlg.Id
Expand Down Expand Up @@ -240,10 +244,10 @@ svs 07.09.2015 16:06:23 +0300 - build 4414

SelectDialogId = {29C03C36-9C50-4F78-AB99-F5DC1A9C67CD} --> Dlg.Id
Диалог установки выделения файлов (Add)

UnSelectDialogId = {34614DDB-2A22-4EA9-BD4A-2DC075643F1B} --> Dlg.Id
Диалог снятия выделения файлов (Subtract)

SUBSTDisconnectDriveError1Id = {FF18299E-1881-42FA-AF7E-AC05D99F269C} --> Dlg.Id
SUBSTDisconnectDriveError2Id = {43B0FFC2-70BE-4289-91E6-FE9A3D54311B} --> Dlg.Id
Диалоги ошибок удаления SUBST-дисков
Expand Down Expand Up @@ -296,7 +300,7 @@ drkns 14.08.2015 22:33:52 +0200 - build 4407

zg 31.07.2015 15:36:58 +0200 - build 4406

1. с форума: ищу файлы (маска любая), из найденных выбираю любой, находящийся не в текущей папке,
1. с форума: ищу файлы (маска любая), из найденных выбираю любой, находящийся не в текущей папке,
и жму на нём F4. Если в открывшемся редакторе нажать Ctrl-F10, то отобразятся панели.

svs 30.07.2015 00:03:25 +0300 - build 4405
Expand Down Expand Up @@ -543,7 +547,7 @@ zg 22.04.2015 21:26:13 +0200 - build 4353

zg 22.04.2015 14:23:46 +0200 - build 4352

1. уточнение 4337: фар реагирует на отжатия модификаторов.
1. уточнение 4337: фар реагирует на отжатия модификаторов.

drkns 15.04.2015 22:47:32 +0200 - build 4351

Expand Down
9 changes: 4 additions & 5 deletions far/macro.cpp
Expand Up @@ -903,8 +903,7 @@ void KeyMacro::RunStartMacro()

bool KeyMacro::AddMacro(const GUID& PluginId, const MacroAddMacro* Data)
{
FARMACROAREA Area = Data->Area==MACROAREA_COMMON ? MACROAREA_COMMON_INTERNAL : Data->Area;
if (Area < 0 || Area >= MACROAREA_LAST)
if (!(Data->Area >= 0 && (Data->Area < MACROAREA_LAST || Data->Area == MACROAREA_COMMON)))
return false;

string strKeyText;
Expand All @@ -916,7 +915,7 @@ bool KeyMacro::AddMacro(const GUID& PluginId, const MacroAddMacro* Data)
if (Data->Flags & KMFLAGS_NOSENDKEYSTOPLUGINS) Flags |= MFLAGS_NOSENDKEYSTOPLUGINS;

FarMacroValue values[] = {
(double)Area,
(double)Data->Area,
strKeyText,
GetMacroLanguage(Data->Flags),
Data->SequenceText,
Expand Down Expand Up @@ -5199,14 +5198,14 @@ intptr_t KeyMacro::AssignMacroDlgProc(Dialog* Dlg,intptr_t Msg,intptr_t Param1,v
if (LM_GetMacro(&Data,KMParam->Area,strKeyText,true))
{
// îáùèå ìàêðîñû ó÷èòûâàåì òîëüêî ïðè óäàëåíèè.
if (m_RecCode.empty() || Data.Area!=MACROAREA_COMMON_INTERNAL)
if (m_RecCode.empty() || Data.Area!=MACROAREA_COMMON)
{
string strBufKey=Data.Code;
InsertQuote(strBufKey);

bool SetChange = m_RecCode.empty();
LNGID MessageTemplate;
if (Data.Area==MACROAREA_COMMON_INTERNAL)
if (Data.Area==MACROAREA_COMMON)
{
MessageTemplate = SetChange? MMacroCommonDeleteKey : MMacroCommonReDefinedKey;
//"Îáùàÿ ìàêðîêëàâèøà '%1' áóäåò óäàëåíà : óæå îïðåäåëåíà."
Expand Down
1 change: 0 additions & 1 deletion far/plugin.hpp
Expand Up @@ -1191,7 +1191,6 @@ enum FARMACROAREA
MACROAREA_SHELLAUTOCOMPLETION = 15, // Autocompletion list in command line
MACROAREA_DIALOGAUTOCOMPLETION = 16, // Autocompletion list in dialogs
#ifdef FAR_USE_INTERNALS
MACROAREA_COMMON_INTERNAL,
MACROAREA_LAST,
MACROAREA_INVALID = -1,
#endif // END FAR_USE_INTERNALS
Expand Down
2 changes: 1 addition & 1 deletion far/vbuild.m4
@@ -1 +1 @@
m4_define(BUILD,4449)m4_dnl
m4_define(BUILD,4450)m4_dnl
4 changes: 2 additions & 2 deletions plugins/luamacro/_globalinfo.lua
@@ -1,7 +1,7 @@
function export.GetGlobalInfo()
return {
Version = { 1, 0, 0, 538 },
MinFarVersion = { 3, 0, 0, 4429 },
Version = { 1, 0, 0, 539 },
MinFarVersion = { 3, 0, 0, 4450 },
Guid = win.Uuid("4EBBEFC8-2084-4B7F-94C0-692CE136894D"),
Title = "LuaMacro",
Description = "Far macros in Lua",
Expand Down
6 changes: 5 additions & 1 deletion plugins/luamacro/changelog
@@ -1,4 +1,8 @@
shmuel 28.10.2015 13:23:40 +0200 - build 538
shmuel 28.10.2015 19:17:43 +0200 - build 539

1. Рефакторинг (синхронный с рефакторингом в Far build 4450).

shmuel 28.10.2015 13:23:40 +0200 - build 538

1. Изменение API: загрузочные функции 'Macro' и 'Event' теперь возвращают true в случае успеха,
а не число-идентификатор макроса/события, как было раньше.
Expand Down
2 changes: 1 addition & 1 deletion plugins/luamacro/luamacro.rc
@@ -1,6 +1,6 @@
#include <farversion.hpp>

#define PLUGIN_BUILD 538
#define PLUGIN_BUILD 539
#define PLUGIN_DESC "Lua Macros for Far Manager"
#define PLUGIN_NAME "LuaMacro"
#define PLUGIN_FILENAME "luamacro.dll"
Expand Down
41 changes: 27 additions & 14 deletions plugins/luamacro/utils.lua
Expand Up @@ -9,29 +9,42 @@ local MacroCallFar = far.MacroCallFar
local gmeta = { __index=_G }
local LastMessage = {}
--------------------------------------------------------------------------------
-- Äàííûé ñïèñîê äîëæåí â òî÷íîñòè ñîîòâåòñòâîâàòü enum FARMACROAREA, ò.å. òîò æå ñìûñë è ïîðÿäîê.
local TrueAreaNames = {
"Other", "Shell", "Viewer", "Editor", "Dialog", "Search", "Disks", "MainMenu", "Menu", "Help",
"Info", "QView", "Tree", "FindFolder", "UserMenu", "ShellAutoCompletion", "DialogAutoCompletion",
"Common",
[F.MACROAREA_OTHER] = "Other",
[F.MACROAREA_SHELL] = "Shell",
[F.MACROAREA_VIEWER] = "Viewer",
[F.MACROAREA_EDITOR] = "Editor",
[F.MACROAREA_DIALOG] = "Dialog",
[F.MACROAREA_SEARCH] = "Search",
[F.MACROAREA_DISKS] = "Disks",
[F.MACROAREA_MAINMENU] = "MainMenu",
[F.MACROAREA_MENU] = "Menu",
[F.MACROAREA_HELP] = "Help",
[F.MACROAREA_INFOPANEL] = "Info",
[F.MACROAREA_QVIEWPANEL] = "QView",
[F.MACROAREA_TREEPANEL] = "Tree",
[F.MACROAREA_FINDFOLDER] = "FindFolder",
[F.MACROAREA_USERMENU] = "UserMenu",
[F.MACROAREA_SHELLAUTOCOMPLETION] = "ShellAutoCompletion",
[F.MACROAREA_DIALOGAUTOCOMPLETION] = "DialogAutoCompletion",
[F.MACROAREA_COMMON] = "Common",
}

local AllAreaNames = {}
for i,v in ipairs(TrueAreaNames) do AllAreaNames[i]=v:lower() end
for i=1,#AllAreaNames do local str=AllAreaNames[i]; AllAreaNames[str]=i; end
for k,v in pairs(TrueAreaNames) do
local str = v:lower()
AllAreaNames[k] = str
AllAreaNames[str] = k
end

local SomeAreaNames = {
"other", "viewer", "editor", "dialog", "menu", "help", "dialogautocompletion",
"common" -- "common" äîëæåí èäòè ïîñëåäíèì
}

local function GetTrueAreaName(Mode) return TrueAreaNames[Mode+1] end
local function GetAreaName(Mode) return AllAreaNames[Mode+1] end

local function GetAreaCode(Area)
local code = AllAreaNames[Area:lower()]
return code and code-1
end
local function GetTrueAreaName(Mode) return TrueAreaNames[Mode] end
local function GetAreaName(Mode) return AllAreaNames[Mode] end
local function GetAreaCode(Area) return AllAreaNames[Area:lower()] end
--------------------------------------------------------------------------------

local MCODE_F_CHECKALL = 0x80C64
Expand Down Expand Up @@ -608,7 +621,7 @@ local function LoadMacros (unload, paths)
if Shared.panelsort then Shared.panelsort.DeleteSortModes() end

local AreaNames = allAreas and AllAreaNames or SomeAreaNames
for _,name in ipairs(AreaNames) do newAreas[name]={} end
for _,name in pairs(AreaNames) do newAreas[name]={} end
for _,name in ipairs(EventGroups) do Events[name]={} end
for k in pairs(package.loaded) do
if initial_modules[k]==nil and not package.nounload[k] then
Expand Down

0 comments on commit 5454317

Please sign in to comment.