int cfexist( char * filename ) { int length; FILE *fp; if (filename[0] != '\x01') fp = cfile_get_filehandle( filename, "rb" ); // Check for non-hog file first... else { fp = NULL; //don't look in dir, only in hogfile filename++; } if ( fp ) { fclose(fp); return 1; } fp = cfile_find_libfile(filename, &length ); if ( fp ) { fclose(fp); return 2; // file found in hog } return 0; // Couldn't find it. }
CFILE * cfopen(char * filename, char * mode ) { int length; FILE * fp; CFILE *cfile; if (stricmp( mode, "rb")) { Error( "cfiles can only be opened with mode==rb\n" ); } if (filename[0] != '\x01') { #ifdef MACINTOSH char mac_path[255]; macify_dospath(filename, mac_path); fp = cfile_get_filehandle( mac_path, mode); #else fp = cfile_get_filehandle( filename, mode ); // Check for non-hog file first... #endif } else { fp = NULL; //don't look in dir, only in hogfile filename++; } if ( !fp ) { fp = cfile_find_libfile(filename, &length ); if ( !fp ) return NULL; // No file found cfile = d_malloc ( sizeof(CFILE) ); if ( cfile == NULL ) { fclose(fp); return NULL; } cfile->file = fp; cfile->size = length; cfile->lib_offset = ftell( fp ); cfile->raw_position = 0; return cfile; } else { cfile = d_malloc ( sizeof(CFILE) ); if ( cfile == NULL ) { fclose(fp); return NULL; } cfile->file = fp; cfile->size = filelength( fileno(fp) ); cfile->lib_offset = 0; cfile->raw_position = 0; return cfile; } }
CFILE * cfopen(char * filename, char * mode ) { int length; FILE * fp; CFILE *cfile; if (strcasecmp(mode, "rb")) { printf( "CFILES CAN ONLY BE OPENED WITH RB\n" ); exit(1); } fp = cfile_get_filehandle( filename, mode ); // Check for non-hog file first... if ( !fp ) { fp = cfile_find_libfile(filename, &length ); if ( !fp ) return NULL; // No file found cfile = (CFILE*)malloc ( sizeof(CFILE) ); if ( cfile == NULL ) { fclose(fp); return NULL; } cfile->file = fp; cfile->size = length; cfile->lib_offset = ftell( fp ); cfile->raw_position = 0; return cfile; } else { cfile = (CFILE*)malloc ( sizeof(CFILE) ); if ( cfile == NULL ) { fclose(fp); return NULL; } cfile->file = fp; fseek(fp, 0L, SEEK_END); cfile->size = ftell(fp); fseek(fp, 0L, SEEK_SET); cfile->lib_offset = 0; cfile->raw_position = 0; return cfile; } }
int cfexist( char * filename ) { int length; FILE *fp; fp = cfile_get_filehandle( filename, "rb" ); // Check for non-hog file first... if ( fp ) { fclose(fp); return 1; } fp = cfile_find_libfile(filename, &length ); if ( fp ) { fclose(fp); return 2; // file found in hog } return 0; // Couldn't find it. }