Hey folks,
I'm trying to build the latest unix/osx from svn rev. 1290. I think I have the latest VMMaker (2.8b5-64B).
I'm compiling but not linking... missing sqGetFilenameFromString. It's referenced from ioFilenamefromStringofLengthresolveAliases in interp.c. I grepped around and didn't find it... heeeeelp ;)
Thanks in advance, Alan
On Sat, Jan 14, 2006 at 07:35:35PM -0600, Alan Sibley wrote:
Hey folks,
I'm trying to build the latest unix/osx from svn rev. 1290. I think I have the latest VMMaker (2.8b5-64B).
I'm compiling but not linking... missing sqGetFilenameFromString. It's referenced from ioFilenamefromStringofLengthresolveAliases in interp.c. I grepped around and didn't find it... heeeeelp ;)
This is a function that is not yet fully implemented in the platforms sources. When building a Linux VM, I added the following as a workaround (I don't know if this will work for OS X):
/* A default implementation for unix */ sqInt sqGetFilenameFromString(char *aCharBuffer, char *aFilenameString, sqInt filenameLength, sqInt aBoolean) { strncpy(aCharBuffer, aFilenameString, filenameLength); aCharBuffer[filenameLength] = 0; }
Dave
Well that will work but it's not correct because you are taking an macroman character based file path, and saying it's a UTF-8 character set based file name. Those are not the same.
As long as you use generic a-z,0-9 etc in your file names you find it will work. However an "å" or other more interesting character would cause disaster.
I *THINK* it's this routine in sqUnixCharConv.c you need to use instead of doing the strncpy.
void sqFilenameFromString(char *uxName, sqInt sqNameIndex, int sqNameLength) { /*xxx BUG: lots of code generate from the image assumes 1000 chars max path len */ sq2uxPath(pointerForOop(sqNameIndex), sqNameLength, uxName, 1000, 1); }
Or maybe it's the sq2uxPath(sqNameIndex, sqNameLength, uxName, 1000, 1); since I don't know what pointerForOop(sqNameIndex) does, it that a cast, or is it getting a pointer from sqNameIndex because it's an oops?
On 14-Jan-06, at 7:14 PM, David T. Lewis wrote:
On Sat, Jan 14, 2006 at 07:35:35PM -0600, Alan Sibley wrote:
Hey folks,
I'm trying to build the latest unix/osx from svn rev. 1290. I think I have the latest VMMaker (2.8b5-64B).
I'm compiling but not linking... missing sqGetFilenameFromString. It's referenced from ioFilenamefromStringofLengthresolveAliases in interp.c. I grepped around and didn't find it... heeeeelp ;)
This is a function that is not yet fully implemented in the platforms sources. When building a Linux VM, I added the following as a workaround (I don't know if this will work for OS X):
/* A default implementation for unix */ sqInt sqGetFilenameFromString(char *aCharBuffer, char *aFilenameString, sqInt filenameLength, sqInt aBoolean) { strncpy(aCharBuffer, aFilenameString, filenameLength); aCharBuffer[filenameLength] = 0; }
Dave
-- ======================================================================== === John M. McIntosh johnmci@smalltalkconsulting.com 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== ===
vm-dev@lists.squeakfoundation.org