On Sun, Nov 21, 2010 at 3:44 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
Hi. The simplest way to find the problem (if my case it was muuuch more than this), I found the following: MacOS is case insensitive (I've just figure it out).
Actually no. It can be either. You can choose. Mine is case-sensitive.
Since it is a UNIX at the end, I thought it was case sensitive, but it seems it is not. Now, suppose that in the directory where my image is, I have the file called 'zaraza'. If I evaluate this:
(FileDirectory default fileOrDirectoryExists: 'zaraza') ->>>> true
I should get true. And the same with:
(FileDirectory default fileOrDirectoryExists: 'ZARAZA') ->>>> false
But....I get false instead of true. Which is wrong in Mac OS. The problem is that FileDirectory default -----> UnixFileDirectory
And this is because
FileDirectory class >> activeDirectoryClass "Return the concrete FileDirectory subclass for the platform on which we are currently running."
FileDirectory allSubclasses do: [:class | class isActiveDirectoryClass ifTrue: [^ class]].
that loop answers UnixFileDirectory. This is because:
nixFileDirectory class >> isActiveDirectoryClass "Does this class claim to be that properly active subclass of FileDirectory for this platform? Default test is whether the primPathNameDelimiter matches the one for this class. Other tests are possible"
^self pathNameDelimiter = self primPathNameDelimiter
answers true.
But anyway, why MacFileDirectory class >> isActiveDirectoryClass answers false?
If we see:
MacFileDirectory class >> isActiveDirectoryClass ^ super isActiveDirectoryClass and: [(Smalltalk getSystemAttribute: 1201) isNil or: [(Smalltalk getSystemAttribute: 1201) asNumber <= 31]]
(Smalltalk getSystemAttribute: 1201 -> '255'
So.....my questions are:
1) Should it answer Unix one, or MacOS? I guess than MacOS, and if it is unix, then we have to solve the kind of problem I have 2) Why (Smalltalk getSystemAttribute: 1201 -> '255' 3) Why not using "Smalltalk platformName" to detect which FileDirectory to use??
Thanks
Mariano