コード例 #1
0
Bool File_Read( void* file, const char* const fileName ) {
	File* self = (File*)file;
	Bool result;
	
	if( !(result = self->_read( self, fileName )) ) {
		/* If the file failed to read, try prepending the search paths (if its not an absolute path) */
		if( strlen(fileName) >= 1 && fileName[0] != '/' ) {
			int i;

			for( i = 0; i < Stg_ObjectList_Count( _stgFilePaths ); i++ ) {
				char* path = (char*)Stg_ObjectAdaptor_Object( (Stg_ObjectAdaptor*)Stg_ObjectList_At( _stgFilePaths, i ) );
				char newFileName[FILENAME_MAX];

				strncpy( newFileName, path, FILENAME_MAX-1 );
				strncat( newFileName, "/", FILENAME_MAX-1 - 1 );
				strncat( newFileName, fileName, FILENAME_MAX-1 - 1 - strlen(path) );
				if( (result = self->_read( self, newFileName )) ) {
					break;
				}
			}
		}
	}
	
	if( result ) {
		/* File opened, set the name. */
		Stg_Object_SetName( self, (char*)fileName );
		self->_opened = True;
		self->_lastOpenedAs = 1;
	}
	
	return result;
}
コード例 #2
0
ファイル: JournalFile.c プロジェクト: bmi-forum/bmi-pyre
Bool JournalFile_Append( void* file, char* fileName ) {
	JournalFile* self = (JournalFile*)file;
	
	Bool result = self->_append( self, fileName );
	
	if ( result )
	{
		/* File opened, set the name. */
		Stg_Object_SetName( self, fileName );
		self->_opened = True;
	}
	
	return result;
}
コード例 #3
0
Bool File_Append( void* file, const char* const fileName ) {
	File* self = (File*)file;
	
	Bool result = self->_append( self, fileName );
	
	if ( result )
	{
		/* File opened, set the name. */
		Stg_Object_SetName( self, (char*)fileName );
		self->_opened = True;
		self->_lastOpenedAs = 3;
	}
	
	return result;
}