Re-invent FS.VFS.Open()
Handle the path traversal and symbolic links in VFS.Open(). For each
path component, query the file type (directory, regular file, or
symbolic link) from the FS driver and act accordingly.
diff --git a/src/filo-fs-vfs.ads b/src/filo-fs-vfs.ads
index 9e47f6f..5ae086c 100644
--- a/src/filo-fs-vfs.ads
+++ b/src/filo-fs-vfs.ads
@@ -27,11 +27,13 @@
with procedure Open
(State : in out T;
File_Len : out File_Length;
- File_Path : in String;
+ File_Type : out FS.File_Type;
+ File_Name : in String;
+ In_Root : in Boolean;
Success : out Boolean)
is <>
with
- Pre => Is_Mounted (State) and not Is_Open (State),
+ Pre => Is_Mounted (State),
Post => Success = Is_Open (State);
with procedure Close (State : in out T)