summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--code/main.felan3
-rw-r--r--src/utils/file.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/code/main.felan b/code/main.felan
index de7eabb..6c9ee46 100644
--- a/code/main.felan
+++ b/code/main.felan
@@ -1,7 +1,8 @@
@import("basic.felan");
main :: () -> void {
- str := "123";
+ str := "123\n";
print(str);
};
+putchar :: (c:i32)->i32;
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;
}