CrLfFileStream on MacOSX
John M McIntosh
johnmci at smalltalkconsulting.com
Sat Feb 17 10:33:12 UTC 2007
On Feb 17, 2007, at 12:24 AM, Andrew P. Black wrote:
> Hi Rick,
>
> If I interpret what you are saying correctly, the meaning of the
> primPathNameDelimiter method, which is given by
>
> <primitive: 'primitiveDirectoryDelimitor' module: 'FilePlugin'>
>
> has changed in more recent Mac VMs (I'm running 3.8.12Beta1U). It
> was $:, but is now $/
Well I would have to dig about in a readme or three, however
historically the Mac VM started life
under os 7.x (or earlier) That means it lived with HFS 31? (was it)
file names those with ":"
Then HFS+ came along and introduced 255 byte filenames. so the VM
was over time migrated
to this which required the vm parm of 1201 to figure out if 31 or 255
was valid file name size.
And somewhere in there I drag the other vm developers into supporting
64bit file pointers.
Then OS-X came alone and we limped along with HFS+ for awhile until
people wanted to do
strange things like open /dev/foobar. Which wasn't possible.
The killer of course was lots of the API calls we were using for HFS+
were not ported to MacIntel
So I migrated to the unix file name code which I copied and altered
to provide proper HFS+ alias support.
The original unix code was quite weak in this area and assumed the
apple api's would handle multiple level aliases which it does not.
http://www.squeakvm.com/cgi-bin/viewcvs.cgi/trunk/platforms/Mac%20OS/
plugins/FilePlugin/sqMacUnixFileInterface.c?rev=1301&view=log
Ah interestingly enough the first check in was 1 year and 2 weeks ago.
Again thanks to Impara for providing a machine so I could do that
chore. (non-trivial btw).
So if you are running on a macintosh, well it's a unix machine, want
macintosh like cr/lf patterns well
you need to need deeper.
--
========================================================================
===
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
========================================================================
===
More information about the Squeak-dev
mailing list
|