diff options
Diffstat (limited to 'src/utils/file.c')
-rw-r--r-- | src/utils/file.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/utils/file.c b/src/utils/file.c index 340875c..f14334d 100644 --- a/src/utils/file.c +++ b/src/utils/file.c @@ -94,9 +94,8 @@ char *joinToPathOf(const char *original, const char *file) { strncpy(result, original, result_size); result[result_size++] = '/'; - bool startOfDirName = true; for (size_t i = 0; file[i] != '\0'; ++i) { - if (startOfDirName && file[i + 1] == '.') { + if (result_size != 0 && result[result_size-1] == '/' && file[i + 1] == '.') { if (file[i + 2] == '/') { i += 2; continue; @@ -111,6 +110,9 @@ char *joinToPathOf(const char *original, const char *file) { } if (!found) { result_size = 0; + result[result_size++] = '.'; + result[result_size++] = '.'; + result[result_size++] = '/'; } continue; } |