Quote:
One of the fundamental points with the design of filing systems on RiscOS since the early Acorn days and still carried through until today is that file/directory pathnames can always be absolute or relative. This has always applied to both the command line and to properly written desktop applications, and applies to real computers or virtual ones.
Sorry, but you are mistaken. Several components in RISC OS use absolute path names e.g. PinBoard. This is for a very good reason, relative path names won't work.
Quote:
VirtualRPC-SE is your system. You have the right to build it how you like; but the !AccessSet application (like every other correctly written application) is based on those early Acorn principles and the AccessSet file does work with properly created relative directory paths (because the *share command will deal correctly with absolute or relative pathnames).
I am responsible for the RISC OS build in all the VirtualRPC products and spent a great deal if time optimising and tweaking the various builds to get the best performance for the end user. You will see that the VirtualRPC !Boot sequences have lots of updated components and later modules compared with a default !Boot for the same version of RISC OS. As such I am pretty familair with how the !Boot sequence needs to operate and also with potential problems caused by trying to use relative pathnames in inappropriate places.
Quote:
Relative paths beginning with $ are always taken from the root directory of the current disk (no matter what the current directory might be).
Which is exactly the problem - and is why AccessSet uses absolute paths. Perhaps I need to provide an example to show you the problem:
1. Lets us suppose you have a MyDocs folder on HostFS::HardDisc4
2. You set up AccessSet so this is shared.
3. You then need to install an application that requires ADFS
4. So you set the number of IDEDiscs to 1
5. Now you run the !BootADFS app on the new IDEDisc to move your
boot sequence from HostFS to ADFS.
6. You reboot - because AccessSet uses absolute paths your shared folder
(MyDocs) on HostFS is still correctly shared.
7. If you had tried to use relative paths ShareFS would now be trying to
share folder called MyDocs on the ADFS drive - which doesn't exist.
To conclude: Relative paths only work if all the files you are dealing with are on the same device on the same filing system. They fail completly with multiple devices on multiple filing systems. That's why any part of RISC OS (e.g. PinBoard) that might have to cope with multiple devices on multiple filing systems uses absolute paths. And AccessSet does the same.
i.e. it conforms correctly to the standard specified by Acorn.