On Thu, 31 Jul 2008, Chris Young wrote:
On Thu, 31 Jul 2008 18:33:31 +0100 (BST), John-Mark Bell wrote:
> All paths passed up from the core will be in Unix format (as it basically
> just strips the scheme + authority off the front). Thus, fetch_filetype()
> should be expecting a Unix path.
So it does (I just copied the debug code for this routine without
looking at it). I can fix that at my end then, but that doesn't help
if the path is wrong when fetching files.
Actually, what I wrote above isn't entirely accurate. The core simply
passes around whatever you pass it, adding or stripping "file://" as
appropriate (Yes, two slashes -- the third is assumed to be the start of
the path segment, as per the URI spec).
(I really, really, don't want to enable UNIX path compatibility,
I'd
rather work out a way to use native paths)
On RISC OS, our runtime library performs this conversion transparently.
Your alternative would be to implement a platform-specific handler for
file: URLs. Then you can do whatever you like.
See content/fetchers/fetch_*.c for existing fetch handlers. I think
there's also one in beos/, as that has some slightly different
requirements, too.
Overall, this seems far cleaner that changing NetSurf's core + the
underlying fetch library (cURL) to gain support for specific platforms).
J.