summaryrefslogtreecommitdiff
path: root/win32/file.c
diff options
context:
space:
mode:
authorLars Kanis <lars@greiz-reinsdorf.de>2022-12-18 21:05:22 +0100
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-12-24 22:54:23 +0900
commitd6ce4180a5b4dacbac895c9911031a6df6c61136 (patch)
tree5fcea95c22a419d1e9286d83daccecb87cb043e6 /win32/file.c
parent18c1ca8f4c0748905d5cedb6c044df507ea8ad6a (diff)
downloadruby-d6ce4180a5b4dacbac895c9911031a6df6c61136.tar.gz
Windows: Fix encoding of Dir.home
Dir.home returns an UTF-8 string since ruby-3.0, but the actual encoding of the bytes was CP_ACP or CP_OEMCP. That led to invalid bytes when calling Dir.home with an unicode username.
Diffstat (limited to 'win32/file.c')
-rw-r--r--win32/file.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/win32/file.c b/win32/file.c
index e047144d36..31cc1aff6e 100644
--- a/win32/file.c
+++ b/win32/file.c
@@ -266,7 +266,8 @@ rb_default_home_dir(VALUE result)
rb_raise(rb_eArgError, "couldn't find HOME environment -- expanding `~'");
}
append_wstr(result, dir, -1,
- rb_w32_filecp(), rb_filesystem_encoding());
+ CP_UTF8, rb_utf8_encoding());
+
xfree(dir);
return result;
}