static bool ChangeTmpToOutFile( FILE *tmpfile, const char *out_name ) /*******************************************************************/ { RcStatus status; /* error while deleting or renaming */ FILE *outfile; size_t numread; char *buffer; buffer = RESALLOC( BUFFER_SIZE ); status = RS_OK; RESSEEK( tmpfile, 0, SEEK_SET ); outfile = ResOpenFileRW( out_name ); while( (numread = RESREAD( tmpfile, buffer, BUFFER_SIZE )) != 0 ) { if( numread != BUFFER_SIZE && RESIOERR( tmpfile, numread ) ) { status = RS_READ_ERROR; break; } if( RESWRITE( outfile, buffer, numread ) != numread ) { status = RS_WRITE_ERROR; break; } } ResCloseFile( outfile ); RESFREE( buffer ); return( status == RS_OK ); } /* ChangeTmpToOutFile */
static bool ResOS2WriteAccelEntry( AccelTableEntryOS2 *currentry, WResFileID fid ) /********************************************************************************/ { if( RESWRITE( fid, currentry, sizeof( AccelTableEntryOS2 ) ) != sizeof( AccelTableEntryOS2 ) ) { WRES_ERROR( WRS_WRITE_FAILED ); return( true ); } return( false ); }
RcStatus SemCopyDataUntilEOF( WResFileOffset offset, WResFileID fid, void *buff, unsigned buffsize, int *err_code ) /*********************************************************************/ { WResFileSSize numread; if( RESSEEK( fid, offset, SEEK_SET ) == -1 ) { *err_code = errno; return( RS_READ_ERROR ); } while( (numread = RESREAD( fid, buff, buffsize )) != 0 ) { if( RESIOERR( fid, numread ) ) { *err_code = errno; return( RS_READ_ERROR ); } if( RESWRITE( CurrResFile.fid, buff, numread ) != numread ) { *err_code = errno; return( RS_WRITE_ERROR ); } } return( RS_OK ); }