wine photoed reports it can't find GIFIMP32.FLT (and friends) which prevents images from being imported. The trace is: trace:dosfs:DOSFS_GetFullName L"C:\\PROGRA~1\\COMMON~1\\MICROS~1\\GRPHFLT\\GIFIM P32.FLT" (last=0) trace:dosfs:DOSFS_FindUnixName /dos,L"PROGRA~1\\COMMON~1\\MICROS~1\\GRPHFLT\\GIF IMP32.FLT" trace:dosfs:DOSFS_ToDosFCBFormat (L"PROGRA~1\\COMMON~1\\MICROS~1\\GRPHFLT\\GIFIM P32.FLT", df621770) trace:dosfs:DOSFS_OpenDir "/dos" ... trace:dosfs:DOSFS_ReadDir Read: long_name: L"Program Files", short_name: (null) trace:dosfs:DOSFS_FindUnixName checking L"PROGRA~1 " L"PROG~FBU " What happens is DOSFS_Hash hashes "Program Files" in an unexpected fashion which prevents DOSFS_FindUnixName from realizing it matches ""PROGRA~1 ". The enclosed * hack * allows wine photoed to load images. It is * not * the correct answer. One possible approach is to modify DOSFS_OpenDir_Normal to generate "proper" short names after it has read all the directory entries. ChangeLog: Fri Jan 17 20:31:21 EST 2003 John Wehle (john@feith.com) * files/dos_fs.c (DOSFS_Hash): Use a constant in place of the hash. Enjoy! -- John Wehle ------------------8<------------------------8<------------------------ *** files/dos_fs.c.ORIGINAL Fri Dec 13 15:30:06 2002 --- files/dos_fs.c Fri Jan 17 19:53:51 2003 *************** static void DOSFS_Hash( LPCWSTR name, LP *** 690,708 **** if (ext && IS_END_OF_NAME(ext[1])) ext = NULL; /* Empty extension ignored */ ! /* Copy first 4 chars, replacing invalid chars with '_' */ ! for (i = 4, p = name, dst = buffer; i > 0; i--, p++) { if (IS_END_OF_NAME(*p) || (p == ext)) break; *dst++ = (*p < 256 && strchr( invalid_chars, (char)*p )) ? '_' : toupperW(*p); } ! /* Pad to 5 chars with '~' */ while (i-- >= 0) *dst++ = '~'; /* Insert hash code converted to 3 ASCII chars */ *dst++ = hash_chars[(hash >> 10) & 0x1f]; *dst++ = hash_chars[(hash >> 5) & 0x1f]; *dst++ = hash_chars[hash & 0x1f]; /* Copy the first 3 chars of the extension (if any) */ if (ext) --- 690,711 ---- if (ext && IS_END_OF_NAME(ext[1])) ext = NULL; /* Empty extension ignored */ ! /* Copy first 6 chars, replacing invalid chars with '_' */ ! for (i = 6, p = name, dst = buffer; i > 0; i--, p++) { if (IS_END_OF_NAME(*p) || (p == ext)) break; *dst++ = (*p < 256 && strchr( invalid_chars, (char)*p )) ? '_' : toupperW(*p); } ! /* Pad to 7 chars with '~' */ while (i-- >= 0) *dst++ = '~'; /* Insert hash code converted to 3 ASCII chars */ + /* *dst++ = hash_chars[(hash >> 10) & 0x1f]; *dst++ = hash_chars[(hash >> 5) & 0x1f]; *dst++ = hash_chars[hash & 0x1f]; + */ + *dst++ = '1'; /* Copy the first 3 chars of the extension (if any) */ if (ext) ------------------------------------------------------------------------- | Feith Systems | Voice: 1-215-646-8000 | Email: john@feith.com | | John Wehle | Fax: 1-215-540-5495 | | -------------------------------------------------------------------------