View Issue Details

IDProjectCategoryView StatusLast Update
0003313Far ManagerPlugins API.Panelpublic2020-06-05 09:24
Reporterpepak Assigned ToDrKnS  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0003313: FCTL_SETPANELDIRECTORY not working for certain types of paths
DescriptionPanelControl(PANEL_ACTIVE, FCTL_SETPANELDIRECTORY, ...) will fail if the panel is a standard FAR panel (not a plugin panel), all elements of FarPanelDirectory except Name are empty and Name contains valid paths starting with double backslash, e.g. \\.\pipe. The same path will get processed correctly with command-line cd \\.\pipe, but as far as I can tell, it is impossible to invoke from a plugin. It would be nice if FCTL_SETPANELDIRECTORY could do the same thing as CD, or if that is not possible, that an interface to CD be opened for plugin use.
TagsNo tags attached.
Build5572

Activities

pepak

2016-11-13 18:40

reporter   bugnote:0015011

Apparently, this isn't a bug in FAR per se. The observed behavior is caused by the plugin which doesn't respond to Info.OpenFrom = OPEN_SHORTCUT, which is used in this situation. However, I myself never realized this necessity and there are other plugins with the same issue - e.g. NetBox. For this reason, a special note should be made in the Encyclopedia for FCTL_SETPANELDIRECTORY.

JohnDoe

2017-12-01 16:16

updater   bugnote:0015881

pepak
I understand issue in summary, but not your above comment.

In summary you write about standard file panel (not plugin).
But your further comment seems unrelated.

pepak

2017-12-01 16:44

reporter   bugnote:0015883

That comment was apparently a mistake, intended for another bugreport.

JohnDoe

2017-12-01 16:53

updater   bugnote:0015885

..valid paths starting with double backslash..

pepak
As I can see \\ is ok in such cases:
lua:=panel.SetPanelDirectory(-1,nil,[[\\.\C:\]])
lua:=panel.SetPanelDirectory(-1,nil,[[\\?\C:\]])
lua:=panel.SetPanelDirectory(-1,nil,[[\\COMPUTER-B02E14\C$]])

But not ok in this:
lua:=panel.SetPanelDirectory(-1,nil,[[\\.\pipe]])

DrKnS

2020-03-19 10:51

administrator   bugnote:0016750

\\.\pipe particularly doesn't work because it's not a real directory and one of pre-checks (basically GetFileAttributes) fails. It's not really needed there and can be skipped, however, I'd like to clarify first whether "will fail if [...] Name contains valid paths starting with double backslash" is true or it's an exaggeration and the only problematic path is "\\.\pipe" (as in JohnDoe's comment).

DrKnS

2020-03-22 10:58

administrator   bugnote:0016753

5572 (experimental).

Issue History

Date Modified Username Field Change
2016-09-27 15:40 pepak New Issue
2016-11-13 18:40 pepak Note Added: 0015011
2017-12-01 16:16 JohnDoe Note Added: 0015881
2017-12-01 16:44 pepak Note Added: 0015883
2017-12-01 16:53 JohnDoe Note Added: 0015885
2020-03-19 10:51 DrKnS Note Added: 0016750
2020-03-22 10:58 DrKnS Assigned To => DrKnS
2020-03-22 10:58 DrKnS Status new => feedback
2020-03-22 10:58 DrKnS Note Added: 0016753
2020-06-05 09:24 DrKnS Status feedback => closed
2020-06-05 09:24 DrKnS Resolution open => fixed
2020-06-05 09:24 DrKnS Fixed in Version => 3.0
2020-06-05 09:24 DrKnS Build => 5572