mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-11 08:08:08 +00:00
infer path style from top node
This commit is contained in:
committed by
Ryan Fleury
parent
de03edc69e
commit
1b868928ea
+35
-2
@@ -1229,13 +1229,46 @@ rb_thread_entry_point(void *p)
|
|||||||
RDI_SourceFile *null_inline_src_file = rdi_element_from_name_idx(rdi, SourceFiles, 0);
|
RDI_SourceFile *null_inline_src_file = rdi_element_from_name_idx(rdi, SourceFiles, 0);
|
||||||
if(inline_src_file && inline_src_file != null_inline_src_file)
|
if(inline_src_file && inline_src_file != null_inline_src_file)
|
||||||
{
|
{
|
||||||
String8 path = str8_from_rdi_path_node_idx(scratch.arena, rdi, PathStyle_SystemAbsolute, src_file->file_path_node_idx);
|
// TODO: remove 'path_style' from the str8_from_rdi_path_node_idx and detect
|
||||||
|
// path style based on the top node "?:" -> windows, "/" -> unix
|
||||||
|
String8 top_part = {0};
|
||||||
|
for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, src_file->file_path_node_idx);
|
||||||
|
fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0);
|
||||||
|
fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node))
|
||||||
|
{
|
||||||
|
if(fpn->parent_path_node == 0)
|
||||||
|
{
|
||||||
|
top_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &top_part.size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PathStyle path_style = PathStyle_SystemAbsolute;
|
||||||
|
if (str8_match_wildcard(top_part, str8_lit("?:"), 0)) { path_style = PathStyle_WindowsAbsolute; }
|
||||||
|
else if(str8_match(top_part, str8_lit("/"), 0)) { path_style = PathStyle_UnixAbsolute; }
|
||||||
|
|
||||||
|
String8 path = str8_from_rdi_path_node_idx(scratch.arena, rdi, path_style, src_file->file_path_node_idx);
|
||||||
str8_list_pushf(arena, &output_blobs, "[inlined] %S %S:%u\n", inline_name, path, inline_line.line_num);
|
str8_list_pushf(arena, &output_blobs, "[inlined] %S %S:%u\n", inline_name, path, inline_line.line_num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String8 path = str8_from_rdi_path_node_idx(scratch.arena, rdi, PathStyle_SystemAbsolute, src_file->file_path_node_idx);
|
|
||||||
|
// TODO: remove 'path_style' from the str8_from_rdi_path_node_idx and detect
|
||||||
|
// path style based on the top node [c:|d:] -> windows, / -> unix
|
||||||
|
String8 top_part = {0};
|
||||||
|
for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, src_file->file_path_node_idx);
|
||||||
|
fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0);
|
||||||
|
fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node))
|
||||||
|
{
|
||||||
|
if(fpn->parent_path_node == 0)
|
||||||
|
{
|
||||||
|
top_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &top_part.size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PathStyle path_style = PathStyle_SystemAbsolute;
|
||||||
|
if (str8_match_wildcard(top_part, str8_lit("?:"), 0)) { path_style = PathStyle_WindowsAbsolute; }
|
||||||
|
else if(str8_match(top_part, str8_lit("/"), 0)) { path_style = PathStyle_UnixAbsolute; }
|
||||||
|
|
||||||
|
String8 path = str8_from_rdi_path_node_idx(scratch.arena, rdi, path_style, src_file->file_path_node_idx);
|
||||||
str8_list_pushf(arena, &output_blobs, "%S:%u\n", path, line.line_num);
|
str8_list_pushf(arena, &output_blobs, "%S:%u\n", path, line.line_num);
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user