mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-17 17:42:22 -07:00
fix single-line string value stringification; expand commands for tabs
This commit is contained in:
@@ -1775,18 +1775,27 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string)
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
|
||||
// rjf: read string data
|
||||
#define EV_STRING_ITER_STRING_BUFFER_CAPACITY 4096
|
||||
U64 string_memory_addr = ptr_data->value_eval.value.u64;
|
||||
U64 string_buffer_size = 4096;
|
||||
U64 string_buffer_size = EV_STRING_ITER_STRING_BUFFER_CAPACITY;
|
||||
U8 *string_buffer = push_array(scratch.arena, U8, string_buffer_size);
|
||||
for(U64 try_size = string_buffer_size; try_size >= 16; try_size /= 2)
|
||||
if(type_kind == E_TypeKind_Array && ptr_data->value_eval.irtree.mode == E_Mode_Value)
|
||||
{
|
||||
B32 read_good = e_space_read(eval.space, string_buffer, r1u64(string_memory_addr, string_memory_addr+try_size));
|
||||
if(read_good)
|
||||
{
|
||||
break;
|
||||
}
|
||||
StaticAssert(sizeof(ptr_data->value_eval.value.u512.u8) <= EV_STRING_ITER_STRING_BUFFER_CAPACITY, ev_string_iter_value_string_buffer_size_check);
|
||||
MemoryCopy(string_buffer, ptr_data->value_eval.value.u512.u8, sizeof(ptr_data->value_eval.value.u512.u8));
|
||||
}
|
||||
else
|
||||
{
|
||||
for(U64 try_size = string_buffer_size; try_size >= 16; try_size /= 2)
|
||||
{
|
||||
B32 read_good = e_space_read(eval.space, string_buffer, r1u64(string_memory_addr, string_memory_addr+try_size));
|
||||
if(read_good)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
string_buffer[string_buffer_size-1] = 0;
|
||||
}
|
||||
string_buffer[string_buffer_size-1] = 0;
|
||||
|
||||
// rjf: check element size - if non-U8, assume UTF-16 or UTF-32 based on type, and convert
|
||||
U64 element_size = ptr_data->direct_type->byte_size;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -364,7 +364,9 @@ RD_VocabTable:
|
||||
{
|
||||
theme_color,
|
||||
```
|
||||
@collection_commands(add_theme_color, fork_loaded_theme_colors, save_theme_colors) x:
|
||||
@collection_commands(add_theme_color, fork_loaded_theme_colors, save_theme_colors)
|
||||
@row_commands(remove_cfg)
|
||||
x:
|
||||
{
|
||||
@display_name('Tags') tags: string,
|
||||
@display_name('Value') value: @color @hex u32,
|
||||
@@ -403,6 +405,7 @@ RD_VocabTable:
|
||||
{
|
||||
tab,
|
||||
```
|
||||
@expand_commands(duplicate_tab, close_tab)
|
||||
x:
|
||||
{
|
||||
@default(11) @display_name('Tab Font Size') @description("Controls the tab's font size.")
|
||||
|
||||
@@ -5044,6 +5044,15 @@ rd_view_ui(Rng2F32 rect)
|
||||
}
|
||||
RD_RegsScope(.cfg = cfg->id, .ctrl_entity = entity->handle)
|
||||
{
|
||||
if(cfg != &rd_nil_cfg)
|
||||
{
|
||||
RD_PanelTree panels = rd_panel_tree_from_cfg(scratch.arena, cfg);
|
||||
RD_PanelNode *parent_panel_node = rd_panel_node_from_tree_cfg(panels.root, cfg->parent);
|
||||
if(parent_panel_node != &rd_nil_panel_node)
|
||||
{
|
||||
rd_regs()->tab = rd_regs()->view = cfg->id;
|
||||
}
|
||||
}
|
||||
if(!(cmd_kind_info->query.flags & RD_QueryFlag_Required) ||
|
||||
(cmd_kind_info->query.slot == RD_RegSlot_Cfg && cfg != &rd_nil_cfg) ||
|
||||
(cmd_kind_info->query.slot == RD_RegSlot_CtrlEntity && entity != &ctrl_entity_nil))
|
||||
|
||||
Reference in New Issue
Block a user