<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        Hi Subbu.<div><br></div><div>> <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">On </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Windows, you need a triple (drive, dirname, entry).</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">You could treat the "drive" as part of the "dirname", just like the leading "/" on Unix for the root path. The drive letter itself could be treated as a directory. Cygwin does this already (/cygdrive/c/...)</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">On Windows UNC paths  can be used to denote the "root" in a similar fashion:</span></div><div> \\?\C:\...</div><div><br></div><div>So, every path that begins with "\\" can be treated as root.</div><div><br></div><div>Best,</div><div>Marcel</div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 14.06.2020 09:49:52 schrieb K K Subbu <kksubbu.ml@gmail.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">On 14/06/20 1:52 am, Jakob Reschke wrote:<br>> Even though the . stands for the current directory (whatever that is), <br>> still ./foo/bar is a relative path. It cannot be resolved without <br>> another value (the current or default directory) and is quite literally <br>> relative to that.<br>Jakob,<br><br>It is not about a path being relative or absolute. Those concepts apply <br>within the OS filesystem. It is about whether a path specification is <br>complete or not. On Unix, a path is a pair (dirname, basename/entry). On <br>Windows, you need a triple (drive, dirname, entry).<br><br>Squeak depends on a plugin to access files and needs to give out <br>*complete* pathnames. Since the vm and plugins share the same OS process <br>and the CWD (getcwd()) is a property of the OS process, there is no need <br>for the vm to resolve '.' to CWD before handing it over to the plugin. <br>In that sense, './foo/bar' is a complete pathname.<br><br>On the other hand, the path 'SourcesV50.sources' is incomplete (dirname <br>missing) and should not be passed to plugin. The image has to resolve <br>this file in imagePath, vmPath or getcwd() directories before passing it <br>to the plugin.<br><br>Also, an absolute path like '/foo/bar' is an ambiguous object - is it <br>(/foo/bar, *) or is it (/foo, bar)? Right now, the image treats it like <br>latter :-( working purely at string level instead of semantic level.<br><br>  FileDirectory splitName: '/usr/lib' to: [:dirname :basename |<br>      {dirname. basename}]  #('/usr' 'lib')<br><br>  FileDirectory splitName: '/usr/lib/' to: [:dirname :basename |<br>     {dirname. basename}]  #('/usr/lib' '')<br><br>FileDirectory>>root returns ''. This is to coverup absolute path '/' <br>being parsed as ('', '/').<br><br>Regards .. Subbu<br><br></div></blockquote>
                                        </div></body>