I'm trying to use the .changes and .sources files under Windows/CE on a MIPS machine with plenty of memory (a NEC MobilePro 770 with 32M of memory and a 64M CF card holding Squeak).
My CF card is called "\CF" (I didn't like "\Storage Card2").
So in \CF\Squeak I have the VM files, as well as:
tiny.image tiny.changes SqueakV2.sources
I open up Squeak, and it prompts for the location of my .image file. No problem. I locate the tiny.image file and it starts up.
Then it tells me that it can't find tiny.changes (which is in the same directory). It offers to let me "choose another name". I choose this. Then the name it's showing me is:
\C\CF\Squeak\tiny.changes
Now, where did the "\C" come from there?
I remove the \C to point to the correct file, then accept it.
It pops up again saying it can't find the file, and I again choose "choose another name". Now it prompts with:
\C\C\CF\Squeak\tiny.changes
Boy, it likes \C !!
Looking a bit further, I see that
StandardFileStream class>>fullName: '\CF\Squeak\tiny.changes'
answers '\C\CF\Squeak\tiny.changes'.
Why it does this, I'm not sure.
Anyway, I cancel, and then it tells me that it can't find the sources file (which is in the same directory as the VM and the image).
I can't move Squeak anywhere but on my CF card.
Has anyone got a suggestion for fixing this problem?
[later]
DosFileDirectory>>fullPathFor: '\CF\Squeak\tiny.changes' returns '\C\CF\Squeak\tiny.changes'.
The problem is that the code there expects the instvar 'pathName' to be something starting with a volume letter and a colon.
However, WinCE doesn't have volume letters. So FileDirectory default in this case is '\CF\Squeak'.
Either we need a separate FileDirectory subclass, or we need a conditional in there that checks to see whether there is a drive letter.
Suggestions?
I seem to have "rediscovered" this problem:
Ned Konz wrote:
...
DosFileDirectory>>fullPathFor: '\CF\Squeak\tiny.changes' returns '\C\CF\Squeak\tiny.changes'.
The problem is that the code there expects the instvar 'pathName' to be something starting with a volume letter and a colon.
However, WinCE doesn't have volume letters. So FileDirectory default in this case is '\CF\Squeak'.
Either we need a separate FileDirectory subclass, or we need a conditional in there that checks to see whether there is a drive letter.
Suggestions?
My suggested fix is attached.
Joern
squeak-dev@lists.squeakfoundation.org