a4.0.12 ready
							parent
							
								
									39be882693
								
							
						
					
					
						commit
						c221d97f13
					
				| 
						 | 
					@ -124,87 +124,10 @@ CUSTOM_COMMAND_SIG(seek_whitespace_down_end_line){
 | 
				
			||||||
    exec_command(app, seek_end_of_line);
 | 
					    exec_command(app, seek_end_of_line);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool32 enable_code_wrapping = 1;
 | 
					 | 
				
			||||||
static int32_t default_wrap_width = 672;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
HOOK_SIG(my_start){
 | 
					HOOK_SIG(my_start){
 | 
				
			||||||
    init_memory(app);
 | 
					    init_memory(app);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    {
 | 
					    process_config_file(app);
 | 
				
			||||||
        FILE *file = fopen("config.4coder", "rb");
 | 
					 | 
				
			||||||
        if (file){
 | 
					 | 
				
			||||||
            Temp_Memory temp = begin_temp_memory(&global_part);
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            fseek(file, 0, SEEK_END);
 | 
					 | 
				
			||||||
            int32_t size = ftell(file);
 | 
					 | 
				
			||||||
            char *mem = (char*)push_block(&global_part, size+1);
 | 
					 | 
				
			||||||
            fseek(file, 0, SEEK_SET);
 | 
					 | 
				
			||||||
            fread(mem, 1, size+1, file);
 | 
					 | 
				
			||||||
            fclose(file);
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            Cpp_Token_Array array;
 | 
					 | 
				
			||||||
            array.count = 0;
 | 
					 | 
				
			||||||
            array.max_count = (1 << 20)/sizeof(Cpp_Token);
 | 
					 | 
				
			||||||
            array.tokens = push_array(&global_part, Cpp_Token, array.max_count);
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            Cpp_Lex_Data S = cpp_lex_data_init();
 | 
					 | 
				
			||||||
            Cpp_Lex_Result result = cpp_lex_step(&S, mem, size, HAS_NULL_TERM, &array, NO_OUT_LIMIT);
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            if (result == LexResult_Finished){
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                for (int32_t i = 0; i < array.count; ++i){
 | 
					 | 
				
			||||||
                int32_t read_setting_failed = 1;
 | 
					 | 
				
			||||||
                    Cpp_Token id_token = array.tokens[i];
 | 
					 | 
				
			||||||
                if (id_token.type == CPP_TOKEN_IDENTIFIER){
 | 
					 | 
				
			||||||
                    ++i;
 | 
					 | 
				
			||||||
                    if (i < array.count){
 | 
					 | 
				
			||||||
                    Cpp_Token eq_token = array.tokens[i];
 | 
					 | 
				
			||||||
                        if (eq_token.type == CPP_TOKEN_EQEQ){
 | 
					 | 
				
			||||||
                            ++i;
 | 
					 | 
				
			||||||
                            if (i < array.count){
 | 
					 | 
				
			||||||
                                Cpp_Token val_token = array.tokens[i];
 | 
					 | 
				
			||||||
                                {
 | 
					 | 
				
			||||||
                                ++i;
 | 
					 | 
				
			||||||
                                    if (i < array.count){
 | 
					 | 
				
			||||||
                                        Cpp_Token semicolon_token = array.tokens[i];
 | 
					 | 
				
			||||||
                                        if (semicolon_token.type == CPP_TOKEN_SEMICOLON){
 | 
					 | 
				
			||||||
                                            read_setting_failed = 0;
 | 
					 | 
				
			||||||
                                            
 | 
					 | 
				
			||||||
                                            String id = make_string(mem + id_token.start, id_token.size);
 | 
					 | 
				
			||||||
                                            
 | 
					 | 
				
			||||||
                                            if (match(id, "enable_code_wrapping")){
 | 
					 | 
				
			||||||
                                                if (val_token.type == CPP_TOKEN_BOOLEAN_CONSTANT){
 | 
					 | 
				
			||||||
                                                    String val = make_string(mem + val_token.start, val_token.size);
 | 
					 | 
				
			||||||
                                                    if (val.str[0] == 't'){
 | 
					 | 
				
			||||||
                                                        enable_code_wrapping = 1;
 | 
					 | 
				
			||||||
                                                    }
 | 
					 | 
				
			||||||
                                                    else{
 | 
					 | 
				
			||||||
                                                        enable_code_wrapping = 0;
 | 
					 | 
				
			||||||
                                                    }
 | 
					 | 
				
			||||||
                                                }
 | 
					 | 
				
			||||||
                                                }
 | 
					 | 
				
			||||||
                                        }
 | 
					 | 
				
			||||||
                                }
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                if (read_setting_failed){
 | 
					 | 
				
			||||||
                    for (; i < array.count; ++i){
 | 
					 | 
				
			||||||
                        Cpp_Token token = array.tokens[i];
 | 
					 | 
				
			||||||
                        if (token.type == CPP_TOKEN_SEMICOLON){
 | 
					 | 
				
			||||||
                            break;
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            end_temp_memory(temp);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    change_theme(app, literal("4coder"));
 | 
					    change_theme(app, literal("4coder"));
 | 
				
			||||||
    change_font(app, literal("Liberation Sans"), true);
 | 
					    change_font(app, literal("Liberation Sans"), true);
 | 
				
			||||||
| 
						 | 
					@ -297,15 +220,25 @@ OPEN_FILE_HOOK_SIG(my_file_settings){
 | 
				
			||||||
        wrap_lines = 0;
 | 
					        wrap_lines = 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    buffer_set_setting(app, &buffer, BufferSetting_Lex, treat_as_code);
 | 
					 | 
				
			||||||
    buffer_set_setting(app, &buffer, BufferSetting_WrapLine, wrap_lines);
 | 
					 | 
				
			||||||
    buffer_set_setting(app, &buffer, BufferSetting_WrapPosition, default_wrap_width);
 | 
					    buffer_set_setting(app, &buffer, BufferSetting_WrapPosition, default_wrap_width);
 | 
				
			||||||
    buffer_set_setting(app, &buffer, BufferSetting_MapID, (treat_as_code)?((int32_t)my_code_map):((int32_t)mapid_file));
 | 
					    buffer_set_setting(app, &buffer, BufferSetting_MapID, (treat_as_code)?((int32_t)my_code_map):((int32_t)mapid_file));
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (treat_as_code && enable_code_wrapping && buffer.size < (1 << 20)){
 | 
					    if (treat_as_code && enable_code_wrapping && buffer.size < (1 << 20)){
 | 
				
			||||||
 | 
					        // NOTE(allen|a4.0.12): There is a little bit of grossness going on here.
 | 
				
			||||||
 | 
					        // If we set BufferSetting_Lex to true, it will launch a lexing job.
 | 
				
			||||||
 | 
					        // If a lexing job is active when we set BufferSetting_VirtualWhitespace on
 | 
				
			||||||
 | 
					        //  that call can fail.
 | 
				
			||||||
 | 
					        // Unfortunantely without tokens virtual whitespace doesn't really make sense.
 | 
				
			||||||
 | 
					        // So for now I have it automatically turning on lexing when virtual whitespace
 | 
				
			||||||
 | 
					        //  is turned on.
 | 
				
			||||||
 | 
					        // Cleaning some of that up is a goal for future versions.
 | 
				
			||||||
        buffer_set_setting(app, &buffer, BufferSetting_WrapLine, 1);
 | 
					        buffer_set_setting(app, &buffer, BufferSetting_WrapLine, 1);
 | 
				
			||||||
        buffer_set_setting(app, &buffer, BufferSetting_VirtualWhitespace, 1);
 | 
					        buffer_set_setting(app, &buffer, BufferSetting_VirtualWhitespace, 1);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    else{
 | 
				
			||||||
 | 
					        buffer_set_setting(app, &buffer, BufferSetting_WrapLine, wrap_lines);
 | 
				
			||||||
 | 
					        buffer_set_setting(app, &buffer, BufferSetting_Lex, treat_as_code);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // no meaning for return
 | 
					    // no meaning for return
 | 
				
			||||||
    return(0);
 | 
					    return(0);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3486,5 +3486,99 @@ COMMAND_CALLER_HOOK(default_command_caller){
 | 
				
			||||||
    return(0);
 | 
					    return(0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// NOTE(allen|a4.0.12): A primordial config system (actually really hate this but it seems best)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static bool32 enable_code_wrapping = 1;
 | 
				
			||||||
 | 
					static int32_t default_wrap_width = 672;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					process_config_file(Application_Links *app){
 | 
				
			||||||
 | 
					    FILE *file = fopen("config.4coder", "rb");
 | 
				
			||||||
 | 
					    if (file){
 | 
				
			||||||
 | 
					        Temp_Memory temp = begin_temp_memory(&global_part);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        fseek(file, 0, SEEK_END);
 | 
				
			||||||
 | 
					        int32_t size = ftell(file);
 | 
				
			||||||
 | 
					        char *mem = (char*)push_block(&global_part, size+1);
 | 
				
			||||||
 | 
					        fseek(file, 0, SEEK_SET);
 | 
				
			||||||
 | 
					        fread(mem, 1, size, file);
 | 
				
			||||||
 | 
					        mem[size] = 0;
 | 
				
			||||||
 | 
					        fclose(file);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Cpp_Token_Array array;
 | 
				
			||||||
 | 
					        array.count = 0;
 | 
				
			||||||
 | 
					        array.max_count = (1 << 20)/sizeof(Cpp_Token);
 | 
				
			||||||
 | 
					        array.tokens = push_array(&global_part, Cpp_Token, array.max_count);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Cpp_Lex_Data S = cpp_lex_data_init();
 | 
				
			||||||
 | 
					        Cpp_Lex_Result result = cpp_lex_step(&S, mem, size+1, HAS_NULL_TERM, &array, NO_OUT_LIMIT);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if (result == LexResult_Finished){
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            for (int32_t i = 0; i < array.count; ++i){
 | 
				
			||||||
 | 
					                int32_t read_setting_failed = 1;
 | 
				
			||||||
 | 
					                Cpp_Token id_token = array.tokens[i];
 | 
				
			||||||
 | 
					                if (id_token.type == CPP_TOKEN_IDENTIFIER){
 | 
				
			||||||
 | 
					                    ++i;
 | 
				
			||||||
 | 
					                    if (i < array.count){
 | 
				
			||||||
 | 
					                        Cpp_Token eq_token = array.tokens[i];
 | 
				
			||||||
 | 
					                        if (eq_token.type == CPP_TOKEN_EQ){
 | 
				
			||||||
 | 
					                            ++i;
 | 
				
			||||||
 | 
					                            if (i < array.count){
 | 
				
			||||||
 | 
					                                Cpp_Token val_token = array.tokens[i];
 | 
				
			||||||
 | 
					                                {
 | 
				
			||||||
 | 
					                                    ++i;
 | 
				
			||||||
 | 
					                                    if (i < array.count){
 | 
				
			||||||
 | 
					                                        Cpp_Token semicolon_token = array.tokens[i];
 | 
				
			||||||
 | 
					                                        if (semicolon_token.type == CPP_TOKEN_SEMICOLON){
 | 
				
			||||||
 | 
					                                            read_setting_failed = 0;
 | 
				
			||||||
 | 
					                                            
 | 
				
			||||||
 | 
					                                            String id = make_string(mem + id_token.start, id_token.size);
 | 
				
			||||||
 | 
					                                            
 | 
				
			||||||
 | 
					                                            if (match(id, "enable_code_wrapping")){
 | 
				
			||||||
 | 
					                                                if (val_token.type == CPP_TOKEN_BOOLEAN_CONSTANT){
 | 
				
			||||||
 | 
					                                                    String val = make_string(mem + val_token.start, val_token.size);
 | 
				
			||||||
 | 
					                                                    if (val.str[0] == 't'){
 | 
				
			||||||
 | 
					                                                        enable_code_wrapping = 1;
 | 
				
			||||||
 | 
					                                                    }
 | 
				
			||||||
 | 
					                                                    else{
 | 
				
			||||||
 | 
					                                                        enable_code_wrapping = 0;
 | 
				
			||||||
 | 
					                                                    }
 | 
				
			||||||
 | 
					                                                }
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					                                            else if (match(id, "default_wrap_width")){
 | 
				
			||||||
 | 
					                                                if (val_token.type == CPP_TOKEN_INTEGER_CONSTANT){
 | 
				
			||||||
 | 
					                                                    String val = make_string(mem + val_token.start, val_token.size);
 | 
				
			||||||
 | 
					                                                    default_wrap_width = str_to_int(val);
 | 
				
			||||||
 | 
					                                                }
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					                                        }
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                if (read_setting_failed){
 | 
				
			||||||
 | 
					                    for (; i < array.count; ++i){
 | 
				
			||||||
 | 
					                        Cpp_Token token = array.tokens[i];
 | 
				
			||||||
 | 
					                        if (token.type == CPP_TOKEN_SEMICOLON){
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        end_temp_memory(temp);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else{
 | 
				
			||||||
 | 
					        print_message(app, literal("Did not find config.4coder, using default settings"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								4ed.cpp
								
								
								
								
							
							
						
						
									
										11
									
								
								4ed.cpp
								
								
								
								
							| 
						 | 
					@ -2583,6 +2583,17 @@ App_Step_Sig(app_step){
 | 
				
			||||||
                            "and if you load README.txt you'll find all the key combos there are.\n"
 | 
					                            "and if you load README.txt you'll find all the key combos there are.\n"
 | 
				
			||||||
                            "\n"
 | 
					                            "\n"
 | 
				
			||||||
                            "Newest features:\n"
 | 
					                            "Newest features:\n"
 | 
				
			||||||
 | 
					                            "-Text files wrap lines at whitespace when possible\n"
 | 
				
			||||||
 | 
					                            "-New code wrapping feature is on by default\n"
 | 
				
			||||||
 | 
					                            "-Introduced a 'config.4coder' for setting several wrapping options:"
 | 
				
			||||||
 | 
					                            "  enable_code_wrapping: set to false if you want the text like behavior\n"
 | 
				
			||||||
 | 
					                            "  default_wrap_width: the wrap width to set in new files\n"
 | 
				
			||||||
 | 
					                            "-<ctrl 2> decrease the current buffer's wrap width\n"
 | 
				
			||||||
 | 
					                            "-<ctrl 3> increase the current buffer's wrap width\n"
 | 
				
			||||||
 | 
					                            "-In the customization layer new settings for the buffer are exposed dealing with wrapping\n"
 | 
				
			||||||
 | 
					                            "-In the customization layer there is a call for setting what keys the GUI should use\n"
 | 
				
			||||||
 | 
					                            "\n"
 | 
				
			||||||
 | 
					                            "New in alpha 4.0.11:\n"
 | 
				
			||||||
                            "-The commands for going to next error, previous error, etc now work\n"
 | 
					                            "-The commands for going to next error, previous error, etc now work\n"
 | 
				
			||||||
                            "  on any buffer with jump locations including *search*\n"
 | 
					                            "  on any buffer with jump locations including *search*\n"
 | 
				
			||||||
                            "-4coder now supports proper, borderless, fullscreen with the flag -F\n"
 | 
					                            "-4coder now supports proper, borderless, fullscreen with the flag -F\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -860,7 +860,10 @@ DOC_SEE(Buffer_Setting_ID)
 | 
				
			||||||
                b32 full_remeasure = 0;
 | 
					                b32 full_remeasure = 0;
 | 
				
			||||||
                if (value){
 | 
					                if (value){
 | 
				
			||||||
                    if (!file->settings.virtual_white){
 | 
					                    if (!file->settings.virtual_white){
 | 
				
			||||||
                        if (file->settings.tokens_exist && !file->state.still_lexing){
 | 
					                        if (!file->settings.tokens_exist){
 | 
				
			||||||
 | 
					                            file_first_lex_serial(system, &models->mem, file);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        if (!file->state.still_lexing){
 | 
				
			||||||
                        file->settings.virtual_white = 1;
 | 
					                        file->settings.virtual_white = 1;
 | 
				
			||||||
                        full_remeasure = 1;
 | 
					                        full_remeasure = 1;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								build.c
								
								
								
								
							
							
						
						
									
										3
									
								
								build.c
								
								
								
								
							| 
						 | 
					@ -720,6 +720,7 @@ standard_build(char *cdir, uint32_t flags){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PACK_DIR "../distributions"
 | 
					#define PACK_DIR "../distributions"
 | 
				
			||||||
#define PACK_DATA_DIR "../data/dist_files"
 | 
					#define PACK_DATA_DIR "../data/dist_files"
 | 
				
			||||||
 | 
					#define DATA_DIR "../data/test"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PACK_ALPHA_PAR_DIR "../current_dist"
 | 
					#define PACK_ALPHA_PAR_DIR "../current_dist"
 | 
				
			||||||
#define PACK_SUPER_PAR_DIR "../current_dist_super"
 | 
					#define PACK_SUPER_PAR_DIR "../current_dist_super"
 | 
				
			||||||
| 
						 | 
					@ -785,6 +786,7 @@ package(char *cdir){
 | 
				
			||||||
    copy_all (PACK_DATA_DIR"/*", PACK_ALPHA_DIR);
 | 
					    copy_all (PACK_DATA_DIR"/*", PACK_ALPHA_DIR);
 | 
				
			||||||
    copy_file(0, "README.txt", PACK_ALPHA_DIR, 0);
 | 
					    copy_file(0, "README.txt", PACK_ALPHA_DIR, 0);
 | 
				
			||||||
    copy_file(0, "TODO.txt", PACK_ALPHA_DIR, 0);
 | 
					    copy_file(0, "TODO.txt", PACK_ALPHA_DIR, 0);
 | 
				
			||||||
 | 
					    copy_file(DATA_DIR, "config.4coder", PACK_ALPHA_DIR, 0);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    get_4coder_dist_name(&str, 1, "alpha", "zip");
 | 
					    get_4coder_dist_name(&str, 1, "alpha", "zip");
 | 
				
			||||||
    zip(PACK_ALPHA_PAR_DIR, "4coder", str.str);
 | 
					    zip(PACK_ALPHA_PAR_DIR, "4coder", str.str);
 | 
				
			||||||
| 
						 | 
					@ -803,6 +805,7 @@ package(char *cdir){
 | 
				
			||||||
    copy_all (PACK_DATA_DIR"/*", PACK_SUPER_DIR);
 | 
					    copy_all (PACK_DATA_DIR"/*", PACK_SUPER_DIR);
 | 
				
			||||||
    copy_file(0, "README.txt", PACK_SUPER_DIR, 0);
 | 
					    copy_file(0, "README.txt", PACK_SUPER_DIR, 0);
 | 
				
			||||||
    copy_file(0, "TODO.txt", PACK_SUPER_DIR, 0);
 | 
					    copy_file(0, "TODO.txt", PACK_SUPER_DIR, 0);
 | 
				
			||||||
 | 
					    copy_file(DATA_DIR, "config.4coder", PACK_SUPER_DIR, 0);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    copy_all ("4coder_*.h", PACK_SUPER_DIR);
 | 
					    copy_all ("4coder_*.h", PACK_SUPER_DIR);
 | 
				
			||||||
    copy_all ("4coder_*.cpp", PACK_SUPER_DIR);
 | 
					    copy_all ("4coder_*.cpp", PACK_SUPER_DIR);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -609,33 +609,14 @@ CUSTOM_COMMAND_SIG(write_explicit_enum_values){
 | 
				
			||||||
    end_temp_memory(temp);
 | 
					    end_temp_memory(temp);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO(allen): Query theme settings
 | 
					 | 
				
			||||||
#if 0
 | 
					 | 
				
			||||||
CUSTOM_COMMAND_SIG(save_theme_settings){
 | 
					 | 
				
			||||||
    FILE *file = fopen(".4coder_settings", "rb");
 | 
					 | 
				
			||||||
    char theme_name[128];
 | 
					 | 
				
			||||||
    char font_name[128];
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    fscanf(file, "%*128s %*128s", theme_name, font_name);
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if (file){
 | 
					 | 
				
			||||||
        replace_char(theme_name, '#', ' ');
 | 
					 | 
				
			||||||
        replace_char(font_name, '#', ' ');
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        fclose(file);
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        change_theme(app, theme_name, strlen(theme_name));
 | 
					 | 
				
			||||||
        change_font(app, font_name, strlen(font_name));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SETTINGS_FILE ".4coder_settings"
 | 
					#define SETTINGS_FILE ".4coder_settings"
 | 
				
			||||||
HOOK_SIG(experimental_start){
 | 
					HOOK_SIG(experimental_start){
 | 
				
			||||||
    init_memory(app);
 | 
					    init_memory(app);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    process_config_file(app);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    char theme_name[128];
 | 
					    char theme_name[128];
 | 
				
			||||||
    char font_name[128];
 | 
					    char font_name[128];
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					@ -664,13 +645,13 @@ HOOK_SIG(experimental_start){
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        change_theme(app, theme_name, theme_len);
 | 
					        change_theme(app, theme_name, theme_len);
 | 
				
			||||||
        change_font(app, font_name, font_len, true);
 | 
					        change_font(app, font_name, font_len, true);
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        exec_command(app, open_panel_vsplit);
 | 
					 | 
				
			||||||
        exec_command(app, hide_scrollbar);
 | 
					 | 
				
			||||||
        exec_command(app, change_active_panel);
 | 
					 | 
				
			||||||
        exec_command(app, hide_scrollbar);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    exec_command(app, open_panel_vsplit);
 | 
				
			||||||
 | 
					    exec_command(app, hide_scrollbar);
 | 
				
			||||||
 | 
					    exec_command(app, change_active_panel);
 | 
				
			||||||
 | 
					    exec_command(app, hide_scrollbar);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    return(0);
 | 
					    return(0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue