View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001864 | Far Manager | Macro | public | 2011-08-25 16:01 | 2011-12-23 11:02 |
Reporter | Maximus | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0001864: Падение отладочной версии при выполнении записанного макроса | ||||
Description | при вызове Callback - фар валится | ||||
Tags | No tags attached. | ||||
Build | 2181 | ||||
|
Macro.diff (1,847 bytes)
Index: macro.cpp =================================================================== --- macro.cpp (revision 6621) +++ macro.cpp (working copy) @@ -836,28 +836,31 @@ if (Pos < MacroLIBCount) { - MacroLIB[Pos].Key=MacroKey; + MacroRecord Macro = {0}; + Macro.Key=MacroKey; if (RecBufferSize > 0 && !RecSrc) RecBuffer[RecBufferSize++]=MCODE_OP_ENDKEYS; if (RecBufferSize > 1) - MacroLIB[Pos].Buffer=RecBuffer; + Macro.Buffer=RecBuffer; else if (RecBuffer && RecBufferSize > 0) - MacroLIB[Pos].Buffer=reinterpret_cast<DWORD*>((DWORD_PTR)(*RecBuffer)); + Macro.Buffer=reinterpret_cast<DWORD*>((DWORD_PTR)(*RecBuffer)); else if (!RecBufferSize) - MacroLIB[Pos].Buffer=nullptr; + Macro.Buffer=nullptr; - MacroLIB[Pos].BufferSize=RecBufferSize; - MacroLIB[Pos].Src=RecSrc?RecSrc:MkTextSequence(MacroLIB[Pos].Buffer,MacroLIB[Pos].BufferSize); - MacroLIB[Pos].Description=nullptr; + Macro.BufferSize=RecBufferSize; + Macro.Src=RecSrc?RecSrc:MkTextSequence(Macro.Buffer,Macro.BufferSize); + Macro.Description=nullptr; // ���� ������ ������ - ������������� StartMode, // ���� ������ �� common ������ �� ������, � ������� ��� ����� ������. - if (!MacroLIB[Pos].BufferSize||!MacroLIB[Pos].Src) - StartMode=MacroLIB[Pos].Flags&MFLAGS_MODEMASK; + if (!Macro.BufferSize||!Macro.Src) + StartMode=Macro.Flags&MFLAGS_MODEMASK; - MacroLIB[Pos].Flags=Flags|(StartMode&MFLAGS_MODEMASK)|MFLAGS_NEEDSAVEMACRO|(Recording==MACROMODE_RECORDING_COMMON?0:MFLAGS_NOSENDKEYSTOPLUGINS); + Macro.Flags=Flags|(StartMode&MFLAGS_MODEMASK)|MFLAGS_NEEDSAVEMACRO|(Recording==MACROMODE_RECORDING_COMMON?0:MFLAGS_NOSENDKEYSTOPLUGINS); + + MacroLIB[Pos]=Macro; } } |
|
Если уж хочется "Guid=FarGuid", то и в KeyMacro::ReadMacros он не помешает. |
|
build 2174 оно? |
|
Нет. В смысле, заявленную проблему 2174 решает. но: > Если уж хочется "Guid=FarGuid", то и в KeyMacro::ReadMacros он не помешает. т.е., как я вижу, ReadMacros _явно_ CurMacro.Guid не заполняет. Он, конечно, только из нулей состоит, но некрасиво? |
|
Хмм... "CurMacro.Guid=FarGuid;" говоришь. Хмм... Правильно я понимаю, что все то, что ФАР считал из... реестра/файла/базы/etc., всему присваивать FarGuid? Может здесь вот как: 1. если поля Guid нету, тогда уж и FarGuid. 2. если есть - то... то что есть. Тогда получается: 1. ввели макрос с клавиатуры - FarGuid 2. сделали Add без гуида - FarGuid 3. сделали Add с {0..0} - FarGuid 4. остальное как есть. |
|
build 2181 |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-08-25 16:01 | Maximus | New Issue | |
2011-08-25 16:01 | Maximus | File Added: Macro.diff | |
2011-08-25 22:49 | Maximus | Note Added: 0007536 | |
2011-08-28 12:28 | vskirdin | Note Added: 0007560 | |
2011-08-28 13:14 | Maximus | Note Added: 0007563 | |
2011-08-29 10:34 | vskirdin | Note Added: 0007564 | |
2011-08-29 12:48 | vskirdin | Note Added: 0007566 | |
2011-08-29 12:48 | vskirdin | Assigned To | => vskirdin |
2011-08-29 12:48 | vskirdin | Status | new => feedback |
2011-12-23 11:02 | alexy | Build | => 2181 |
2011-12-23 11:02 | alexy | Status | feedback => closed |
2011-12-23 11:02 | alexy | Resolution | open => fixed |
2011-12-23 11:02 | alexy | Fixed in Version | => 3.0 |