aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2016-01-27 03:26:13 -0500
committerJustin M. Keyes <justinkz@gmail.com>2016-01-27 22:19:50 -0500
commit894fcb778e123a9986be480e94dc78b545e01ec4 (patch)
tree3ece268f8b71a2e892d256d8af72a8e2f80da4ff
parent765d394f18733bc6d962e3915ff53c06ac095642 (diff)
downloadrneovim-894fcb778e123a9986be480e94dc78b545e01ec4.tar.gz
rneovim-894fcb778e123a9986be480e94dc78b545e01ec4.tar.bz2
rneovim-894fcb778e123a9986be480e94dc78b545e01ec4.zip
glob2regpat(): handle empty string.
-rw-r--r--src/nvim/eval.c2
-rw-r--r--src/nvim/fileio.c1
-rw-r--r--test/functional/legacy/glob2regpat_spec.lua3
3 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 33c584eede..25f3cbf180 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -10792,7 +10792,7 @@ static void f_glob2regpat(typval_T *argvars, typval_T *rettv)
char_u *pat = get_tv_string_chk(&argvars[0]); // NULL on type error
rettv->v_type = VAR_STRING;
- rettv->vval.v_string = (pat == NULL)
+ rettv->vval.v_string = (pat == NULL || *pat == NUL)
? NULL
: file_pat_to_reg_pat(pat, NULL, NULL, false);
}
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 26376afa27..3256004153 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -7106,6 +7106,7 @@ char_u * file_pat_to_reg_pat(
char *allow_dirs, // Result passed back out in here
int no_bslash // Don't use a backward slash as pathsep
)
+ FUNC_ATTR_NONNULL_ARG(1)
{
const char_u *endp;
char_u *reg_pat;
diff --git a/test/functional/legacy/glob2regpat_spec.lua b/test/functional/legacy/glob2regpat_spec.lua
index 373aad68a1..25f0ffd007 100644
--- a/test/functional/legacy/glob2regpat_spec.lua
+++ b/test/functional/legacy/glob2regpat_spec.lua
@@ -12,6 +12,9 @@ describe('glob2regpat()', function()
helpers.feed('<cr>')
neq(nil, string.find(eval('v:errmsg'), '^E806:'))
end)
+ it('returns empty string for empty input', function()
+ eq('', eval("glob2regpat('')"))
+ end)
it('handles valid input', function()
eq('^foo\\.', eval("glob2regpat('foo.*')"))
eq('\\.vim$', eval("glob2regpat('*.vim')"))