summaryrefslogtreecommitdiff
path: root/vfs/UVFSCore.pas
diff options
context:
space:
mode:
Diffstat (limited to 'vfs/UVFSCore.pas')
-rw-r--r--vfs/UVFSCore.pas31
1 files changed, 23 insertions, 8 deletions
diff --git a/vfs/UVFSCore.pas b/vfs/UVFSCore.pas
index 475730c..a0ada8f 100644
--- a/vfs/UVFSCore.pas
+++ b/vfs/UVFSCore.pas
@@ -63,11 +63,13 @@ type
FVFSCopyIn: TVFSCopyIn;
FVFSIsOnSameFS: TVFSIsOnSameFS;
FVFSTwoSameFiles: TVFSTwoSameFiles;
- FVFSGetExts: TVFSGetExts;
- FVFSGetServices: TVFSGetServices;
+ FVFSGetArchiveExts: TVFSGetArchiveExts;
+ FVFSGetNetworkServices: TVFSGetNetworkServices;
FVFSGetPasswordRequired: TVFSGetPasswordRequired;
FVFSSetCallbacks: TVFSSetCallbacks;
FVFSResetPassword: TVFSResetPassword;
+ function GetHandlesArchives: boolean;
+ function GetHandlesNetwork: boolean;
public
ModuleHandle: Pointer;
FullPath: string; // module path
@@ -80,6 +82,9 @@ type
function ModuleName: string;
function ModuleAbout: string;
function ModuleCopyright: string;
+ published
+ property HandlesArchives: boolean read GetHandlesArchives;
+ property HandlesNetwork: boolean read GetHandlesNetwork;
end;
@@ -231,8 +236,8 @@ begin
@FVFSSetBlockSize := dlsym(ModuleHandle, 'VFSSetBlockSize');
@FVFSIsOnSameFS := dlsym(ModuleHandle, 'VFSIsOnSameFS');
@FVFSTwoSameFiles := dlsym(ModuleHandle, 'VFSTwoSameFiles');
- @FVFSGetExts := dlsym(ModuleHandle, 'VFSGetExts');
- @FVFSGetServices := dlsym(ModuleHandle, 'VFSGetServices');
+ @FVFSGetArchiveExts := dlsym(ModuleHandle, 'VFSGetArchiveExts');
+ @FVFSGetNetworkServices := dlsym(ModuleHandle, 'VFSGetNetworkServices');
@FVFSGetPasswordRequired := dlsym(ModuleHandle, 'VFSGetPasswordRequired');
@FVFSSetCallbacks := dlsym(ModuleHandle, 'VFSSetCallbacks');
@FVFSResetPassword := dlsym(ModuleHandle, 'VFSResetPassword');
@@ -240,15 +245,15 @@ begin
// Initialize the extensions list
SetLength(Extensions, 0);
SetLength(Services, 0);
- if @FVFSGetExts <> nil then begin
- s := FVFSGetExts;
+ if @FVFSGetArchiveExts <> nil then begin
+ s := FVFSGetArchiveExts;
if s <> nil then begin
ParseString(String(s), ';', Extensions);
real_libc_free(s);
end;
end;
- if @FVFSGetServices <> nil then begin
- s := FVFSGetServices;
+ if @FVFSGetNetworkServices <> nil then begin
+ s := FVFSGetNetworkServices;
if s <> nil then begin
ParseString(String(s), ';', Services);
real_libc_free(s);
@@ -321,6 +326,16 @@ begin
end else Result := '';
end;
+function TVFSPlugin.GetHandlesArchives: boolean;
+begin
+ Result := Length(Extensions) > 0;
+end;
+
+function TVFSPlugin.GetHandlesNetwork: boolean;
+begin
+ Result := Length(Services) > 0;
+end;
+
(********************************************************************************************************************************)
(********************************************************************************************************************************)
constructor TVFSEngine.Create(SourcePlugin: TVFSPlugin);