> so perhaps ntpath.join('c:/x', 'd:/y', 'c:z') should return 'c:/x\\z', not 'c:/z'.
'c:z' is consistent with what .NET's System.IO.Path.Combine does:
via http://ironpython.net/try/ :
import System.IO.Path; print System.IO.Path.Combine('c:/x', 'd:/y', 'c:z')
returns 'c:z'
> Could anyone please check it? Create directory x/z on drive c: and directory y on drive d:, then execute following commands:
> cd c:/x
> cd d:/y
> cd c:z
>
> What is resulting current working directory?
c:\>cd c:/x
c:\x>cd e:\y
c:\x>cd c:z
Het systeem kan het opgegeven pad niet vinden. # file not found, in Dutch
c:\x>cd c:\z
Yes, there is a seperate current directory for each drive, but cd does not switch drives. (cd e:\f does not mean you actually go to e:\f - it just changes the current directory on the e:-drive). I don't think those semantics are sensible for joining paths...