[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Mon Feb 18 16:16:44 CET 2008
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 08/02/18 16:16:44
Modified files:
cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3
cm3/m3-sys/cm3/src/: M3Path.m3
Log message:
At least for purposes of determining if Join(a,b) is b or a + slash + b,
treat any path that starts with a forward or backward slash, or
contains a colon as the second character, as absolute, on all platforms.
It is ASSUMED that backslashes and colons are never used in paths
on non-Windows systems, or at least that this interpretation is ok.
This will contribute some ease of use. NT386 and NT386GNU need not
be so picky about path forms. Cygwin and Win32 already generally
accept either form in many contexts, sometimes with slightly different
meaning, sometimes not. e.g. the path /foo in Win32 is at the root
of the "current drive, but is just "at the root" in Cygwin.
In either case, for purposes of Join, it CAN be considered absolute
though this does change the meaning of some constructs.
e.g. if current drive is C:, is Join(D:, /foo) => D:/foo or just /foo,
which would then become C:/foo?
What is more interesting and useful is for NT386GNU to treat c:\foo
as absolute, as this change also achieves, so that Join(c:\foo, d:\bar)
is the valid path d:\bar and not the invalid c:\foo/d:\bar.
Again note that Cygwin appears to accept all of c:\foo, c:/foo, /foo,
and \foo style paths, and that Win32 definitely accepts them, albeit
maybe with different meaning. (//foo and \\foo also)
More information about the M3commit
mailing list