I wanted to report a minor bug with TC 7.55a:
WFX plugins can provide file download functionality by implementing
[face=courier]int __stdcall FsGetFile(char* RemoteName, char* LocalName, int CopyFlags, RemoteInfoStruct* ri);[/face]
If [face=courier]FsGetFile[/face] returns [face=courier]FS_FILE_OK[/face] after modifying the contents of its [face=courier]RemoteName[/face] parameter, TC may misbehave or encounter an exception.
Steps to reproduce:
- In your [face=courier]FsGetFile[/face] implementation, change [face=courier]RemoteName[/face]'s contents (in the scenarios below I replaced all backslashes with slashes).
- Return [face=courier]FS_FILE_OK[/face].
- In TC, enter a directory provided by the plugin.
Manifestation #1: Edit
- Open the editor (F4) on a file provided by the plugin
Observed:
Code: Select all
---------------------------
Total Commander 7.55a
---------------------------
Access violation at address 00528AC4. Write of address 00000000.
Access violation at address 00528AC4. Write of address 00000000
Windows XP SP3 5.1 (Build 2600)
Please report this error to the Author, with a description
of what you were doing when this error occurred!
Windows exception: C0000005
Stack trace:
00528AC4
6BD90B 673F5F 67457B 5F761C 67DF26 544F3F
419294 414560 4431E1 4465CF 4447B5 445C6F
4431E1 4447B5 445132 >414560 4446F3 414560
419C2C 419CC4 6C0F31
Raw:
76005A 6BD90B 6BDCBD 6BDDB7 673F5F 6BD90B
6BDCBD 6BDDB7 673F5F 6B61CF 40208E 402212
402235 6731B3 67396C 4446F3 414560 40208E
4023B3 4023DB 4026A4 4036AD 403796 432390
6BD90B 646E2B 646E5B 40208E 402212 402235
6BDC75 6BDAD0 6BD861 6BD861 67A54B 6BDCBD
63DA96 445401 4330EF 6BD861 6BA127 6BD861
6BA127 6BA127 6BDCBD 6BDDB7 6BA393 6BDCBD
6BDDB7 6BA393 6BA205 6BA393 6BA205 6BA198
6BA835 6BA844 6BA835 6BA835 6BA835 68A396
- Open quick view (Ctrl+Q) on a file provided by the plugin
Observed: Instead of the file contents, only a question mark ("?") is displayed in the quick view panel.
Manifestation #3: Browsing Search Results
- On a path provided by the plugin, run a file search that finds at least one file.
- Within the search dialog, in the bottom pane listing the found files, invoke Lister (F3 or "View" button).
Observed: Instead of showing Lister, TC displays an empty message box with a warning icon and the caption "File not found!".
The following instances of [face=courier]FsGetFile[/face] seem to work even when the plugin clobbers [face=courier]RemoteName[/face]:
- Text-enabled searches, when FsGetFile is invoked for each file (although the results can't be viewed in Lister due to #3)
- Opening Lister outside of the search dialog
- Copying files
EDIT: Updated for 7.55a
Kind regards,
--
Matthias