patch 9.1.1467: too many strlen() calls
Problem: too many strlen() calls
Solution: Change expand_env() to return string length
(John Marriott)
This commit does the following changes:
- In expand_env_esc():
- return the length of the returned dst string.
- refactor to remove some calls to STRLEN() and STRCAT()
- add check for out-of-memory condition.
- Change call sites in various source files to use the return value
closes: #17561
Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/mark.c b/src/mark.c
index 2b03919..9bab352 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -540,10 +540,9 @@
#endif
))
{
- int len;
+ size_t len;
- expand_env((char_u *)"~/", NameBuff, MAXPATHL);
- len = (int)STRLEN(NameBuff);
+ len = expand_env((char_u *)"~/", NameBuff, MAXPATHL);
vim_strncpy(NameBuff + len, fm->fname + 2, MAXPATHL - len - 1);
}
else