<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Bernhard,<br>
<br>
Interesting issue. $: as a directory separator was only used for
Classic Mac OS, that ran only on Motorola 68k and PowerPC. According
to Wikipedia, its support status is "Historical, unsupported as of
February 1, 2002", That's 22 years ago. I think it is safe to
abandon support for $: as a directory separator.<br>
<br>
Just pushed an update for this.<br>
<br>
Thanks,<br>
<br>
On 3/3/2024 6:47 PM, Bernhard Pieber via Cuis-dev wrote:
<blockquote
cite="mid:A2550FBA-95C0-4C52-B32A-C5BEEAEA24C5@pieber.com"
type="cite">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Hi,
<div><br>
</div>
<div>In macOS Finder it is possible to create directories and file
names which contain forward slashes. I created a directory named
a/b with a file named b/c. Under the hood the slash is converted
to a colon, e.g.</div>
<div>
<p style="margin: 0px; font-style: normal; font-stretch: normal;
font-size: 11px; line-height: normal; font-family: Menlo;
font-size-adjust: none;"><span style="">bernhard@MacBookPro16
Cuis-Smalltalk-Dev % find . -name b:c</span></p>
<p style="margin: 0px; font-style: normal; font-stretch: normal;
font-size: 11px; line-height: normal; font-family: Menlo;
font-size-adjust: none;"><span style="">./a:b/b:c</span></p>
</div>
<div><br>
</div>
<div>See also <a moz-do-not-send="true"
href="https://stackoverflow.com/questions/13298434/colon-appears-as-forward-slash-when-creating-file-name">https://stackoverflow.com/questions/13298434/colon-appears-as-forward-slash-when-creating-file-name</a></div>
<div><br>
</div>
<div><span style="">In Cuis the names are shown with colons as
well. The following expression answers true:</span></div>
<div><span style="">(DirectoryEntry vmDirectory directoryMatching:
'a:b') exists. „true“</span></div>
<div><span style=""><br>
</span></div>
<div><span style="">However, the following expression answers
false:</span></div>
<div><span style="">(DirectoryEntry vmDirectory / 'a:b') exists.</span></div>
<div><span style=""><br>
</span></div>
<div>The reason for this is that on macOS the colon is not a
separator – it was in Classic Mac OS, while Cuis assumes it
still is, see String class>>#pathSeparators:</div>
<div><br>
</div>
<div>pathSeparators</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>^'\:/'</div>
<div><span style=""><br>
</span></div>
<div>Seeing this implementation made me realize the same problem
exists for directory and file names including a backslash. While
I can create them in Finder, Cuis does not fully support them.</div>
<div><span style=""><br>
</span></div>
<div><span style="">Creating such directories fails as well:</span></div>
<div><span style="">
<div>DirectoryEntry vmDirectory assureExistenceDirNamed:
'bin:go'.</div>
<div>DirectoryEntry vmDirectory assureExistenceDirNamed:
'bin\go‘.</div>
<div><br>
</div>
<div>Interestingly, using SqueakCompatibility the following
works:</div>
<div>
<div>(FileDirectory on:
'/Users/bernhard/Entwicklung/Cuis/Cuis-Smalltalk/Cuis-Smalltalk-Dev')
createDirectory: 'bin:go'.</div>
<div>(FileDirectory on:
'/Users/bernhard/Entwicklung/Cuis/Cuis-Smalltalk/Cuis-Smalltalk-Dev')
createDirectory: 'bin\go‘.</div>
</div>
<div><br>
</div>
<div>The best fix would probably be to make the path separator
platform dependent. (However, given that Smalltalk
platformName returns 'Mac OS' even on macOS, I am not sure
how best to distinguish between Classic Mac OS and macOS.)</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Bernhard</div>
</span></div>
</blockquote>
<pre class="moz-signature" cols="72">--
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
</body>
</html>