At the end of the day, its the root slash at the head of a path that
uses a drive specifier
at file open is what's causing grief for windows.
When 3rd party java applications (eg jaxe, xerlin) are
reading the xml files on windows, they are expecting to encounter a
doctype line like so
a) <!DOCTYPE Activity SYSTEM "file:///c:/some%20Path/MyActivity.dtd" >
or so
b) <!DOCTYPE Activity SYSTEM "c:/some%20Path/MyActivity.dtd" >
Currently to accomplish this in fox on windows we need to always
specify the file scheme,
and supply one less slash (which then breaks on the other systems),
as
<!DOCTYPE Activity SYSTEM "file://c:/some%20Path/MyActivity.dtd" >
For instances where relative paths (like
"../../myArchive/MyActivity.dtd") or local files are sufficient,
then life is the same and there is no problem.
My fix is intended to address the need in the specific cases of both
a) & b) above.
This is all separate from the nasty windows habit of permitting
spaces within a file name. For this latter issue when specifying
files to fox either as the
file to open or when embedded in the document as say an external dtd
reference
in a <!doctype> element, my application code has been
explicitly percent-encoding
any spaces (or '#@?' characters) before fox sees them,
so they will not be potentially interpreted as part of the uri
syntax.
I'm unclear as to how/if FoX should handle spaces and special
characters differently
on windows, as this explicit encoding step has been working well for
my application code
here to date ...
I've been toying with the idea of a windows compile-time flag for a
variety of issues,
so yes, perhaps it will be useful to introduce one. Referring to
<http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/fortran/win/compiler_f/bldaps_for/common/bldaps_use_presym.htm>
Intel fortran always predefines the symbol "_WIN32"
(this is true even on 64 bit systems, which confusingly also always
have the "_WIN32" symbol defined,
but are differentiated by the addition of another symbol,
"_WIN64").
So "_WIN32" would be a good candidate.