From ccbfdbb5358d84faf1c9e7c9fe3df2e57357b96f Mon Sep 17 00:00:00 2001 From: Fox Mulder Date: Sun, 30 Nov 2025 23:59:27 +0300 Subject: [PATCH] fs::absolute, units, Makefile fixes --- Makefile | 14 +++----------- Makefile.unit | 10 +++------- filesystem.cpp | 7 ++++++- unit.cpp | 8 ++++++++ 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index f2e993a..037e9c7 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ INCLUDE:=-I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/libstdc LDFLAGS:=-static -S -Tapp-dynamic.lds --image-base 0 LIBPATH:=-L $(SDK_DIR)/lib -L /usr/local/kos32/lib -all: compile link make_iso copy_iso +all: compile link make_iso compile: $(CXX) $(CXXFLAGS) $(INCLUDE) -o ASBeautifier.o ASBeautifier.cpp @@ -24,7 +24,7 @@ compile: $(CC) $(CFLAGS) $(INCLUDE) -o closedir.o $(SDK_DIR)/sources/newlib/libc/posix/closedir.c clean: - rm -f unit.o filesystem.o opendir.o readdir.o closedir.o unit iso app.iso + rm -vf *.o app.iso astyle link: $(LD) $(LDFLAGS) $(LIBPATH) \ @@ -42,12 +42,4 @@ link: kos32-objcopy astyle -O binary make_iso: - rm -rf iso - mkdir -p iso - cp astyle iso/ - mkisofs -appid KolibriTestApp -volid KolibriTestApp -XA -sysid KOLIBRI -publisher pvoid -volset-size 1 -volset-seqno 1 -iso-level 3 -J -o app.iso iso/astyle - rm -rf iso - -copy_iso: - rm -f /mnt/e/app.iso - cp app.iso /mnt/e/ \ No newline at end of file + mkisofs -appid KolibriTestApp -volid KolibriTestApp -XA -sysid KOLIBRI -publisher pvoid -volset-size 1 -volset-seqno 1 -iso-level 3 -J -o app.iso astyle diff --git a/Makefile.unit b/Makefile.unit index d98b718..e52c2f9 100644 --- a/Makefile.unit +++ b/Makefile.unit @@ -8,7 +8,7 @@ INCLUDE:=-I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/libstdc LDFLAGS:=-static -S -Tapp-dynamic.lds --image-base 0 LIBPATH:=-L $(SDK_DIR)/lib -L /usr/local/kos32/lib -all: compile link make_iso copy_iso +all: compile link make_iso compile: $(CXX) $(CXXFLAGS) $(INCLUDE) -o unit.o unit.cpp @@ -18,7 +18,7 @@ compile: $(CC) $(CFLAGS) $(INCLUDE) -o closedir.o $(SDK_DIR)/sources/newlib/libc/posix/closedir.c clean: - rm -f unit.o filesystem.o opendir.o readdir.o closedir.o unit iso app.iso + rm -vf *.o unit unit.iso link: $(LD) $(LDFLAGS) $(LIBPATH) unit.o filesystem.o opendir.o readdir.o closedir.o -o unit -lstdc++ -lsupc++ -lgcc -lc.dll @@ -26,8 +26,4 @@ link: kos32-objcopy unit -O binary make_iso: - rm -rf iso - mkdir -p iso - cp unit iso/ - mkisofs -appid KolibriTestApp -volid KolibriTestApp -XA -sysid KOLIBRI -publisher pvoid -volset-size 1 -volset-seqno 1 -iso-level 3 -J -o unit.iso iso/unit - rm -rf iso \ No newline at end of file + mkisofs -appid KolibriTestApp -volid KolibriTestApp -XA -sysid KOLIBRI -publisher pvoid -volset-size 1 -volset-seqno 1 -iso-level 3 -J -o unit.iso unit diff --git a/filesystem.cpp b/filesystem.cpp index 288b7ba..adcd3a4 100644 --- a/filesystem.cpp +++ b/filesystem.cpp @@ -42,7 +42,12 @@ path current_path() path absolute(path const& p) { - return p; // TODO + if(p.empty() || is_absolute(p)) + { + return p; + } + + return current_path() / p; } void scan_directory (path const& directory, std::list& paths) diff --git a/unit.cpp b/unit.cpp index 5278a9d..b701a83 100644 --- a/unit.cpp +++ b/unit.cpp @@ -77,6 +77,14 @@ TEST(PathFileName) ASSERT_EQUAL(fs::path(TestData::fs::sysPath).filename().string(), "sys"); } +TEST(PathAbsolute) +{ + ASSERT_EQUAL(fs::absolute(TestData::fs::emptyPath).string(), TestData::fs::emptyPath); + ASSERT_EQUAL(fs::absolute(TestData::fs::calcPath).string(), TestData::fs::calcPath); + ASSERT_EQUAL(fs::absolute(TestData::fs::calcFileName).string(), (fs::current_path() / TestData::fs::calcFileName).string()); + ASSERT_EQUAL(fs::absolute(TestData::fs::rootPath).string(), TestData::fs::rootPath); +} + // just for cli output TEST(ScanDirectory) {