Andrey Repin writes:
>Brian Inglis writes:
>> cygstart file://C:/ works - read the MS DN and MS KB articles on file URIs
>> and shlwapi
> Which isn't quite right. "file:" is a protocol, "//" is the foreign host
mark, "[.]/" is "current host's filesystem root".
> So, I guess, the CORRECT solution (or, rather, workaround) would be an
explicit "." in host name.
> cygstart "file://./C:/"
> Works here. Please try it yourself.

MS approach makes some sense, as the RFCs e.g. 3986 define what you call the
the "host" as the namespace authority. In Unix systems, you have only one
unified local namespace (even though the mounted filesystems can have
radically different namespace rules e.g. fat, ufs, ext?, and the RFCs state
the authority may be delegated, so the rules can change along the path),
whereas on Windows, each device represents (possibly virtual e.g. subst)
separate filesystem namespaces. 

Where MS approach makes no sense, is that . is a (MS) kludge which works,
but other local synonyms: null/nothing, localhost, 127.0.0.1, [::1] do not,
whereas $BROWSER file://{,.,localhost,127.0.0.1,::1}/C{:,\|} displays
identical contents, differing only in whether a : or | follows the drive
letter in the address for each tab. 

I dealt with a Windows product where file: (but not ftp, http, or https) had
to have an initial cap File: to work. The vendor accepted a bug report but
made it a doc issue rather than doing a non-compliance fix. The company
and/or products were traded annually  like an end of career player! 


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to