aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroni-link <knil.ino@gmail.com>2016-01-28 00:45:26 -0500
committerJustin M. Keyes <justinkz@gmail.com>2016-01-28 00:46:38 -0500
commitdb77b7bc9e510f790064333473abde98e0284af1 (patch)
tree000a661336029cbb787797b5b7bdaa4603360fd9
parent894fcb778e123a9986be480e94dc78b545e01ec4 (diff)
downloadrneovim-db77b7bc9e510f790064333473abde98e0284af1.tar.gz
rneovim-db77b7bc9e510f790064333473abde98e0284af1.tar.bz2
rneovim-db77b7bc9e510f790064333473abde98e0284af1.zip
file_pat_to_reg_pat(): handle empty string.
-rw-r--r--src/nvim/eval.c2
-rw-r--r--src/nvim/fileio.c4
-rw-r--r--test/functional/legacy/glob2regpat_spec.lua4
3 files changed, 7 insertions, 3 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 25f3cbf180..33c584eede 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 || *pat == NUL)
+ rettv->vval.v_string = (pat == NULL)
? NULL
: file_pat_to_reg_pat(pat, NULL, NULL, false);
}
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 3256004153..899e338b48 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -7119,6 +7119,10 @@ char_u * file_pat_to_reg_pat(
if (pat_end == NULL)
pat_end = pat + STRLEN(pat);
+ if (pat_end == pat) {
+ return (char_u *)xstrdup("^$");
+ }
+
size_t size = 2; // '^' at start, '$' at end.
for (p = pat; p < pat_end; p++) {
diff --git a/test/functional/legacy/glob2regpat_spec.lua b/test/functional/legacy/glob2regpat_spec.lua
index 25f0ffd007..357128bcb6 100644
--- a/test/functional/legacy/glob2regpat_spec.lua
+++ b/test/functional/legacy/glob2regpat_spec.lua
@@ -12,8 +12,8 @@ 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('')"))
+ it('returns ^$ for empty input', function()
+ eq('^$', eval("glob2regpat('')"))
end)
it('handles valid input', function()
eq('^foo\\.', eval("glob2regpat('foo.*')"))