<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>To a very large extent, Win32 accepts both / and \ equally as path delimiters.<BR>
CreateFile, DeleteFile, CreateDirectory, MoveFile, CopyFile, FindFirstFile, GetFileAttributes, the C runtime wrappers fopen, unlink/remove, stat, etc., those all work either way, or with a mix.<BR>
"Shell" functions like shlwapi.dll, commdlg32.dll, tend not to.<BR>
 <BR>
In building NT386GNU, I run into places where cm3 is picking apart paths.<BR>
For whatever reason, it is being given paths with a mix of forward and backward slashes.<BR>
I find these paths ugly, but they work ok.<BR>
 <BR>
I've been able to easily progress by changing m3-libs/libm3/src/os/WIN32/PathnameWin32.m3 to treat forward and backslashes the same.<BR>
I have not yet rebuilt the normal NT386 target with this change.<BR>
 <BR>
An ok change?<BR>
 <BR>
Or go and fix NT386GNU a) to be consistent, b) use backward slashes, c) translate at some place.<BR>
 <BR>
 <BR>
?<BR>
 <BR>
 <BR>
<BR>C:\dev2\cm3.2\m3-libs\libm3>cvs diff<BR>Index: src/os/WIN32/PathnameWin32.m3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-libs/libm3/src/os/WIN32/PathnameWin32.m3,v<BR>retrieving revision 1.3<BR>diff -r1.3 PathnameWin32.m3<BR>13c13<BR><   DirSepChar = '\\'; DirSepText = "\\";<BR>---<BR>>   DirSepText = "\\";<BR>17c17<BR>< CONST Legal = SET OF CHAR {'\001' .. '\177'} - SET OF CHAR {DirSepChar, ':'};<BR>---<BR>> CONST Legal = SET OF CHAR {'\001' .. '\177'} - SET OF CHAR {'\\', '/', ':', '?<BR>', '*'};<BR>21a22,26<BR>> PROCEDURE IsDirSepChar(ch: CHAR): BOOLEAN =<BR>>   BEGIN<BR>>     RETURN (ch = '\\' OR ch = '/');<BR>>   END IsDirSepChar;<BR>><BR>53,54c58,59<BR><           IF Text.GetChar(t, 0) = DirSepChar AND<BR><              Text.GetChar(t, nRoot - 1) # DirSepChar THEN<BR>---<BR>>           IF IsDirSepChar(Text.GetChar(t, 0)) AND<BR>>              NOT IsDirSepChar(Text.GetChar(t, nRoot - 1)) THEN<BR>125c130<BR><             IF c # DirSepChar AND c # DriveSepChar THEN<BR>---<BR>>             IF NOT IsDirSepChar(c) AND c # DriveSepChar THEN<BR>173,174c178,179<BR><         IF c = DirSepChar THEN<BR><           IF n = 1 OR Text.GetChar(t, 1) # DirSepChar THEN RETURN 1 END;<BR>---<BR>>         IF IsDirSepChar(c) THEN<BR>>           IF n = 1 OR NOT IsDirSepChar(Text.GetChar(t, 1)) THEN RETURN 1 END;<BR>178c183<BR><                 IF cc = DirSepChar THEN<BR>---<BR>>                 IF IsDirSepChar(cc) THEN<BR>196c201<BR><           IF n > 2 AND Text.GetChar(t, 2) = DirSepChar THEN RETURN 3 END;<BR>---<BR>>           IF n > 2 AND IsDirSepChar(Text.GetChar(t, 2)) THEN RETURN 3 END;<BR>218c223<BR><           IF c = DirSepChar THEN<BR>---<BR>>           IF IsDirSepChar(c) THEN<BR>253c258<BR><         IF ch = DirSepChar OR ch = DriveSepChar THEN<BR>---<BR>>         IF IsDirSepChar(ch) OR ch = DriveSepChar THEN<BR><BR>
 - Jay<BR><BR><br /><hr />Put your friends on the big screen with Windows Vista® + Windows Live™. <a href='http://www.microsoft.com/windows/shop/specialoffers.mspx?ocid=TXT_TAGLM_CPC_MediaCtr_bigscreen_012008' target='_new'>Start now!</a></body>
</html>