diff options
Diffstat (limited to 'src/misc')
-rw-r--r-- | src/misc/extra/extra.h | 2 | ||||
-rw-r--r-- | src/misc/extra/extraUtilFile.c | 36 |
2 files changed, 36 insertions, 2 deletions
diff --git a/src/misc/extra/extra.h b/src/misc/extra/extra.h index 189a4a42..0e9caf84 100644 --- a/src/misc/extra/extra.h +++ b/src/misc/extra/extra.h @@ -107,7 +107,9 @@ extern char * Extra_FileNameGenericAppend( char * pBase, char * pSuffix ); extern int Extra_FileCheck( char * pFileName ); extern int Extra_FileSize( char * pFileName ); extern char * Extra_FileRead( FILE * pFile ); +extern char * Extra_FileRead2( FILE * pFile, FILE * pFile2 ); extern char * Extra_FileReadContents( char * pFileName ); +extern char * Extra_FileReadContents2( char * pFileName, char * pFileName2 ); extern int Extra_FileIsType( char * pFileName, char * pS1, char * pS2, char * pS3 ); extern char * Extra_TimeStamp(); extern char * Extra_StringAppend( char * pStrGiven, char * pStrAdd ); diff --git a/src/misc/extra/extraUtilFile.c b/src/misc/extra/extraUtilFile.c index 4f8af483..5f905814 100644 --- a/src/misc/extra/extraUtilFile.c +++ b/src/misc/extra/extraUtilFile.c @@ -276,6 +276,28 @@ char * Extra_FileRead( FILE * pFile ) pBuffer[ nFileSize + 1] = '\0'; return pBuffer; } +char * Extra_FileRead2( FILE * pFile, FILE * pFile2 ) +{ + char * pBuffer; + int nSize, nSize2; + int RetValue; + // get the file size, in bytes + fseek( pFile, 0, SEEK_END ); + nSize = ftell( pFile ); + rewind( pFile ); + // get the file size, in bytes + fseek( pFile2, 0, SEEK_END ); + nSize2 = ftell( pFile2 ); + rewind( pFile2 ); + // load the contents of the file into memory + pBuffer = ABC_ALLOC( char, nSize + nSize2 + 3 ); + RetValue = fread( pBuffer, nSize, 1, pFile ); + RetValue = fread( pBuffer + nSize, nSize2, 1, pFile2 ); + // terminate the string with '\0' + pBuffer[ nSize + nSize2 + 0] = '\n'; + pBuffer[ nSize + nSize2 + 1] = '\0'; + return pBuffer; +} /**Function************************************************************* @@ -294,8 +316,18 @@ char * Extra_FileReadContents( char * pFileName ) char * pBuffer; pFile = fopen( pFileName, "rb" ); pBuffer = pFile ? Extra_FileRead( pFile ) : NULL; - if ( pFile ) - fclose( pFile ); + if ( pFile ) fclose( pFile ); + return pBuffer; +} +char * Extra_FileReadContents2( char * pFileName, char * pFileName2 ) +{ + FILE * pFile, * pFile2; + char * pBuffer; + pFile = fopen( pFileName, "rb" ); + pFile2 = fopen( pFileName2, "rb" ); + pBuffer = (pFile && pFile2) ? Extra_FileRead2( pFile, pFile2 ) : NULL; + if ( pFile ) fclose( pFile ); + if ( pFile2 ) fclose( pFile2 ); return pBuffer; } |