diff --git a/palm/dictlist.c b/palm/dictlist.c index 7021c20df..d73555576 100644 --- a/palm/dictlist.c +++ b/palm/dictlist.c @@ -361,6 +361,11 @@ DictListCount( PalmDictList* dl ) #ifdef NODE_CAN_4 +/***************************************************************************** + * Conversion from old Crosswords DAWG format to new. It should be possible + * for this to go away once the new format's been out for a while. + *****************************************************************************/ + static XP_Bool convertOneRecord( DmOpenRef ref, XP_U16 index ) { @@ -411,7 +416,7 @@ convertOneRecord( DmOpenRef ref, XP_U16 index ) } /* convertOneRecord */ static XP_Bool -convertOneDict( UInt16 cardNo, LocalID dbID, XP_UCHAR* name ) +convertOneDict( UInt16 cardNo, LocalID dbID ) { Err err; UInt32 creator; @@ -467,7 +472,6 @@ convertOneDict( UInt16 cardNo, LocalID dbID, XP_UCHAR* name ) XP_U16 i; for ( i = firstEdgeRecNum; i < nRecords; ++i ) { - XP_LOGF( "converting rec %d of %s", i, name ); convertOneRecord( ref, i ); } } @@ -488,6 +492,16 @@ convertOneDict( UInt16 cardNo, LocalID dbID, XP_UCHAR* name ) return err == errNone; } /* convertOneDict */ +static XP_Bool +confirmDictConvert( PalmAppGlobals* globals, const XP_UCHAR* name ) +{ + XP_UCHAR buf[128]; + XP_UCHAR *fmt = getResString( globals, STRS_CONFIRM_ONEDICT ); + XP_ASSERT( !!fmt ); + XP_SNPRINTF( buf, sizeof(buf), fmt, name ); + return palmask( globals, buf, NULL, -1 ); +} /* confirmDictConvert */ + void offerConvertOldDicts( PalmAppGlobals* globals ) { @@ -504,39 +518,45 @@ offerConvertOldDicts( PalmAppGlobals* globals ) if ( getNthDict( dl, i, &dle ) ) { if ( dle->location == DL_STORAGE ) { - convertOneDict( dle->u.dmData.cardNo, - dle->u.dmData.dbID, - dle->path ); + + if ( confirmDictConvert( globals, dle->baseName ) ) { + convertOneDict( dle->u.dmData.cardNo, + dle->u.dmData.dbID ); + } + } else { - UInt16 cardNo; - LocalID dbID; - UInt16 volRefNum = dle->u.vfsData.volNum; - XP_ASSERT( dle->location == DL_VFS ); + if ( confirmDictConvert( globals, dle->baseName ) ) { - XP_LOGF( "trying %s", dle->path ); + UInt16 cardNo; + LocalID dbID; + UInt16 volRefNum = dle->u.vfsData.volNum; - /* copy from SD card to storage, convert, copy back */ - err = VFSImportDatabaseFromFile( volRefNum, - (const char*)dle->path, - &cardNo, &dbID ); - XP_LOGF( "VFSImportDatabaseFromFile => %d", err ); - if ( err == errNone && convertOneDict( cardNo, dbID, - dle->path ) ) { + XP_ASSERT( dle->location == DL_VFS ); - err = VFSFileDelete( volRefNum, dle->path ); - XP_LOGF( "VFSFileDelete=>%d", err ); - if ( err == errNone ) { + XP_LOGF( "trying %s", dle->path ); - err = VFSExportDatabaseToFile( volRefNum, - (const char*)dle->path, - cardNo, dbID ); + /* copy from SD card to storage, convert, copy back */ + err = VFSImportDatabaseFromFile( volRefNum, + (const char*)dle->path, + &cardNo, &dbID ); + XP_LOGF( "VFSImportDatabaseFromFile => %d", err ); + if ( err == errNone && convertOneDict( cardNo, dbID ) ) { + + err = VFSFileDelete( volRefNum, dle->path ); + XP_LOGF( "VFSFileDelete=>%d", err ); + if ( err == errNone ) { + + err = VFSExportDatabaseToFile( volRefNum, + (const char*)dle->path, + cardNo, dbID ); - XP_LOGF( "VFSExportDatabaseToFile => %d", err ); + XP_LOGF( "VFSExportDatabaseToFile => %d", err ); - XP_ASSERT( err == errNone ); - err = DmDeleteDatabase( cardNo, dbID ); - XP_ASSERT( err == errNone ); + XP_ASSERT( err == errNone ); + err = DmDeleteDatabase( cardNo, dbID ); + XP_ASSERT( err == errNone ); + } } } } diff --git a/palm/palmmain.c b/palm/palmmain.c index a3da3f08f..e417e1135 100644 --- a/palm/palmmain.c +++ b/palm/palmmain.c @@ -162,8 +162,6 @@ static void palmSetCtrlsForTray( PalmAppGlobals* globals ); static void drawFormButtons( PalmAppGlobals* globals ); static MemHandle findXWPrefsRsrc( PalmAppGlobals* globals, UInt32 resType, UInt16 resID ); -static Boolean palmask( PalmAppGlobals* globals, XP_UCHAR* str, XP_UCHAR* alt, - XP_S16 titleStrID ); #ifdef SHOW_PROGRESS static void palm_util_engineStarting( XW_UtilCtxt* uc ); static void palm_util_engineStopping( XW_UtilCtxt* uc ); @@ -604,7 +602,6 @@ palmInitPrefs( PalmAppGlobals* globals ) { globals->gState.showGrid = true; globals->gState.versionNum = CUR_PREFS_VERS; - globals->isFirstLaunch = true; globals->gState.cp.showBoardArrow = XP_TRUE; #ifdef SHOW_PROGRESS @@ -773,7 +770,7 @@ uninitResources( PalmAppGlobals* globals ) } /* uninitResources */ -static XP_UCHAR* +XP_UCHAR* getResString( PalmAppGlobals* globals, XP_U16 strID ) { XP_ASSERT( !!globals->stringsResPtr ); @@ -875,6 +872,8 @@ startApplication( PalmAppGlobals** globalsP ) globals->romVersion = romVersion(); + globals->isFirstLaunch = true; + leftyFlag = 0; if ( !PrefGetAppPreferencesV10('Lfty', 1, &leftyFlag, sizeof(leftyFlag) )) { @@ -2511,7 +2510,7 @@ palmaskFromStrId( PalmAppGlobals* globals, XP_U16 strId, XP_S16 titleID, return palmask( globals, message, alt, titleID ); } /* palmaskFromStrId */ -static Boolean +Boolean palmask( PalmAppGlobals* globals, XP_UCHAR* str, XP_UCHAR* altButton, XP_S16 titleID ) { diff --git a/palm/palmmain.h b/palm/palmmain.h index a814c056f..ed6e2487e 100644 --- a/palm/palmmain.h +++ b/palm/palmmain.h @@ -322,5 +322,8 @@ void palm_util_requestTime( XW_UtilCtxt* uc ); /* so palmir can call */ void writeNameToGameRecord( PalmAppGlobals* globals, XP_S16 index, char* newName, XP_U16 len ); +XP_UCHAR* getResString( PalmAppGlobals* globals, XP_U16 strID ); +Boolean palmask( PalmAppGlobals* globals, XP_UCHAR* str, XP_UCHAR* altButton, + XP_S16 titleID ); #endif /* _PALMMAIN_H_ */