aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/main.c
diff options
context:
space:
mode:
authorRafael Kitover <rkitover@gmail.com>2024-06-18 03:23:52 +0000
committerGitHub <noreply@github.com>2024-06-18 11:23:52 +0800
commit1a1c766049826b6049610edda8f72eac1f75b38d (patch)
tree6230039ff3e8325b6def86624e4ff198e77e2059 /src/nvim/main.c
parent948f2beed4ea55a9c2cce3cff894359b94fba748 (diff)
downloadrneovim-1a1c766049826b6049610edda8f72eac1f75b38d.tar.gz
rneovim-1a1c766049826b6049610edda8f72eac1f75b38d.tar.bz2
rneovim-1a1c766049826b6049610edda8f72eac1f75b38d.zip
refactor: Windows tilde expansion followup (#29380)
Followup to #28515: Rename the static os_homedir() to os_uv_homedir() to emphasize that it is a wrapper around a libuv function. Add the function os_get_homedir() to os/env.c to return the cached homedir value as a const. Must be called after homedir is initialized or it fails. The difference between this function and the static os_uv_homedir() is that the latter gets the homedir from libuv and is used to initialize homedir in init_homedir(), while os_get_homedir() just returns homedir as a const if it's initialized and is public. Use the os_get_homedir() accessor for ~/ expansion on Windows to make the code more concise. Add a Windows section to main_spec.lua with tests for expanding ~/ and ~\ prefixes for files passed in on the command-line. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Diffstat (limited to 'src/nvim/main.c')
-rw-r--r--src/nvim/main.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 5e243df975..57909b14ef 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -1437,12 +1437,10 @@ scripterror:
// On Windows expand "~\" or "~/" prefix in file names to profile directory.
#ifdef MSWIN
if (*p == '~' && (p[1] == '\\' || p[1] == '/')) {
- char *profile_dir = vim_getenv("HOME");
- size_t size = strlen(profile_dir) + strlen(p);
+ size_t size = strlen(os_get_homedir()) + strlen(p);
char *tilde_expanded = xmalloc(size);
- snprintf(tilde_expanded, size, "%s%s", profile_dir, p + 1);
+ snprintf(tilde_expanded, size, "%s%s", os_get_homedir(), p + 1);
xfree(p);
- xfree(profile_dir);
p = tilde_expanded;
}
#endif