From 8f764ff63a3ac1ca1003ce62e20541d2433849f3 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 21 Apr 2020 00:47:50 -0300 Subject: [PATCH] win32: strip UNC prefix if present --- src/lfs.c | 5 +++++ tests/test.lua | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lfs.c b/src/lfs.c index de247d8..40f193a 100644 --- a/src/lfs.c +++ b/src/lfs.c @@ -951,6 +951,11 @@ static int push_link_target(lua_State *L) { break; } if (tsize < size) { +#ifdef _WIN32 + if (tsize > 4 && strncmp(target, "\\\\?\\", 4) == 0) { + memmove_s(target, tsize - 3, target + 4, tsize - 3); + } +#endif ok = 1; break; } diff --git a/tests/test.lua b/tests/test.lua index 709342c..906c745 100644 --- a/tests/test.lua +++ b/tests/test.lua @@ -91,8 +91,9 @@ io.flush() if lfs.link (tmpfile, "_a_link_for_test_", true) then assert (lfs.attributes"_a_link_for_test_".mode == "file") assert (lfs.symlinkattributes"_a_link_for_test_".mode == "link") - print("TMPFILE " .. tmpfile) - print("TARGET " .. lfs.symlinkattributes"_a_link_for_test_".target) + print("TMPFILE ", string.byte(tmpfile, 1, #tmpfile)) + local tgt = lfs.symlinkattributes"_a_link_for_test_".target + print("TARGET ", string.byte(tgt, 1, #tgt)) io.flush() assert (lfs.symlinkattributes"_a_link_for_test_".target == tmpfile) assert (lfs.symlinkattributes("_a_link_for_test_", "target") == tmpfile)