aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-04-20 19:31:00 +0800
committerGitHub <noreply@github.com>2024-04-20 19:31:00 +0800
commit0ea38c9a53dfcff17703ea22f701ed1cc5bbd7d3 (patch)
tree60fa7289ee8fc164da54b905d030a09671297867 /src/nvim/os
parent4d52b0cf670502caf81b70f2f1e6f8c548b78f58 (diff)
downloadrneovim-0ea38c9a53dfcff17703ea22f701ed1cc5bbd7d3.tar.gz
rneovim-0ea38c9a53dfcff17703ea22f701ed1cc5bbd7d3.tar.bz2
rneovim-0ea38c9a53dfcff17703ea22f701ed1cc5bbd7d3.zip
refactor: add xmemcpyz() and use it in place of some xstrlcpy() (#28422)
Problem: Using xstrlcpy() when the exact length of the string to be copied is known is not ideal because it requires adding 1 to the length and an unnecessary strlen(). Solution: Add xmemcpyz() and use it in place of such xstrlcpy() calls.
Diffstat (limited to 'src/nvim/os')
-rw-r--r--src/nvim/os/env.c2
-rw-r--r--src/nvim/os/fs.c2
-rw-r--r--src/nvim/os/stdpaths.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c
index 8a81f6e928..ed55f4f0eb 100644
--- a/src/nvim/os/env.c
+++ b/src/nvim/os/env.c
@@ -1195,7 +1195,7 @@ bool os_setenv_append_path(const char *fname)
const char *tail = path_tail_with_sep((char *)fname);
size_t dirlen = (size_t)(tail - fname);
assert(tail >= fname && dirlen + 1 < sizeof(os_buf));
- xstrlcpy(os_buf, fname, dirlen + 1);
+ xmemcpyz(os_buf, fname, dirlen);
const char *path = os_getenv("PATH");
const size_t pathlen = path ? strlen(path) : 0;
const size_t newlen = pathlen + dirlen + 2;
diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c
index aa344d786c..2eca906d4e 100644
--- a/src/nvim/os/fs.c
+++ b/src/nvim/os/fs.c
@@ -374,7 +374,7 @@ static bool is_executable_in_path(const char *name, char **abspath)
char *e = xstrchrnul(p, ENV_SEPCHAR);
// Combine the $PATH segment with `name`.
- xstrlcpy(buf, p, (size_t)(e - p) + 1);
+ xmemcpyz(buf, p, (size_t)(e - p));
(void)append_path(buf, name, buf_len);
#ifdef MSWIN
diff --git a/src/nvim/os/stdpaths.c b/src/nvim/os/stdpaths.c
index 187a0e0674..e5bdd56fe6 100644
--- a/src/nvim/os/stdpaths.c
+++ b/src/nvim/os/stdpaths.c
@@ -198,7 +198,7 @@ char *get_xdg_home(const XDGVarType idx)
assert(appname_len < (IOSIZE - sizeof("-data")));
if (dir) {
- xstrlcpy(IObuff, appname, appname_len + 1);
+ xmemcpyz(IObuff, appname, appname_len);
#if defined(MSWIN)
if (idx == kXDGDataHome || idx == kXDGStateHome) {
xstrlcat(IObuff, "-data", IOSIZE);