This macro was #define sqFilenameFromString(dst, src, num) \ if (1) { \ int i; \ for (i = 0; i < num; i++) { \ dst[i] = *((char *) (src + i)); \ } \ dst[num] = 0;\ }
that got changed to this
#define sqFilenameFromString(dst, src, num) \ do { \ int i; \ for (i= 0; i < num; ++i) \ (dst)[i]= (src)[i]; \ dst[num]= '\0'; \ } while(0)
however the old codewarrior compiler errors with (dst)[i] = (src)[i]
pointer/array required
say in sqInt sqFileDeleteNameSize(sqInt sqFileNameIndex, sqInt sqFileNameSize) { char cFileName[1000];
This is not a problem on OS-X because we override the sqFilenameFromString in order to convert the HFS+ file name to posix UTF-8 file names. I'm wonder here if src which is sqFileNameIndex which define as sqInt which is int, then don't we really need proper casting here?
-- ======================================================================== === John M. McIntosh johnmci@smalltalkconsulting.com 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== ===
vm-dev@lists.squeakfoundation.org