<html><body bgcolor="#FFFFFF"><div>(including m3devel this time)</div><div><br></div><div><span class="Apple-style-span" style="font-size: 15px; -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><span>I believe this goes back to CP/M compatibility.</span><br><span></span><br><span>I wish the file open dialogs accepted forward slashes. :(</span><br><span></span><br><span>I will change cm3 to write back into quake state the canonicalized forms.</span><br><span></span><br><span>I believe I already changed Pathname on Windows to accept either slash.</span><br><span></span><br><span>I need to check if equality uses decomposed elements.</span><br><span></span><br><span>Lots of folks just use strings and skip the abstraction, such as cm3. My personal programming often uses a small library over strings -- GetLastPathElement, RemoveLastElement, JoinPath, EnsureTrailingPathSeparator, ...</span><br><span></span><br><span>IMHO you might as well also have posix allow backward slashes as separators, but that was rejected here.</span><br><span></span><br><span>To wit I believe cygwin now accepts colons and backward slashes in paths, as non-separators. Interix also one or the other or both. Interix encodes them by oring in 0xFF00 (what happens with Samba to ext3??)</span><br><span></span><br><span>There are other issues such as case sensivity not being an OS-wide thing but per volume or directory (NTFS has mount points, directories can lead to volumes, with different filesystems) as well as just what the case mapping tables are (written to NTFS volume at time of format, presumably can vary).</span><br><span></span><br><span>The Mac historically used colon as separator and allowed forward slash as non separator. Presumably hidden through some encoding/decoding at the posix layer?</span></span><br><br> - Jay (phone<span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.231373); -webkit-composition-frame-color: rgba(77, 128, 180, 0.231373); ">)</span></div><div><br>On Aug 28, 2009, at 4:26 AM, Olaf Wagner <<a href="mailto:wagner@elegosoft.com">wagner@elegosoft.com</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div><span>Quoting Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>>:</span><br><span></span><br><blockquote type="cite"><span>It was backslashes vs. forward slashes as I had originally suspected.</span><br></blockquote><blockquote type="cite"><span>My debugprinting never hit because I was guessing the elego paths wrong.</span><br></blockquote><blockquote type="cite"><span>I finally made it always print and tested it in-situ in the VM.</span><br></blockquote><span></span><br><span>It is amazing how much (pointless) work the difference in pathname</span><br><span>denotations on Windows and POSIX systems has caused and still causes.</span><br><span>While there are some conceptual differences that cannot easily be</span><br><span>generalized (one root <-> many roots, logical <-> physical view of</span><br><span>disks etc.), the simple fact that Windows uses \ instead of /</span><br><span>makes life needlessly difficult for many programmers.</span><br><span></span><br><span>In Modula-3, the Pathname interface is intended to abstract from</span><br><span>this, but this works only to a certain degree. It uses \ as the</span><br><span>arc separator on Windows, while in fact all modern Windows systems</span><br><span>accept both \ and /. I think this should be corrected.</span><br><span></span><br><span>Pathnames should be split into elements at both \ and / on Windows,</span><br><span>and checks for equality should ignore any differences in separator</span><br><span>characters only. Does this sound reasonable?</span><br><span></span><br><span>Is there any (non)obvious problem I'm overseeing right now which</span><br><span>will make this strategy fail?</span><br><span></span><br><span>Olaf</span><br><span></span><br><span>PS: I'm not suggesting we do that in this release of course...</span><br><span>-- </span><br><span>Olaf Wagner -- elego Software Solutions GmbH</span><br><span> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany</span><br><span>phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95</span><br><span> <a href="http://www.elegosoft.com">http://www.elegosoft.com</a> | Geschäftsführer: Olaf Wagner | Sitz: Berlin</span><br><span>Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194</span><br><span></span><br><span></span><br></div></blockquote></body></html>