int WRCopyFileToTemp( WRInfo *info, char *filename ) { if( filename == NULL ) { return( FALSE ); } if( !WRFileExists( filename ) ) { return( FALSE ); } if( info->tmp_file == NULL ) { info->tmp_file = WRGetTempFileName( NULL ); if( info->tmp_file == NULL ) { return( FALSE ); } } if( !WRCopyFile( info->tmp_file, filename ) ) { WRPrintErrorMsg( WR_BACKUPFAILED, filename, info->tmp_file, strerror( WRGetLastError() ) ); return( FALSE ); } return( TRUE ); }
int WRSaveResourceToEXE ( WRInfo *info, int backup, WRFileType ttype ) { int ok; char *tmp_res; char *sname; WRFileType stype; sname = NULL; ok = ( info->file_name != NULL ); ok = ( ok && ( ( tmp_res = WRGetTempFileName ( "res" ) ) != NULL ) ); if ( ok ) { sname = info->save_name; stype = info->save_type; info->save_name = tmp_res; info->save_type = ttype; ok = WRSaveResource ( info, FALSE ); } if ( ok ) { if ( backup && WRFileExists ( sname ) ) { ok = WRBackupFile ( sname, FALSE ); } } if ( ok ) { memset ( &CmdLineParms, 0, sizeof ( CmdLineParms ) ); CmdLineParms.Pass2Only = TRUE; CmdLineParms.VersionStamp = VERSION_31_STAMP; if ( ttype == WR_WINNTW_RES ) { CmdLineParms.TargetOS = RC_TARGET_OS_WIN32; } else { CmdLineParms.TargetOS = RC_TARGET_OS_WIN16; } strcpy ( CmdLineParms.InFileName, tmp_res ); strcpy ( CmdLineParms.InExeFileName, info->file_name ); if ( stricmp ( sname, info->file_name ) ) { strcpy ( CmdLineParms.OutExeFileName, sname ); } else { strcpy ( CmdLineParms.OutExeFileName, info->file_name ); } ok = WRExecRCPass2 (); } if ( tmp_res ) { WRDeleteFile ( tmp_res ); WRMemFree ( tmp_res ); } if ( sname ) { info->save_name = sname; info->save_type = stype; } return ( ok ); }