diff options
author | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-05-28 23:06:13 -0300 |
---|---|---|
committer | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-06-16 01:31:36 -0300 |
commit | 9e7d06da412a2a1481d71e369f6b95c44e9a3e7f (patch) | |
tree | e4f7b8ec4d3daa5e73a0d6fde2cdce4994a3be39 /src | |
parent | bb978fa69ccab4b5b764ac025274145291cea3ca (diff) | |
download | rneovim-9e7d06da412a2a1481d71e369f6b95c44e9a3e7f.tar.gz rneovim-9e7d06da412a2a1481d71e369f6b95c44e9a3e7f.tar.bz2 rneovim-9e7d06da412a2a1481d71e369f6b95c44e9a3e7f.zip |
No OOM in autoload_name()
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 6d900683a9..6fcd8b8a26 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -17008,15 +17008,13 @@ void ex_function(exarg_T *eap) int j = FAIL; if (sourcing_name != NULL) { scriptname = autoload_name(name); - if (scriptname != NULL) { - p = vim_strchr(scriptname, '/'); - plen = (int)STRLEN(p); - slen = (int)STRLEN(sourcing_name); - if (slen > plen && fnamecmp(p, - sourcing_name + slen - plen) == 0) - j = OK; - free(scriptname); - } + p = vim_strchr(scriptname, '/'); + plen = (int)STRLEN(p); + slen = (int)STRLEN(sourcing_name); + if (slen > plen && fnamecmp(p, + sourcing_name + slen - plen) == 0) + j = OK; + free(scriptname); } if (j == FAIL) { EMSG2(_( @@ -17638,21 +17636,20 @@ script_autoload ( /* * Return the autoload script name for a function or variable name. - * Returns NULL when out of memory. */ static char_u *autoload_name(char_u *name) { - char_u *p; - char_u *scriptname; - /* Get the script file name: replace '#' with '/', append ".vim". */ - scriptname = xmalloc(STRLEN(name) + 14); + char_u *scriptname = xmalloc(STRLEN(name) + 14); STRCPY(scriptname, "autoload/"); STRCAT(scriptname, name); *vim_strrchr(scriptname, AUTOLOAD_CHAR) = NUL; STRCAT(scriptname, ".vim"); + + char_u *p; while ((p = vim_strchr(scriptname, AUTOLOAD_CHAR)) != NULL) *p = '/'; + return scriptname; } |