summaryrefslogtreecommitdiff
path: root/win32/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32/file.c')
-rw-r--r--win32/file.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/win32/file.c b/win32/file.c
index c0efb7b091..b50c61292d 100644
--- a/win32/file.c
+++ b/win32/file.c
@@ -237,6 +237,19 @@ append_wstr(VALUE dst, const WCHAR *ws, ssize_t len, UINT cp, rb_encoding *enc)
}
VALUE
+rb_default_home_dir(VALUE result)
+{
+ const WCHAR *dir = rb_w32_home_dir();
+ if (!dir) {
+ rb_raise(rb_eArgError, "couldn't find HOME environment -- expanding `~'");
+ }
+ append_wstr(result, dir, -1,
+ rb_w32_filecp(), rb_filesystem_encoding());
+ xfree(dir);
+ return result;
+}
+
+VALUE
rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_name, VALUE result)
{
size_t size = 0, whome_len = 0;