aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortim4242 <puzzleddev@gmail.com>2024-05-24 01:20:45 +0200
committertim4242 <puzzleddev@gmail.com>2024-05-24 01:20:45 +0200
commit8664b88c8fe282aaabed6c3522802b63e39bcf02 (patch)
tree3b703d6583d5a1b332e5d7aa577ebc0cf1a0b4cb /src
parent7934e92d14de6166791e1483f986eb97fe06f595 (diff)
Improved depdendency formatting to support paths containing spaces
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp
index d21eb21cb..575745290 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -2951,12 +2951,31 @@ int main(int arg_count, char const **arg_ptr) {
gb_fprintf(&f, "%.*s:", LIT(exe_name));
+ isize current_line_length = exe_name.len + 1;
+
for (isize i = parser->packages.count-1; i >= 0; i--) {
AstPackage *pkg = parser->packages[i];
for (isize j = pkg->files.count-1; j >= 0; j--) {
AstFile *file = pkg->files[j];
- gb_fprintf(&f, " \\\n %.*s", LIT(file->fullpath));
+ /* Arbitrary line break value. Maybe make this better? */
+ if (current_line_length >= 80-2) {
+ gb_file_write(&f, " \\\n ", 4);
+ current_line_length = 1;
+ }
+
+ gb_file_write(&f, " ", 1);
+ current_line_length++;
+
+ for (isize k = 0; k < file->fullpath.len; k++) {
+ char part = file->fullpath.text[k];
+ if (part == ' ') {
+ gb_file_write(&f, "\\", 1);
+ current_line_length++;
+ }
+ gb_file_write(&f, &part, 1);
+ current_line_length++;
+ }
}
}