mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 05:48:40 +00: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);
|
Temp scratch = scratch_begin(&arena, 1);
|
||||||
|
|
||||||
// rjf: read string data
|
// rjf: read string data
|
||||||
|
#define EV_STRING_ITER_STRING_BUFFER_CAPACITY 4096
|
||||||
U64 string_memory_addr = ptr_data->value_eval.value.u64;
|
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);
|
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));
|
StaticAssert(sizeof(ptr_data->value_eval.value.u512.u8) <= EV_STRING_ITER_STRING_BUFFER_CAPACITY, ev_string_iter_value_string_buffer_size_check);
|
||||||
if(read_good)
|
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)
|
||||||
{
|
{
|
||||||
break;
|
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
|
// 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;
|
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,
|
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('Tags') tags: string,
|
||||||
@display_name('Value') value: @color @hex u32,
|
@display_name('Value') value: @color @hex u32,
|
||||||
@@ -403,6 +405,7 @@ RD_VocabTable:
|
|||||||
{
|
{
|
||||||
tab,
|
tab,
|
||||||
```
|
```
|
||||||
|
@expand_commands(duplicate_tab, close_tab)
|
||||||
x:
|
x:
|
||||||
{
|
{
|
||||||
@default(11) @display_name('Tab Font Size') @description("Controls the tab's font size.")
|
@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)
|
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) ||
|
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_Cfg && cfg != &rd_nil_cfg) ||
|
||||||
(cmd_kind_info->query.slot == RD_RegSlot_CtrlEntity && entity != &ctrl_entity_nil))
|
(cmd_kind_info->query.slot == RD_RegSlot_CtrlEntity && entity != &ctrl_entity_nil))
|
||||||
|
|||||||
Reference in New Issue
Block a user