Lines Matching refs:cfile

37 void cf_init_lowlevel_read_code( CFILE * cfile, size_t lib_offset, size_t size, size_t pos )  in cf_init_lowlevel_read_code()  argument
39 Assert(cfile != nullptr); in cf_init_lowlevel_read_code()
41 cfile->lib_offset = lib_offset; in cf_init_lowlevel_read_code()
42 cfile->raw_position = pos; in cf_init_lowlevel_read_code()
43 cfile->size = size; in cf_init_lowlevel_read_code()
45 if ( cfile->fp ) { in cf_init_lowlevel_read_code()
46 if ( cfile->lib_offset ) { in cf_init_lowlevel_read_code()
47 fseek( cfile->fp, (long)cfile->lib_offset, SEEK_SET ); in cf_init_lowlevel_read_code()
51 auto raw_position = ftell(cfile->fp) - cfile->lib_offset; in cf_init_lowlevel_read_code()
52 Assert(raw_position == cfile->raw_position); in cf_init_lowlevel_read_code()
58 void cf_check_compression(CFILE* cfile) in cf_check_compression() argument
60 if (cfile->size <= 16) in cf_check_compression()
62 int header=cfread_int(cfile); in cf_check_compression()
63 cfseek(cfile, 0, SEEK_SET); in cf_check_compression()
65 comp_create_ci(cfile, header); in cf_check_compression()
69 void cf_clear_compression_info(CFILE* cfile) in cf_clear_compression_info() argument
71 if (cfile->compression_info.header != 0) in cf_clear_compression_info()
73 free(cfile->compression_info.offsets); in cf_clear_compression_info()
74 free(cfile->compression_info.decoder_buffer); in cf_clear_compression_info()
75 cfile->compression_info.offsets = nullptr; in cf_clear_compression_info()
76 cfile->compression_info.decoder_buffer = nullptr; in cf_clear_compression_info()
77 cfile->compression_info.header = 0; in cf_clear_compression_info()
78 cfile->compression_info.block_size = 0; in cf_clear_compression_info()
79 cfile->compression_info.last_decoded_block_pos = 0; in cf_clear_compression_info()
80 cfile->compression_info.last_decoded_block_bytes = 0; in cf_clear_compression_info()
81 cfile->compression_info.num_offsets = 0; in cf_clear_compression_info()
91 int cfeof(CFILE *cfile) in cfeof() argument
93 Assert(cfile != NULL); in cfeof()
94 if (cfile->compression_info.header != 0) in cfeof()
95 return comp_feof(cfile); in cfeof()
99 if (cfile->fp) { in cfeof()
100 auto raw_position = ftell(cfile->fp) - cfile->lib_offset; in cfeof()
101 Assert(raw_position == cfile->raw_position); in cfeof()
105 if (cfile->raw_position >= cfile->size ) { in cfeof()
119 int cftell( CFILE * cfile ) in cftell() argument
121 Assert(cfile != NULL); in cftell()
122 if (cfile->compression_info.header != 0) in cftell()
123 return (int)comp_ftell(cfile); in cftell()
126 if (cfile->fp) { in cftell()
127 auto raw_position = ftell(cfile->fp) - cfile->lib_offset; in cftell()
128 Assert(raw_position == cfile->raw_position); in cftell()
133 Assertion(cfile->raw_position <= static_cast<size_t>(std::numeric_limits<int>::max()), in cftell()
135 return (int) cfile->raw_position; in cftell()
144 int cfseek( CFILE *cfile, int offset, int where ) in cfseek() argument
147 Assert(cfile != NULL); in cfseek()
149 if (cfile->compression_info.header != 0) in cfseek()
150 return comp_fseek(cfile, offset, where); in cfseek()
153 Assert( !cfile->mem_mapped ); in cfseek()
159 goal_position = offset+cfile->lib_offset; in cfseek()
163 goal_position = cfile->raw_position+offset+cfile->lib_offset; in cfseek()
167 goal_position = cfile->size+offset+cfile->lib_offset; in cfseek()
175 CAP(goal_position, cfile->lib_offset, cfile->lib_offset + cfile->size); in cfseek()
179 if (cfile->fp) { in cfseek()
181 result = fseek(cfile->fp, (long)goal_position, SEEK_SET ); in cfseek()
182 …n >= cfile->lib_offset, "Invalid offset values detected while seeking! Goal was " SIZE_T_ARG ", li… in cfseek()
185 cfile->raw_position = goal_position - cfile->lib_offset; in cfseek()
186 Assertion(cfile->raw_position <= cfile->size, "Invalid raw_position value detected!"); in cfseek()
189 if (cfile->fp) { in cfseek()
190 auto tmp_offset = ftell(cfile->fp) - cfile->lib_offset; in cfseek()
191 Assert(tmp_offset == cfile->raw_position); in cfseek()
204 int cfread(void *buf, int elsize, int nelem, CFILE *cfile) in cfread() argument
206 if(!cf_is_valid(cfile)) in cfread()
214 if ( (cfile->raw_position+size) > cfile->size ) { in cfread()
215 Assertion(cfile->raw_position <= cfile->size, "Invalid raw_position value detected!"); in cfread()
216 size = cfile->size - cfile->raw_position; in cfread()
223 if (cfile->max_read_len) { in cfread()
224 if ( cfile->raw_position+size > cfile->max_read_len ) { in cfread()
228 throw cfile::max_read_length(s_buf.str()); in cfread()
233 if (cfile->data != nullptr) { in cfread()
236 memcpy(buf, reinterpret_cast<const char*>(cfile->data) + cfile->raw_position, size); in cfread()
237 } else if (cfile->compression_info.header != 0) { in cfread()
238 bytes_read = comp_fread(cfile, reinterpret_cast<char*>(buf),size); in cfread()
241 …mprintf(("\nFile: %s decompression error. Result was: %d expected: %d\n", cfile->original_filename… in cfread()
245 bytes_read = fread(buf, 1, size, cfile->fp); in cfread()
249 cfile->raw_position += bytes_read; in cfread()
250 Assertion(cfile->raw_position <= cfile->size, "Invalid raw_position value detected!"); in cfread()
255 if (cfile->fp && cfile->compression_info.header == 0) { in cfread()
256 auto tmp_offset = ftell(cfile->fp) - cfile->lib_offset; in cfread()
257 Assert(tmp_offset == cfile->raw_position); in cfread()
264 int cfread_lua_number(double *buf, CFILE *cfile) in cfread_lua_number() argument
266 if(!cf_is_valid(cfile)) in cfread_lua_number()
273 if(cfile->data != nullptr) in cfread_lua_number()
281 if (cfile->fp) { in cfread_lua_number()
282 long orig_pos = ftell(cfile->fp); in cfread_lua_number()
283 items_read = fscanf(cfile->fp, LUA_NUMBER_SCAN, buf); in cfread_lua_number()
284 advance = (size_t) (ftell(cfile->fp)-orig_pos); in cfread_lua_number()
289 items_read = sscanf(reinterpret_cast<const char*>(cfile->data), LUA_NUMBER_SCAN "%n", buf, &read); in cfread_lua_number()
296 cfile->raw_position += advance; in cfread_lua_number()
297 Assertion(cfile->raw_position <= cfile->size, "Invalid raw_position value detected!"); in cfread_lua_number()
300 if (cfile->fp) { in cfread_lua_number()
301 auto tmp_offset = ftell(cfile->fp) - cfile->lib_offset; in cfread_lua_number()
302 Assert(tmp_offset==cfile->raw_position); in cfread_lua_number()