added new file hook; fixed up linux save-to-name bug; fixed up packaging bug
parent
a778d6c8fc
commit
18d19fb9fa
|
@ -117,6 +117,12 @@ OPEN_FILE_HOOK_SIG(default_file_settings){
|
|||
return(0);
|
||||
}
|
||||
|
||||
OPEN_FILE_HOOK_SIG(default_new_file){
|
||||
Buffer_Summary buffer = get_buffer(app, buffer_id, AccessOpen);
|
||||
char str[] = "/*\nNew File\n*/\n\n\n";
|
||||
buffer_replace_range(app, &buffer, 0, 0, str, sizeof(str)-1);
|
||||
}
|
||||
|
||||
OPEN_FILE_HOOK_SIG(default_file_save){
|
||||
uint32_t access = AccessAll;
|
||||
Buffer_Summary buffer = get_buffer(app, buffer_id, access);
|
||||
|
@ -242,6 +248,7 @@ set_all_default_hooks(Bind_Helper *context){
|
|||
set_hook(context, hook_view_size_change, default_view_adjust);
|
||||
|
||||
set_open_file_hook(context, default_file_settings);
|
||||
set_new_file_hook(context, default_new_file);
|
||||
set_save_file_hook(context, default_file_save);
|
||||
set_command_caller(context, default_command_caller);
|
||||
set_input_filter(context, default_suppress_mouse_filter);
|
||||
|
|
50
4ed.cpp
50
4ed.cpp
|
@ -284,13 +284,12 @@ COMMAND_DECL(null){
|
|||
AllowLocal(command);
|
||||
}
|
||||
|
||||
// TODO(allen): FIX THIS SHIT!
|
||||
COMMAND_DECL(undo){
|
||||
USE_MODELS(models);
|
||||
REQ_OPEN_VIEW(view);
|
||||
REQ_FILE_HISTORY(file, view);
|
||||
|
||||
view_undo(system, models, view);
|
||||
view_undo_redo(system, models, view, &file->state.undo.undo, ED_UNDO);
|
||||
|
||||
Assert(file->state.undo.undo.size >= 0);
|
||||
}
|
||||
|
@ -300,7 +299,7 @@ COMMAND_DECL(redo){
|
|||
REQ_OPEN_VIEW(view);
|
||||
REQ_FILE_HISTORY(file, view);
|
||||
|
||||
view_redo(system, models, view);
|
||||
view_undo_redo(system, models, view, &file->state.undo.redo, ED_REDO);
|
||||
|
||||
Assert(file->state.undo.undo.size >= 0);
|
||||
}
|
||||
|
@ -308,17 +307,13 @@ COMMAND_DECL(redo){
|
|||
COMMAND_DECL(interactive_new){
|
||||
USE_VIEW(view);
|
||||
|
||||
view_show_interactive(system, view,
|
||||
IAct_New, IInt_Sys_File_List,
|
||||
make_lit_string("New: "));
|
||||
view_show_interactive(system, view, IAct_New, IInt_Sys_File_List, make_lit_string("New: "));
|
||||
}
|
||||
|
||||
COMMAND_DECL(interactive_open){
|
||||
USE_VIEW(view);
|
||||
|
||||
view_show_interactive(system, view,
|
||||
IAct_Open, IInt_Sys_File_List,
|
||||
make_lit_string("Open: "));
|
||||
view_show_interactive(system, view, IAct_Open, IInt_Sys_File_List,make_lit_string("Open: "));
|
||||
}
|
||||
|
||||
// TODO(allen): Improvements to reopen
|
||||
|
@ -1282,6 +1277,8 @@ App_Init_Sig(app_init){
|
|||
models->hook_open_file = 0;
|
||||
models->hook_new_file = 0;
|
||||
models->hook_save_file = 0;
|
||||
models->command_caller = 0;
|
||||
models->input_filter = 0;
|
||||
|
||||
setup_command_table();
|
||||
|
||||
|
@ -1419,28 +1416,34 @@ App_Init_Sig(app_init){
|
|||
else{
|
||||
switch (hook_id){
|
||||
case special_hook_open_file:
|
||||
models->hook_open_file = (Open_File_Hook_Function*)unit->hook.func;
|
||||
break;
|
||||
{
|
||||
models->hook_open_file = (Open_File_Hook_Function*)unit->hook.func;
|
||||
}break;
|
||||
|
||||
case special_hook_new_file:
|
||||
models->hook_new_file = (Open_File_Hook_Function*)unit->hook.func;
|
||||
break;
|
||||
{
|
||||
models->hook_new_file = (Open_File_Hook_Function*)unit->hook.func;
|
||||
}break;
|
||||
|
||||
case special_hook_save_file:
|
||||
models->hook_save_file = (Open_File_Hook_Function*)unit->hook.func;
|
||||
break;
|
||||
{
|
||||
models->hook_save_file = (Open_File_Hook_Function*)unit->hook.func;
|
||||
}break;
|
||||
|
||||
case special_hook_command_caller:
|
||||
models->command_caller = (Command_Caller_Hook_Function*)unit->hook.func;
|
||||
break;
|
||||
{
|
||||
models->command_caller = (Command_Caller_Hook_Function*)unit->hook.func;
|
||||
}break;
|
||||
|
||||
case special_hook_scroll_rule:
|
||||
models->scroll_rule = (Scroll_Rule_Function*)unit->hook.func;
|
||||
break;
|
||||
{
|
||||
models->scroll_rule = (Scroll_Rule_Function*)unit->hook.func;
|
||||
}break;
|
||||
|
||||
case special_hook_input_filter:
|
||||
models->input_filter = (Input_Filter_Function*)unit->hook.func;
|
||||
break;
|
||||
{
|
||||
models->input_filter = (Input_Filter_Function*)unit->hook.func;
|
||||
}break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1673,7 +1676,7 @@ App_Step_Sig(app_step){
|
|||
{
|
||||
b32 mem_too_small = 0;
|
||||
i32 size = 0;
|
||||
i32 buffer_size = (32 << 10);
|
||||
i32 buffer_size = KB(32);
|
||||
|
||||
Partition *part = &models->mem.part;
|
||||
Temp_Memory temp = begin_temp_memory(part);
|
||||
|
@ -1690,6 +1693,8 @@ App_Step_Sig(app_step){
|
|||
if (get_canon_name(system, &canon, make_string(buffer, size))){
|
||||
Editing_File *file = working_set_canon_contains(working_set, canon.name);
|
||||
if (file){
|
||||
Application_Links *app = &models->app_links;
|
||||
|
||||
if (file->state.ignore_behind_os == 0){
|
||||
file_mark_behind_os(file);
|
||||
}
|
||||
|
@ -2402,6 +2407,7 @@ App_Step_Sig(app_step){
|
|||
"Newest features:\n"
|
||||
"-New support for extended ascii input.\n"
|
||||
"-Extended ascii encoded in buffers as utf8.\n"
|
||||
"-The custom layer now has a 'markers' API for tracking buffer positions across changes.\n"
|
||||
"\n"
|
||||
"New in alpha 4.0.16:\n"
|
||||
"-<alt 2> If the current file is a C++ code file, this opens the matching header.\n"" If the current file is a C++ header, this opens the matching code file.\n"
|
||||
|
|
|
@ -790,7 +790,7 @@ save_file_to_name(System_Functions *system, Models *models, Editing_File *file,
|
|||
if (!using_actual_filename && file->canon.name.str != 0){
|
||||
char space[512];
|
||||
u32 length = str_size(filename);
|
||||
system->get_canonical(filename, length, space, sizeof(space));
|
||||
u32 canon_length = system->get_canonical(filename, length, space, sizeof(space));
|
||||
|
||||
char *source_path = file->canon.name.str;
|
||||
if (match(space, source_path)){
|
||||
|
@ -3458,9 +3458,7 @@ apply_history_edit(System_Functions *system, Models *models, Editing_File *file,
|
|||
view->edit_pos->mark = view->edit_pos->cursor.pos;
|
||||
|
||||
Style *style = main_style(models);
|
||||
view_post_paste_effect(view, 0.333f,
|
||||
step.edit.start, step.edit.len,
|
||||
style->main.undo_color);
|
||||
view_post_paste_effect(view, 0.333f, step.edit.start, step.edit.len, style->main.undo_color);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
@ -3469,9 +3467,7 @@ apply_history_edit(System_Functions *system, Models *models, Editing_File *file,
|
|||
}
|
||||
|
||||
internal void
|
||||
view_undo_redo(System_Functions *system,
|
||||
Models *models, View *view,
|
||||
Edit_Stack *stack, Edit_Type expected_type){
|
||||
view_undo_redo(System_Functions *system, Models *models, View *view, Edit_Stack *stack, Edit_Type expected_type){
|
||||
Editing_File *file = view->file_data.file;
|
||||
|
||||
Assert(file);
|
||||
|
@ -3479,89 +3475,11 @@ view_undo_redo(System_Functions *system,
|
|||
|
||||
if (stack->edit_count > 0){
|
||||
Edit_Step step = stack->edits[stack->edit_count-1];
|
||||
|
||||
Assert(step.type == expected_type);
|
||||
|
||||
apply_history_edit(system, models,
|
||||
file, view,
|
||||
stack, step, hist_normal);
|
||||
apply_history_edit(system, models, file, view, stack, step, hist_normal);
|
||||
}
|
||||
}
|
||||
|
||||
inline void
|
||||
view_undo(System_Functions *system, Models *models, View *view){
|
||||
view_undo_redo(system, models, view, &view->file_data.file->state.undo.undo, ED_UNDO);
|
||||
}
|
||||
|
||||
inline void
|
||||
view_redo(System_Functions *system, Models *models, View *view){
|
||||
view_undo_redo(system, models, view, &view->file_data.file->state.undo.redo, ED_REDO);
|
||||
}
|
||||
|
||||
inline u8*
|
||||
write_data(u8 *ptr, void *x, i32 size){
|
||||
memcpy(ptr, x, size);
|
||||
return (ptr + size);
|
||||
}
|
||||
|
||||
#define UseFileHistoryDump 0
|
||||
|
||||
#if UseFileHistoryDump
|
||||
internal void
|
||||
file_dump_history(System_Functions *system, Mem_Options *mem, Editing_File *file, char *filename){
|
||||
if (!file->state.undo.undo.edits) return;
|
||||
|
||||
i32 size = 0;
|
||||
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.undo.edit_count*sizeof(Edit_Step);
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.redo.edit_count*sizeof(Edit_Step);
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.history.edit_count*sizeof(Edit_Step);
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.children.edit_count*sizeof(Buffer_Edit);
|
||||
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.undo.size;
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.redo.size;
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.history.size;
|
||||
size += sizeof(i32);
|
||||
size += file->state.undo.children.size;
|
||||
|
||||
Partition *part = &mem->part;
|
||||
i32 remaining = partition_remaining(part);
|
||||
if (size < remaining){
|
||||
u8 *data, *curs;
|
||||
data = (u8*)part->base + part->pos;
|
||||
curs = data;
|
||||
curs = write_data(curs, &file->state.undo.undo.edit_count, 4);
|
||||
curs = write_data(curs, &file->state.undo.redo.edit_count, 4);
|
||||
curs = write_data(curs, &file->state.undo.history.edit_count, 4);
|
||||
curs = write_data(curs, &file->state.undo.children.edit_count, 4);
|
||||
curs = write_data(curs, &file->state.undo.undo.size, 4);
|
||||
curs = write_data(curs, &file->state.undo.redo.size, 4);
|
||||
curs = write_data(curs, &file->state.undo.history.size, 4);
|
||||
curs = write_data(curs, &file->state.undo.children.size, 4);
|
||||
|
||||
curs = write_data(curs, file->state.undo.undo.edits, sizeof(Edit_Step)*file->state.undo.undo.edit_count);
|
||||
curs = write_data(curs, file->state.undo.redo.edits, sizeof(Edit_Step)*file->state.undo.redo.edit_count);
|
||||
curs = write_data(curs, file->state.undo.history.edits, sizeof(Edit_Step)*file->state.undo.history.edit_count);
|
||||
curs = write_data(curs, file->state.undo.children.edits, sizeof(Buffer_Edit)*file->state.undo.children.edit_count);
|
||||
|
||||
curs = write_data(curs, file->state.undo.undo.strings, file->state.undo.undo.size);
|
||||
curs = write_data(curs, file->state.undo.redo.strings, file->state.undo.redo.size);
|
||||
curs = write_data(curs, file->state.undo.history.strings, file->state.undo.history.size);
|
||||
curs = write_data(curs, file->state.undo.children.strings, file->state.undo.children.size);
|
||||
|
||||
Assert((i32)(curs - data) == size);
|
||||
system->save_file(filename, data, size);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
internal void
|
||||
view_history_step(System_Functions *system, Models *models, View *view, History_Mode history_mode){
|
||||
Assert(history_mode != hist_normal);
|
||||
|
@ -3780,10 +3698,7 @@ view_show_GUI(View *view, View_UI ui){
|
|||
}
|
||||
|
||||
inline void
|
||||
view_show_interactive(System_Functions *system, View *view,
|
||||
Interactive_Action action,
|
||||
Interactive_Interaction interaction,
|
||||
String query){
|
||||
view_show_interactive(System_Functions *system, View *view, Interactive_Action action, Interactive_Interaction interaction, String query){
|
||||
|
||||
Models *models = view->persistent.models;
|
||||
|
||||
|
@ -3992,7 +3907,7 @@ kill_file_by_name(System_Functions *system, Models *models, String name){
|
|||
internal void
|
||||
save_file_by_name(System_Functions *system, Models *models, String name){
|
||||
Editing_File *file = working_set_name_contains(&models->working_set, name);
|
||||
if (file){
|
||||
if (file != 0){
|
||||
save_file(system, models, file);
|
||||
}
|
||||
}
|
||||
|
@ -4069,8 +3984,11 @@ interactive_view_complete(System_Functions *system, View *view, String dest, i32
|
|||
if (dest.size > 0 && !char_is_slash(dest.str[dest.size-1])){
|
||||
view_interactive_new_file(system, models, view, dest);
|
||||
view_show_file(view);
|
||||
}
|
||||
break;
|
||||
if (models->hook_new_file != 0){
|
||||
Editing_File *file = view->file_data.file;
|
||||
models->hook_new_file(&models->app_links, file->id.id);
|
||||
}
|
||||
}break;
|
||||
|
||||
case IAct_Switch:
|
||||
{
|
||||
|
@ -4079,14 +3997,12 @@ interactive_view_complete(System_Functions *system, View *view, String dest, i32
|
|||
view_set_file(view, file, models);
|
||||
}
|
||||
view_show_file(view);
|
||||
}
|
||||
break;
|
||||
}break;
|
||||
|
||||
case IAct_Kill:
|
||||
if (!interactive_try_kill_file_by_name(system, models, view, dest)){
|
||||
view_show_file(view);
|
||||
}
|
||||
break;
|
||||
}break;
|
||||
|
||||
case IAct_Sure_To_Close:
|
||||
switch (user_action){
|
||||
|
|
|
@ -10,8 +10,6 @@ SET FirstError=0
|
|||
SET BUILD_MODE=%1
|
||||
if "%BUILD_MODE%" == "" (SET BUILD_MODE="/DDEV_BUILD")
|
||||
|
||||
REM if "%BUILD_MODE%" == "/DDEV_BUILD_X86" (call "SETUP_CLX86")
|
||||
|
||||
pushd ..\build
|
||||
cl %OPTS% ..\code\meta\build.cpp /Zi /Febuild %BUILD_MODE%
|
||||
if %ERRORLEVEL% neq 0 (set FirstError=1)
|
||||
|
@ -23,6 +21,4 @@ if %ERRORLEVEL% neq 0 (set FirstError=1)
|
|||
|
||||
:END
|
||||
|
||||
REM if "%BUILD_MODE%" == "/DDEV_BUILD" (call "SETUP_CLX64")
|
||||
|
||||
call "ctime" -end 4ed_data.ctm %FirstError%
|
||||
|
|
7
build.sh
7
build.sh
|
@ -1,7 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
BUILD_MODE="$1"
|
||||
if [ -z "$BUILD_MODE" ]; then
|
||||
BUILD_MODE="-DDEV_BUILD"
|
||||
fi
|
||||
|
||||
WARNINGS="-Wno-write-strings"
|
||||
FLAGS="-D_GNU_SOURCE -fPIC -fpermissive -DDEV_BUILD"
|
||||
FLAGS="-D_GNU_SOURCE -fPIC -fpermissive $BUILD_MODE"
|
||||
|
||||
g++ $WARNINGS $FLAGS meta/build.cpp -g -o ../build/build
|
||||
../build/build
|
||||
|
|
|
@ -443,6 +443,12 @@ Sys_Get_Canonical_Sig(system_get_canonical){
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (max == 0){
|
||||
return 0;
|
||||
}
|
||||
|
||||
max -= 1;
|
||||
|
||||
while(read_p < filename + len){
|
||||
if(read_p == filename || read_p[0] == '/'){
|
||||
if(read_p[1] == '/'){
|
||||
|
@ -477,7 +483,9 @@ Sys_Get_Canonical_Sig(system_get_canonical){
|
|||
}
|
||||
#endif
|
||||
|
||||
return write_p - path;
|
||||
u32 length = (i32)(write_p - path);
|
||||
buffer[length] = 0;
|
||||
return(length);
|
||||
}
|
||||
|
||||
internal
|
||||
|
|
|
@ -426,6 +426,7 @@ copy_all(char *source, char *tag, char *folder){
|
|||
static void
|
||||
zip(char *parent, char *folder, char *file){
|
||||
Temp_Dir temp = pushdir(parent);
|
||||
printf("PARENT DIR: %s\n", parent);
|
||||
systemf("zip -r %s %s", file, folder);
|
||||
popdir(temp);
|
||||
}
|
||||
|
|
|
@ -239,6 +239,10 @@ build_cl(u32 flags, char *code_path, char *code_file, char *out_path, char *out_
|
|||
"-Wno-write-strings -D_GNU_SOURCE -fPIC " \
|
||||
"-fno-threadsafe-statics -pthread"
|
||||
|
||||
#define GCC_X86 "-m32"
|
||||
|
||||
#define GCC_X64 "-m64"
|
||||
|
||||
#define GCC_INCLUDES "-I../foreign -I../code"
|
||||
|
||||
#define GCC_SITE_INCLUDES "-I../../foreign -I../../code"
|
||||
|
@ -252,6 +256,13 @@ build_gcc(u32 flags, char *code_path, char *code_file, char *out_path, char *out
|
|||
Build_Line line;
|
||||
init_build_line(&line);
|
||||
|
||||
if (flags & X86){
|
||||
build_ap(line, GCC_X86);
|
||||
}
|
||||
else{
|
||||
build_ap(line, GCC_X64);
|
||||
}
|
||||
|
||||
if (flags & OPTS){
|
||||
build_ap(line, GCC_OPTS);
|
||||
}
|
||||
|
@ -510,7 +521,7 @@ get_4coder_dist_name(String *zip_file, i32 OS_specific, char *tier, char *ext){
|
|||
#if defined(IS_WINDOWS)
|
||||
append_sc(zip_file, "win-");
|
||||
#elif defined(IS_LINUX) && defined(IS_64BIT)
|
||||
append_sc(zip_file, "linux-64-");
|
||||
append_sc(zip_file, "linux-");
|
||||
#else
|
||||
#error No OS string for zips on this OS
|
||||
#endif
|
||||
|
@ -571,8 +582,8 @@ package(char *cdir){
|
|||
};
|
||||
|
||||
char *dest_par_dirs[] = {
|
||||
pack_alpha_dir,
|
||||
pack_alpha_x86_dir,
|
||||
pack_alpha_par_dir,
|
||||
pack_alpha_x86_par_dir,
|
||||
};
|
||||
|
||||
char *zip_dirs[] = {
|
||||
|
@ -629,8 +640,8 @@ package(char *cdir){
|
|||
};
|
||||
|
||||
char *dest_par_dirs[] = {
|
||||
pack_super_dir,
|
||||
pack_super_x86_dir,
|
||||
pack_super_par_dir,
|
||||
pack_super_x86_par_dir,
|
||||
};
|
||||
|
||||
char *zip_dirs[] = {
|
||||
|
|
|
@ -1375,6 +1375,7 @@ get_bindings(void *data, int32_t size){
|
|||
set_hook(context, hook_view_size_change, default_view_adjust);
|
||||
|
||||
set_open_file_hook(context, default_file_settings);
|
||||
set_new_file_hook(context, default_new_file);
|
||||
set_save_file_hook(context, default_file_save);
|
||||
set_input_filter(context, default_suppress_mouse_filter);
|
||||
set_command_caller(context, default_command_caller);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
extensions=".c.cpp.h.hpp.bat.sh";
|
||||
open_recursively=false;
|
||||
extensions=".c.cpp.h.hpp.bat.sh.4coder";
|
||||
open_recursively=true;
|
||||
|
||||
fkey_command_win[1] = {"echo build: x64 & build.bat", "*compilation*", true , true };
|
||||
fkey_command_win[2] = {"site\\build.bat", "*compilation*", true , true };
|
||||
|
@ -8,7 +8,8 @@ fkey_command_win[4] = {"echo build: x86 & build.bat /DDEV_BUILD_X86", "*compila
|
|||
fkey_command_win[5] = {"..\\misc\\run.bat", "*run*", false, false };
|
||||
fkey_command_win[12] = {"package.bat", "*package*", false, true };
|
||||
|
||||
fkey_command_linux[1] = {"./build.sh", "*compilation*", true , true };
|
||||
fkey_command_linux[1] = {"echo build: x64 & ./build.sh", "*compilation*", true , true };
|
||||
fkey_command_linux[2] = {"site/build.sh", "*compilation*", true , true };
|
||||
fkey_command_linux[5] = {"../build/4ed", "*run*", false, false};
|
||||
fkey_command_linux[12] = {"./package.sh", "*package*", false, true };
|
||||
fkey_command_linux[4] = {"echo build: x86 & ./build.sh -DDEV_BUILD_X86", "*compilation*", true, true };
|
||||
fkey_command_linux[5] = {"../build/4ed", "*run*", false, false};
|
||||
fkey_command_linux[12] = {"./package.sh", "*package*", false, true };
|
||||
|
|
|
@ -932,74 +932,9 @@ win32_canonical_ascii_name(char *src, u32 len, char *dst, u32 max){
|
|||
return(result);
|
||||
}
|
||||
|
||||
#if 0
|
||||
internal u32
|
||||
win32_canonical_ascii_name(char *src, u32 len, char *dst, u32 max){
|
||||
char *wrt = dst;
|
||||
char *wrt_stop = dst + max;
|
||||
char *src_stop = src + len;
|
||||
char c = 0;
|
||||
|
||||
if (len >= 2 && max > 0){
|
||||
c = src[0];
|
||||
if (c >= 'a' && c <= 'z'){
|
||||
c -= 'a' - 'A';
|
||||
}
|
||||
|
||||
if (c >= 'A' && c <= 'Z' && src[1] == ':'){
|
||||
*(wrt++) = c;
|
||||
if (wrt == wrt_stop) goto fail;
|
||||
*(wrt++) = ':';
|
||||
if (wrt == wrt_stop) goto fail;
|
||||
|
||||
src += 2;
|
||||
|
||||
for (; src < src_stop; ++src){
|
||||
c = src[0];
|
||||
|
||||
if (c >= 'A' && c <= 'Z'){
|
||||
c += 'a' - 'A';
|
||||
}
|
||||
|
||||
if (c == '/' || c == '\\'){
|
||||
c = '\\';
|
||||
if (wrt > dst && wrt[-1] == '\\'){
|
||||
continue;
|
||||
}
|
||||
else if (src[1] == '.'){
|
||||
if (src[2] == '\\' || src[2] == '/'){
|
||||
src += 1;
|
||||
}
|
||||
else if (src[2] == '.' && (src[3] == '\\' || src[3] == '/')){
|
||||
src += 2;
|
||||
while (wrt > dst && wrt[0] != '\\'){
|
||||
--wrt;
|
||||
}
|
||||
if (wrt == dst) goto fail;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*wrt = c;
|
||||
++wrt;
|
||||
if (wrt == wrt_stop) goto fail;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (0){
|
||||
fail:;
|
||||
wrt = dst;
|
||||
}
|
||||
|
||||
u32 result = (u32)(wrt - dst);
|
||||
return(result);
|
||||
}
|
||||
#endif
|
||||
|
||||
internal
|
||||
Sys_Get_Canonical_Sig(system_get_canonical){
|
||||
i32 result = win32_canonical_ascii_name(filename, len, buffer, max);
|
||||
u32 result = win32_canonical_ascii_name(filename, len, buffer, max);
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue