[M3devel] paths..

Jay jayk123 at hotmail.com
Sat Feb 23 12:59:46 CET 2008


I could be wrong about many things here:
 
Cygwin fopen and I presume open accepts all of:
  c:\foo, c:/foo, /foo, \foo
 
/foo and \foo probably have a different meaning between Cygwin and Win32.
In Win32, /foo and \foo are, well, \foo, on the current drive.
In Cygwin, /foo is probably /foo at the Cygwin root.
I'd kind of like to be wrong here, about \foo having different meanings between them, since it a common form for me.
 
Cygwin does not accept c:foo.
In Win32 c:foo is foo in the current working directory of the C: drive.
I don't think c:foo is used often, but it does have a meaning.
 
Now, as well, cm3 has its own Path module, M3Path, but I realized tonight it also uses libm3's Pathname module a fair amount. In particular, I was having errors "shipping".
 
This throws a big monkey wrench into where I was going.
So now, after a bunch of going back and forth on various uncommited changes, I have now switched (and commited) NT386GNU to use PathnameWin32.m3. To some extent, this strikes at the core of "what is Posix" and "ruins" NT386GNU's differentiation from "NT386MINGNU". However, remember that Cygwin does appear to accept Win32 paths. So, again, if Cygwin accepts Win32 paths, is it Posix? (Given that Win32 accepts /foo, is it Posix?) As well, this target still uses cygwin1.dll for its all its odd behaviors. It still uses open/read/write (again, remember that msvcrt.dll DOES expose these SAME functions..I still contend that Win32 is close enough to Posix to satisfy almost everyone..and then X Windows can be dealt with separately maybe, or Trestle/Win32 fixed).
 
I have some more testing to do but I think this switch will fly, and various other options can go away.
And I can undo the small amount I had commited.
I think I'll just send my m3path.m3 diff around and then delete it.
 
I ended up with a set based approach where host and target have a set of dir separaters, volume separaters, and separators (union of previous two). These are TINY sets, containing a maximum of three characters each, and '/' is always a member of two of them. So a set is kind of overkill. But it works out pretty ok.
 
 - Jay
_________________________________________________________________
Need to know the score, the latest news, or you need your Hotmail®-get your "fix".
http://www.msnmobilefix.com/Default.aspx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080223/bba2f29d/attachment-0002.html>


More information about the M3devel mailing list