aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDragos <dragos.andreip@yahoo.com>2022-12-26 19:21:24 +0200
committerDragos <dragos.andreip@yahoo.com>2022-12-26 19:21:24 +0200
commit465d003b1e70bd4a8cb6623bb71968b79ff66193 (patch)
tree6dd7638ce45db959502b55fc26f70ea485d39e89 /src
parent0829ac30f743aa567b2da5dc490ff1b2b13ea37c (diff)
Patched empty output_path.name when building a folder
Diffstat (limited to 'src')
-rw-r--r--src/build_settings.cpp19
-rw-r--r--src/path.cpp3
2 files changed, 22 insertions, 0 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index 1cd2899c4..12c2b20f4 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -1533,6 +1533,25 @@ bool init_build_paths(String init_filename) {
output_name = remove_extension_from_path(output_name);
output_name = copy_string(ha, string_trim_whitespace(output_name));
output_path = path_from_string(ha, output_name);
+
+ // Note(Dragos): This is a fix for empty filenames
+ // Turn the trailing folder into the file name
+ if (output_path.name.len == 0) {
+ isize len = output_path.basename.len;
+ while (len > 1 && output_path.basename[len - 1] != '/') {
+ len -= 1;
+ }
+ // We reached the slash
+ String old_basename = output_path.basename;
+ output_path.basename.len = len - 1; // Remove the slash
+ output_path.name = substring(old_basename, len, old_basename.len);
+ output_path.basename = copy_string(ha, output_path.basename);
+ output_path.name = copy_string(ha, output_path.name);
+ // The old basename is wrong. Delete it
+ gb_free(ha, old_basename.text);
+
+
+ }
// Replace extension.
if (output_path.ext.len > 0) {
diff --git a/src/path.cpp b/src/path.cpp
index 6f83c39ea..dbc913e61 100644
--- a/src/path.cpp
+++ b/src/path.cpp
@@ -107,7 +107,9 @@ String path_to_string(gbAllocator a, Path path) {
isize i = 0;
gb_memmove(str+i, path.basename.text, path.basename.len); i += path.basename.len;
+
gb_memmove(str+i, "/", 1); i += 1;
+
gb_memmove(str+i, path.name.text, path.name.len); i += path.name.len;
if (path.ext.len > 0) {
gb_memmove(str+i, ".", 1); i += 1;
@@ -150,6 +152,7 @@ Path path_from_string(gbAllocator a, String const &path) {
return res;
}
+ // Note(Dragos): Is the copy_string required if it's a substring?
isize name_start = (res.basename.len > 0) ? res.basename.len + 1 : res.basename.len;
res.name = substring(fullpath, name_start, fullpath.len);
res.name = remove_extension_from_path(res.name);