diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 3e7a970e..a778ed67 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -12326,10 +12326,17 @@ rd_frame(void) case RD_CmdKind_OpenUser: case RD_CmdKind_OpenProject: { + // TODO(rjf): dear lord this is so overcomplicated, this needs to be collapsed down & simplified ASAP + B32 load_cfg[RD_CfgSrc_COUNT] = {0}; + RD_CfgSrc cfg_src = (RD_CfgSrc)0; for(RD_CfgSrc src = (RD_CfgSrc)0; src < RD_CfgSrc_COUNT; src = (RD_CfgSrc)(src+1)) { load_cfg[src] = (kind == rd_cfg_src_load_cmd_kind_table[src]); + if(load_cfg[src]) + { + cfg_src = src; + } } //- rjf: normalize path @@ -12347,7 +12354,7 @@ rd_frame(void) //- rjf: investigate file path/data B32 file_is_okay = 1; - if(props.modified != 0 && data.size != 0 && !str8_match(str8_prefix(data, 9), str8_lit("// raddbg"), 0)) + if(props.modified != 0 && data.size != 0 && !str8_match(str8_prefix(data, 9), str8_lit("// raddbg"), 0) && rd_state->cfg_cached_timestamp[cfg_src] != 0) { file_is_okay = 0; } @@ -12387,7 +12394,7 @@ rd_frame(void) OS_Handle file = os_file_open(OS_AccessFlag_ShareRead|OS_AccessFlag_Read, path); FileProperties props = os_properties_from_file(file); String8 data = os_string_from_file_range(scratch.arena, file, r1u64(0, props.size)); - if(data.size != 0) + if(props.modified != 0) { cfg_data[src] = data; cfg_timestamps[src] = props.modified; diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 9393ca34..5bb7e221 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -3,19 +3,15 @@ //////////////////////////////// //~ rjf: 0.9.12 TODO notes -// -// [ ] remainder of @msgs pass: -// [ ] new `restart processes` path -// [ ] remainder of @msgs // // [ ] post-@msgs TODOs: // [ ] ensure the following issues are resolved with this new pass: -// [ ] empty user file causing failure to launch // [ ] debugger readme pass //////////////////////////////// //~ rjf: post-0.9.12 TODO notes // +// [ ] linked list view rule // [ ] investigate false exceptions, being reported while stepping through init code // [ ] output: add option for scroll-to-bottom - ensure this shows up in universal ctx menu // [ ] universal ctx menu address/watch options; e.g. watch -> memory; watch -> add watch @@ -521,6 +517,10 @@ // [x] `switch` replacement (recent files history) // [x] resolving name as file or #include // [x] entity listers - kill-specific-process, etc. +// [x] remainder of @msgs pass: +// [x] new `restart processes` path +// [x] remainder of @msgs +// [x] empty user file causing failure to launch //////////////////////////////// //~ rjf: Build Options diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index edb3ec4f..0a186c41 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -2376,9 +2376,11 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo RD_Font(RD_FontSlot_Code) ui_labelf("only:(member_1 ... member_n)"); UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) ui_label_multiline(max_width, str8_lit("Specifies that only the specified members should appear in struct, union, or class evaluations.")); ui_spacer(ui_em(1.5f, 1)); +#if 0 // TODO(rjf): disabling until post-0.9.12 RD_Font(RD_FontSlot_Code) ui_labelf("list:(next_link_member_name)"); UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) ui_label_multiline(max_width, str8_lit("Specifies that some struct, union, or class forms the top of a linked list, with next_link_member_name being the member which points at the next element in the list.")); ui_spacer(ui_em(1.5f, 1)); +#endif RD_Font(RD_FontSlot_Code) ui_labelf("dec"); UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) ui_label_multiline(max_width, str8_lit("Specifies that all integral evaluations should appear in base-10 form.")); ui_spacer(ui_em(1.5f, 1)); @@ -3513,9 +3515,10 @@ RD_VIEW_RULE_UI_FUNCTION_DEF(getting_started) UI_PrefWidth(ui_text_dim(10, 1)) UI_TextAlignment(UI_TextAlign_Center) UI_Padding(ui_pct(1, 0)) + RD_Palette(RD_PaletteCode_Floating) { ui_labelf("use"); - UI_Flags(UI_BoxFlag_DrawBorder) UI_TextAlignment(UI_TextAlign_Center) rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_RunCommand].string); + UI_TextAlignment(UI_TextAlign_Center) rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_RunCommand].string); ui_labelf("to open command menu"); } }