From: John M M. <jo...@us...> - 2003-12-02 05:02:08
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm In directory sc8-pr-cvs1:/tmp/cvs-serv14458/squeak/platforms/Mac OS/vm Modified Files: sqMacImageIO.c Log Message: 3.7.0b2 Changes for file name encoding. Ensure we use current encoding when working with file names. Change logic in vmPath, imageName, shortImageName, documentName to support CFString which we convert to desired encoding at read time. Index: sqMacImageIO.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqMacImageIO.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sqMacImageIO.c 6 Aug 2002 22:35:27 -0000 1.3 --- sqMacImageIO.c 2 Dec 2003 04:52:31 -0000 1.4 *************** *** 11,14 **** --- 11,15 ---- * NOTES: * Feb 22nd, 2002, JMM moved code into 10 other files, see sqMacMain.c for comments + 3.7.0bx Nov 24th, 2003 JMM gCurrentVMEncoding *****************************************************************************/ *************** *** 18,31 **** #include "sqMacWindow.h" #include "sqMacFileLogic.h" - /*** Variables -- image and path names ***/ - char imageName[IMAGE_NAME_SIZE + 1]; /* full path to image file */ - - char shortImageName[SHORTIMAGE_NAME_SIZE + 1]; /* just the image file name */ - char documentName[DOCUMENT_NAME_SIZE + 1]; /* full path to document file */ - - char vmPath[VMPATH_SIZE + 1]; /* full path to interpreter's directory */ /*** VM Home Directory Path ***/ --- 19,26 ---- #include "sqMacWindow.h" #include "sqMacFileLogic.h" + #include "sqMacEncoding.h" /*** VM Home Directory Path ***/ *************** *** 33,37 **** int vmPathSize(void) { ! return strlen(vmPath); } --- 28,35 ---- int vmPathSize(void) { ! char path[VMPATH_SIZE + 1]; ! ! getVMPathWithEncoding(path,gCurrentVMEncoding); ! return strlen(path); } *************** *** 39,49 **** char *stVMPath = (char *) sqVMPathIndex; int count, i; ! count = strlen(vmPath); count = (length < count) ? length : count; /* copy the file name into the Squeak string */ for (i = 0; i < count; i++) { ! stVMPath[i] = vmPath[i]; } return count; --- 37,49 ---- char *stVMPath = (char *) sqVMPathIndex; int count, i; + char path[VMPATH_SIZE + 1]; ! getVMPathWithEncoding(path,gCurrentVMEncoding); ! count = strlen(path); count = (length < count) ? length : count; /* copy the file name into the Squeak string */ for (i = 0; i < count; i++) { ! stVMPath[i] = path[i]; } return count; *************** *** 53,57 **** int imageNameSize(void) { ! return strlen(imageName); } --- 53,60 ---- int imageNameSize(void) { ! char path[IMAGE_NAME_SIZE+1]; ! getImageNameWithEncoding(path,gCurrentVMEncoding); ! ! return strlen(path); } *************** *** 59,69 **** char *sqImageName = (char *) sqImageNameIndex; int count, i; ! count = strlen(imageName); count = (length < count) ? length : count; /* copy the file name into the Squeak string */ for (i = 0; i < count; i++) { ! sqImageName[i] = imageName[i]; } return count; --- 62,74 ---- char *sqImageName = (char *) sqImageNameIndex; int count, i; + char path[IMAGE_NAME_SIZE+1]; + getImageNameWithEncoding(path,gCurrentVMEncoding); ! count = strlen(path); count = (length < count) ? length : count; /* copy the file name into the Squeak string */ for (i = 0; i < count; i++) { ! sqImageName[i] = path[i]; } return count; *************** *** 74,77 **** --- 79,84 ---- int count, i, ch, j; int lastColonIndex = -1; + char name[IMAGE_NAME_SIZE + 1]; /* full path to image file */ + char shortImageName[SHORTIMAGE_NAME_SIZE+1]; count = (IMAGE_NAME_SIZE < length) ? IMAGE_NAME_SIZE : length; *************** *** 79,95 **** /* copy the file name into a null-terminated C string */ for (i = 0; i < count; i++) { ! ch = imageName[i] = sqImageName[i]; if (ch == ':') { lastColonIndex = i; } } ! imageName[count] = 0; /* copy short image name into a null-terminated C string */ for (i = lastColonIndex + 1, j = 0; i < count; i++, j++) { ! shortImageName[j] = imageName[i]; } shortImageName[j] = 0; SetWindowTitle(shortImageName); return count; --- 86,104 ---- /* copy the file name into a null-terminated C string */ for (i = 0; i < count; i++) { ! ch = name[i] = sqImageName[i]; if (ch == ':') { lastColonIndex = i; } } ! name[count] = 0; ! SetImageNameViaString(name,gCurrentVMEncoding); /* copy short image name into a null-terminated C string */ for (i = lastColonIndex + 1, j = 0; i < count; i++, j++) { ! shortImageName[j] = name[i]; } shortImageName[j] = 0; + SetShortImageNameViaString(shortImageName,gCurrentVMEncoding); SetWindowTitle(shortImageName); return count; *************** *** 388,392 **** #endif - --- 397,400 ---- |