<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div>Why would native NT386 know anything at all about Cygwin.  I say just avoid split personalities like the plague.  Similarly, I'd be happy for NT386GNU (i.e., Cygwin?) to simply behave like a POSIX build (modulo native threads perhaps).</div></span></span></span></span></span></span></span></span></div></span> </div><br><div><div>On Apr 21, 2008, at 7:15 PM, Jay wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div class="hmmessage" style="font-size: 10pt; font-family: Tahoma; ">Maybe this is dubious.<br><br>The question is, like, should native NT386 cm3 accept /cygdrive/c/foo and translate to c:\foo?<br>Or trickier, /usr/bin/foo and translate to c:\cygwin\usr\bin\foo?<br>And vice versa, should NT386GNU accept c:\foo?<br><br>The translation is not simple in general.<br>/ maps to the Cygwin install root.<br>There can be symlinks.<br>But many common cases can be handled with little, simple code.<br>It's already in.<br><br>Ultimately the way to do this correctly is to link to cygwin1.dll, which is only done sometimes,<br> and which probably license-undesirable when not done.<br><br>As well, a path like /foo is actually ambiguous.<br>It is a valid native Win32 path, equivalent to \foo.<br>Or it could be Cygwin path requivalent to c:\cygwin\foo.<br><br>While it is nice to keep cm3 simple, it is also nice to have a more uniform interface<br>across hosts, I think. Maybe.<br><br>To some extent a user can do this himself.<br>That is, NTFS junctions and/or Cygwin symblinks can cause their to be identical paths<br>with identical meanings:<br>e.g. for me, symlink /msdev => c:\msdev, /cm3 => c:\cm3 /dev => c:\dev2<br><br>In some places Cygwin open et. al. accept Win32 paths, but lately taking advantage of<br>that issues a warning. In some places, I think, it isn't sufficient to have Cygwin handle it.<br><br>The harder question then is, if I feed Cygwin paths of a particular form, should it<br>try to report back paths in the same form?<br><br>I put some code in M3Path.m3 "like this", but it may not be advisable.<br><br>I also had an NTFS junction on my system so Win32 /cygdrive/c => c:\, but this causes<br>a circularity in the file system, which I'd rather not have.<br><br>As well, there are at least three or four Posix runtimes for Windows, and they each map<br>differently.<br><br>UWin I think uses /c <=> c:\.<br>Cygwin /cygdrive <=> c:\<br>Interix/ServicesForUnix/SUA I think something via /dev.<br>MinGWin also has a runtime that I think uses the UWin mapping, but this runtime is only<br>meant for sh/gcc to use, not user apps.<br><br>Having special code that only knows the Cygwin convention is questionable.<br> <br>I was often setting up some environment variables one way or the other, and then<br>running one cm3 or the other, without thinking about which form the variables were in.<br>Indeed, it might be nice to set<span class="Apple-converted-space"> </span><font face="">CM3_ROOT</font><span class="Apple-converted-space"> </span>and<span class="Apple-converted-space"> </span><font face="">CM3_INSTALL</font><span class="Apple-converted-space"> </span>"once and for all",<br>while still switching between different forms of cm3.exe?<br>Though granted,<span class="Apple-converted-space"> </span><font face="">CM3_INSTALL</font><span class="Apple-converted-space"> </span><font face="">cm3.exe</font><span class="Apple-converted-space"> </span>can usually figure out from its own path, and<br><font face="">CM3_ROOT</font><span class="Apple-converted-space"> </span>could usually be figured out by looking at the CVS directories in the current<br>working directory, not always, but often. Basically, instead of setting these varibles<br>one way or the other, I'd like to set them always one way, or even not at all.<br><br><br>Hm, in fact, I think cm3 could figure out all overrides itself?<br>You know, if there is a shipped package store, it can use that to determine the source <=> pkg mapping.<br>And it can figure out CM3_ROOT by looking at the current directory and on up until the CVS/Root<br>changes?<br> <br>As well, you know, the source <=> pkg mapping could be a simple generated checked in file.<br>You know, like the PKGS file, but stripped down to only what is needed?<br> <br>Maybe just remove the code I put in and forget the whole thing.<br>Maybe most people only ever stay in one of the worlds and "translation" isn't important?<br>Just me stuck with providing support for both and therefore living with both more?<br> <br> <br> - Jay<br></div></span></blockquote></div><br></body></html>