make old file load/save shared
This commit is contained in:
parent
f73b8a0a6a
commit
a90c33f09b
|
@ -309,7 +309,7 @@ draw_font_info_load(Partition *partition,
|
||||||
|
|
||||||
i32 result = 1;
|
i32 result = 1;
|
||||||
File_Data file;
|
File_Data file;
|
||||||
file = system_load_file(filename.str);
|
file = sysshared_load_file(filename.str);
|
||||||
|
|
||||||
Temp_Memory temp = begin_temp_memory(partition);
|
Temp_Memory temp = begin_temp_memory(partition);
|
||||||
stbtt_packedchar *chardata = push_array(partition, stbtt_packedchar, 256);
|
stbtt_packedchar *chardata = push_array(partition, stbtt_packedchar, 256);
|
||||||
|
@ -401,7 +401,7 @@ draw_font_load(void *base_block, i32 size,
|
||||||
|
|
||||||
i32 result = 1;
|
i32 result = 1;
|
||||||
File_Data file;
|
File_Data file;
|
||||||
file = system_load_file(filename.str);
|
file = sysshared_load_file(filename.str);
|
||||||
|
|
||||||
Partition partition_ = make_part(base_block, size);
|
Partition partition_ = make_part(base_block, size);
|
||||||
Partition *partition = &partition_;
|
Partition *partition = &partition_;
|
||||||
|
|
|
@ -9,6 +9,39 @@
|
||||||
|
|
||||||
// TOP
|
// TOP
|
||||||
|
|
||||||
|
internal File_Data
|
||||||
|
sysshared_load_file(char *filename){
|
||||||
|
File_Data result = {0};
|
||||||
|
|
||||||
|
File_Loading loading =
|
||||||
|
system_file_load_begin(filename);
|
||||||
|
|
||||||
|
result.got_file = loading.exists;
|
||||||
|
|
||||||
|
if (loading.size > 0){
|
||||||
|
result.data.size = loading.size;
|
||||||
|
result.data.data = (byte*)Win32GetMemory(result.data.size);
|
||||||
|
|
||||||
|
if (!result.data.data){
|
||||||
|
system_file_load_end(loading, 0);
|
||||||
|
result = file_data_zero();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (!system_file_load_end(loading, (char*)result.data.data)){
|
||||||
|
Win32FreeMemory(result.data.data);
|
||||||
|
result = file_data_zero();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal b32
|
||||||
|
sysshared_save_file(char *filename, char *data, i32 size){
|
||||||
|
return(system_file_save(filename, data, size));
|
||||||
|
}
|
||||||
|
|
||||||
internal b32
|
internal b32
|
||||||
usable_ascii(char c){
|
usable_ascii(char c){
|
||||||
b32 result = 1;
|
b32 result = 1;
|
||||||
|
|
|
@ -27,15 +27,11 @@ file_data_zero(){
|
||||||
#define Sys_Get_Memory_Sig(name) void* name(i32 size, i32 line_number, char *file_name)
|
#define Sys_Get_Memory_Sig(name) void* name(i32 size, i32 line_number, char *file_name)
|
||||||
#define Sys_Free_Memory_Sig(name) void name(void *block)
|
#define Sys_Free_Memory_Sig(name) void name(void *block)
|
||||||
#define Sys_File_Can_Be_Made_Sig(name) b32 name(char *filename)
|
#define Sys_File_Can_Be_Made_Sig(name) b32 name(char *filename)
|
||||||
#define Sys_Load_File_Sig(name) File_Data name(char *filename)
|
|
||||||
#define Sys_Save_File_Sig(name) b32 name(char *filename, char *data, i32 size)
|
|
||||||
#define Sys_Get_Binary_Path_Sig(name) i32 name(String *out)
|
#define Sys_Get_Binary_Path_Sig(name) i32 name(String *out)
|
||||||
|
|
||||||
internal Sys_Get_Memory_Sig(system_get_memory_);
|
internal Sys_Get_Memory_Sig(system_get_memory_);
|
||||||
internal Sys_Free_Memory_Sig(system_free_memory);
|
internal Sys_Free_Memory_Sig(system_free_memory);
|
||||||
internal Sys_File_Can_Be_Made_Sig(system_file_can_be_made);
|
internal Sys_File_Can_Be_Made_Sig(system_file_can_be_made);
|
||||||
internal Sys_Load_File_Sig(system_load_file);
|
|
||||||
internal Sys_Save_File_Sig(system_save_file);
|
|
||||||
internal Sys_Get_Binary_Path_Sig(system_get_binary_path);
|
internal Sys_Get_Binary_Path_Sig(system_get_binary_path);
|
||||||
|
|
||||||
#define system_get_memory(size) system_get_memory_((size), __LINE__, __FILE__)
|
#define system_get_memory(size) system_get_memory_((size), __LINE__, __FILE__)
|
||||||
|
|
|
@ -296,20 +296,30 @@ Sys_File_Load_Begin_Sig(system_file_load_begin){
|
||||||
File_Loading loading = {0};
|
File_Loading loading = {0};
|
||||||
HANDLE file = 0;
|
HANDLE file = 0;
|
||||||
|
|
||||||
file = CreateFile(filename, GENERIC_READ, 0, 0,
|
String fname_str = make_string_slowly(filename);
|
||||||
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
|
if (fname_str.size < 1024){
|
||||||
|
char fixed_space[1024];
|
||||||
|
String fixed_str = make_fixed_width_string(fixed_space);
|
||||||
|
copy(&fixed_str, fname_str);
|
||||||
|
terminate_with_null(&fixed_str);
|
||||||
|
|
||||||
if (file && file != INVALID_HANDLE_VALUE){
|
replace_char(fixed_str, '/', '\\');
|
||||||
DWORD lo, hi;
|
|
||||||
lo = GetFileSize(file, &hi);
|
|
||||||
|
|
||||||
if (hi == 0){
|
file = CreateFile(fixed_str.str, GENERIC_READ, 0, 0,
|
||||||
loading.handle = Win32Handle(file);
|
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
|
||||||
loading.size = lo;
|
|
||||||
loading.exists = 1;
|
if (file && file != INVALID_HANDLE_VALUE){
|
||||||
}
|
DWORD lo, hi;
|
||||||
else{
|
lo = GetFileSize(file, &hi);
|
||||||
CloseHandle(file);
|
|
||||||
|
if (hi == 0){
|
||||||
|
loading.handle = Win32Handle(file);
|
||||||
|
loading.size = lo;
|
||||||
|
loading.exists = 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
CloseHandle(file);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,50 +379,6 @@ Sys_File_Save_Sig(system_file_save){
|
||||||
return(success);
|
return(success);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal
|
|
||||||
Sys_Load_File_Sig(system_load_file){
|
|
||||||
File_Data result = {0};
|
|
||||||
|
|
||||||
String fname_str = make_string_slowly(filename);
|
|
||||||
if (fname_str.size >= 1024) return(result);
|
|
||||||
|
|
||||||
char fixed_space[1024];
|
|
||||||
String fixed_str = make_fixed_width_string(fixed_space);
|
|
||||||
copy(&fixed_str, fname_str);
|
|
||||||
terminate_with_null(&fixed_str);
|
|
||||||
|
|
||||||
replace_char(fixed_str, '/', '\\');
|
|
||||||
|
|
||||||
File_Loading loading =
|
|
||||||
system_file_load_begin(fixed_str.str);
|
|
||||||
|
|
||||||
result.got_file = loading.exists;
|
|
||||||
|
|
||||||
if (loading.size > 0){
|
|
||||||
result.data.size = loading.size;
|
|
||||||
result.data.data = (byte*)Win32GetMemory(result.data.size);
|
|
||||||
|
|
||||||
if (!result.data.data){
|
|
||||||
system_file_load_end(loading, 0);
|
|
||||||
result = file_data_zero();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
if (!system_file_load_end(loading, (char*)result.data.data)){
|
|
||||||
Win32FreeMemory(result.data.data);
|
|
||||||
result = file_data_zero();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(allen): eliminate this
|
|
||||||
internal
|
|
||||||
Sys_Save_File_Sig(system_save_file){
|
|
||||||
return(system_file_save(filename, data, size));
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(allen): THIS system does not really work.
|
// TODO(allen): THIS system does not really work.
|
||||||
// I want to eliminate them both entirely and find a better
|
// I want to eliminate them both entirely and find a better
|
||||||
// way to track the dirty state of files. It shouldn't be too
|
// way to track the dirty state of files. It shouldn't be too
|
||||||
|
@ -2103,7 +2069,7 @@ int main(int argc, char **argv){
|
||||||
if (file->flags & FEx_Save){
|
if (file->flags & FEx_Save){
|
||||||
Assert((file->flags & FEx_Request) == 0);
|
Assert((file->flags & FEx_Request) == 0);
|
||||||
file->flags &= (~FEx_Save);
|
file->flags &= (~FEx_Save);
|
||||||
if (system_save_file(file->filename, (char*)file->data, file->size)){
|
if (sysshared_save_file(file->filename, (char*)file->data, file->size)){
|
||||||
file->flags |= FEx_Save_Complete;
|
file->flags |= FEx_Save_Complete;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -2115,7 +2081,7 @@ int main(int argc, char **argv){
|
||||||
if (file->flags & FEx_Request){
|
if (file->flags & FEx_Request){
|
||||||
Assert((file->flags & FEx_Save) == 0);
|
Assert((file->flags & FEx_Save) == 0);
|
||||||
file->flags &= (~FEx_Request);
|
file->flags &= (~FEx_Request);
|
||||||
File_Data sysfile = system_load_file(file->filename);
|
File_Data sysfile = sysshared_load_file(file->filename);
|
||||||
if (!sysfile.got_file){
|
if (!sysfile.got_file){
|
||||||
file->flags |= FEx_Not_Exist;
|
file->flags |= FEx_Not_Exist;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue