View Issue Details

IDProjectCategoryView StatusLast Update
0003447Far ManagerPlugins Managerpublic2023-05-16 14:02
Reporterccaid Assigned To2useven10  
PrioritynormalSeverityminorReproducibilityalways
Status feedbackResolutionopen 
Platformx64OSWindowsOS Version10
Summary0003447: Снять или расширить ограничения события ExitFAR
Descriptionв существующем виде событие ExitFAR не гарантирует корректную работу в нем функций Far API, хотя по факту в частных случаях это и возможно.
одно из применений, которое нуждается в использовании Far API, — это перехват перезагрузки макросов с помощью события ExitFAR.
эту ситуацию желательно тем или иным способом урегулировать. варианты урегулирования и обсуждение ситуации приведены по ссылкам ниже.
Steps To Reproduceпримеры проблемы приведены по ссылкам ниже.
Additional Informationhttp://forum.farmanager.com/viewtopic.php?f=38&t=8125
http://forum.farmanager.com/viewtopic.php?p=144481#p144481
TagsNo tags attached.
Build6139

Activities

shmuel

2017-06-21 19:14

developer   bugnote:0015439

разведите эти события или научите как их развести внутри обработчика

ccaid
Вот на эту фразу я откликнулся: "поместите виш на мантис". Но ваша теперешняя формулировка не имеет почти ничего общего с оригиналом.

ccaid

2017-06-21 19:24

reporter   bugnote:0015440

здесь имеются два взаимоисключающих варианта. кроме того, в теме последовало обсуждение, несколько расширившее взгляд (мой) на происходящее. поэтому я не поленился спросить о формулировке.
поскольку ответ был уклончивый, я постарался сделать максимально общий вариант, который можно выкручивать в желаемую сторону.

shmuel

2017-06-21 19:44

developer   bugnote:0015441

Не, выкручивать ничего я не хочу. Ответ мой не был уклончивый - я просто не мог и предположить, что вы измените тему на что-то совсем другое.

ccaid

2017-06-21 20:01

reporter   bugnote:0015442

для вас ваша позиция самоочевидна. а я не пойму, что я должен писать. не было никакой темы, было много слов обсуждения.
хорошо, сейчас что мне надо сделать?

shmuel

2017-06-21 20:45

developer   bugnote:0015443

> хорошо, сейчас что мне надо сделать?

1. В той формулировке, как сейчас, это уже вопрос не к LuaMacro, а к Far. Возможно, тот патч, что предлагает 2useven10, это решает, по крайней мере с этим патчем у меня падения не было (пробовал раз 10 или 15). Мои полномочия на багтрекере не позволяют редактировать "Project".

2. Если для вас это ещё актуально, можете открыть новый тикет для LuaMacro, и в нём сделать тему "оригинальную", основанную на вашей фразе "разведите эти события или научите как их развести внутри обработчика".

ccaid

2017-06-21 21:01

reporter   bugnote:0015444

http://bugs.farmanager.com/view.php?id=3448

JohnDoe

2017-06-22 13:02

updater   bugnote:0015446

>Снять или расширить ограничения события ExitFAR
В текущей формулировке тикет остаётся разве что закрыть.

Между тем описанные (по ссылкам) падения вполне можно квалифицировать как баг фара.
Одно дело, когда функции АПИ не работают, достаточно документировать что они не доступны из обработчика этого события.
И другое дело, если при их вызове фар с некоторой вероятностью падает.

shmuel

2017-06-22 13:13

developer   bugnote:0015447

В текущей формулировке можно было бы всего лишь изменить "Project" на "Far Manager".
Дальнейший возможный сценарий: 2useven10 назначает этот тикет себе и коммитит свой патч.

2useven10

2023-05-12 10:45

developer   bugnote:0017423

Должно работать:
Event {
  description = "Save panel directories on Exit";
  group = "ExitFAR";
  action = function(reload_macros)
    if not reload_macros then
      local p = {A=panel.GetPanelDirectory(nil,1),P=panel.GetPanelDirectory(nil,0),L=APanel.Left}
      mf.msave("setup", "ExitFAR", p)
    end
  end
}

Macro {
  description = "Restore panel directories on Start";
  area="Shell"; key="auto"; flags="RunAfterFARStart";
  action=function()
    local p = mf.mload("setup", "ExitFAR")
    if p and p.A then panel.SetPanelDirectory(nil,1,p.A) end
    if p and p.P then panel.SetPanelDirectory(nil,0,p.P) end
    if p and APanel.Left ~= p.L then Keys("CtrlU") end
  end
}

2useven10

2023-05-16 14:02

developer   bugnote:0017424

build 6145 - один файл потерялся в 6139.

Issue History

Date Modified Username Field Change
2017-06-21 18:49 ccaid New Issue
2017-06-21 19:14 shmuel Note Added: 0015439
2017-06-21 19:24 ccaid Note Added: 0015440
2017-06-21 19:44 shmuel Note Added: 0015441
2017-06-21 20:01 ccaid Note Added: 0015442
2017-06-21 20:45 shmuel Note Added: 0015443
2017-06-21 21:01 ccaid Note Added: 0015444
2017-06-22 13:02 JohnDoe Note Added: 0015446
2017-06-22 13:13 shmuel Note Added: 0015447
2017-06-22 20:46 2useven10 Category LuaMacro / Macro Browser => _Common
2017-06-22 20:47 2useven10 Project Wishes.Plugins => Far Manager
2017-06-22 20:47 2useven10 Category _Common => Plugins Manager
2023-05-11 15:25 2useven10 Assigned To => 2useven10
2023-05-11 15:25 2useven10 Status new => assigned
2023-05-12 10:45 2useven10 Status assigned => feedback
2023-05-12 10:45 2useven10 Build => 6139
2023-05-12 10:45 2useven10 Note Added: 0017423
2023-05-16 14:02 2useven10 Note Added: 0017424