aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/buffer.c2
-rw-r--r--src/nvim/eval.c16
-rw-r--r--src/nvim/ex_docmd.c19
-rw-r--r--src/nvim/misc1.c8
4 files changed, 18 insertions, 27 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index db611823fc..67cd5a3094 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -1908,7 +1908,7 @@ static char_u *fname_match(regprog_T *prog, char_u *name)
else {
/* Replace $(HOME) with '~' and try matching again. */
p = home_replace_save(NULL, name);
- if (p != NULL && vim_regexec(&regmatch, p, (colnr_T)0))
+ if (vim_regexec(&regmatch, p, (colnr_T)0))
match = name;
free(p);
}
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index c2adbc8fbf..395d7f19d9 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -18645,17 +18645,13 @@ int store_session_globals(FILE *fd)
*/
void last_set_msg(scid_T scriptID)
{
- char_u *p;
-
if (scriptID != 0) {
- p = home_replace_save(NULL, get_scriptname(scriptID));
- if (p != NULL) {
- verbose_enter();
- MSG_PUTS(_("\n\tLast set from "));
- MSG_PUTS(p);
- free(p);
- verbose_leave();
- }
+ char_u *p = home_replace_save(NULL, get_scriptname(scriptID));
+ verbose_enter();
+ MSG_PUTS(_("\n\tLast set from "));
+ MSG_PUTS(p);
+ free(p);
+ verbose_leave();
}
}
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 66a4ac71c3..6e02c741eb 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -7909,8 +7909,7 @@ makeopens (
return FAIL;
} else if (ssop_flags & SSOP_CURDIR) {
sname = home_replace_save(NULL, globaldir != NULL ? globaldir : dirnow);
- if (sname == NULL
- || fputs("cd ", fd) < 0
+ if (fputs("cd ", fd) < 0
|| ses_put_fname(fd, sname, &ssop_flags) == FAIL
|| put_eol(fd) == FAIL) {
free(sname);
@@ -8535,17 +8534,13 @@ static int ses_fname(FILE *fd, buf_T *buf, unsigned *flagp)
* Write a file name to the session file.
* Takes care of the "slash" option in 'sessionoptions' and escapes special
* characters.
- * Returns FAIL if writing fails or out of memory.
+ * Returns FAIL if writing fails.
*/
static int ses_put_fname(FILE *fd, char_u *name, unsigned *flagp)
{
- char_u *sname;
char_u *p;
- int retval = OK;
- sname = home_replace_save(NULL, name);
- if (sname == NULL)
- return FAIL;
+ char_u *sname = home_replace_save(NULL, name);
if (*flagp & SSOP_SLASH) {
/* change all backslashes to forward slashes */
@@ -8559,11 +8554,13 @@ static int ses_put_fname(FILE *fd, char_u *name, unsigned *flagp)
free(sname);
/* write the result */
- if (fputs((char *)p, fd) < 0)
- retval = FAIL;
+ if (fputs((char *)p, fd) < 0) {
+ free(p);
+ return FAIL;
+ }
free(p);
- return retval;
+ return OK;
}
/*
diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c
index 21070b323a..f025ff7f65 100644
--- a/src/nvim/misc1.c
+++ b/src/nvim/misc1.c
@@ -24,6 +24,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/fold.h"
#include "nvim/getchar.h"
#include "nvim/indent.h"
@@ -3278,20 +3279,17 @@ home_replace (
/*
* Like home_replace, store the replaced string in allocated memory.
- * When something fails, NULL is returned.
*/
char_u *
home_replace_save (
buf_T *buf, /* when not NULL, check for help files */
char_u *src /* input file name */
-)
+) FUNC_ATTR_NONNULL_RET
{
- char_u *dst;
-
size_t len = 3; /* space for "~/" and trailing NUL */
if (src != NULL) /* just in case */
len += STRLEN(src);
- dst = xmalloc(len);
+ char_u *dst = xmalloc(len);
home_replace(buf, src, dst, (int)len, TRUE);
return dst;
}