From b9b17358a1576e740c4dcf7cf28e553b9d829db0 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sun, 20 Sep 2026 22:01:18 +0300 Subject: [PATCH] fix file.remove_ext --- dev/tests/filesystem.lua | 1 + res/modules/internal/extensions/file.lua | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dev/tests/filesystem.lua b/dev/tests/filesystem.lua index 80c080cdd..cb5a052ac 100644 --- a/dev/tests/filesystem.lua +++ b/dev/tests/filesystem.lua @@ -2,6 +2,7 @@ debug.log("file extension") asserts.equals(nil, file.ext("config:test")) asserts.equals("cfg", file.ext("config:test.cfg")) asserts.equals("gz", file.ext("config:test.cfg.gz")) +asserts.equals("config:test.cfg", file.remove_ext("config:test.cfg.gz")) debug.log("check initial state") assert(file.exists("config:")) diff --git a/res/modules/internal/extensions/file.lua b/res/modules/internal/extensions/file.lua index b19864cf6..6d5dc30ba 100644 --- a/res/modules/internal/extensions/file.lua +++ b/res/modules/internal/extensions/file.lua @@ -24,7 +24,11 @@ function file.parent(path) end function file.remove_ext(path) - return string.format("%s/%s", file.parent(path), file.stem(path)) + local ext = file.ext(path) + if not ext then + return path + end + return path:sub(1, -#ext - 2) end function file.path(path)