diff options
author | James McCoy <jamessan@jamessan.com> | 2018-01-25 14:09:36 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-25 14:09:36 -0500 |
commit | 83880cced34c1425cf225c435c7ed05eac6fd44c (patch) | |
tree | 8fa470dc21c9264fcee9b06d8f07305ac5fccf53 | |
parent | 8b1f7d8774b235ae4f0dc0fa64d58e3cad9f8283 (diff) | |
parent | 3ff92ba1ee54a9400aac143f4d98d356dc6a8321 (diff) | |
download | rneovim-83880cced34c1425cf225c435c7ed05eac6fd44c.tar.gz rneovim-83880cced34c1425cf225c435c7ed05eac6fd44c.tar.bz2 rneovim-83880cced34c1425cf225c435c7ed05eac6fd44c.zip |
Merge pull request #6558 from jamessan/tv_as_string-fix
eval: save_tv_as_string: Correctly handle an empty string
-rw-r--r-- | src/nvim/eval.c | 3 | ||||
-rw-r--r-- | test/functional/eval/system_spec.lua | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index f663d13c55..07a9e9286d 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -17504,7 +17504,8 @@ static char *save_tv_as_string(typval_T *tv, ptrdiff_t *const len, bool endnl) // print an error. if (tv->v_type != VAR_LIST && tv->v_type != VAR_NUMBER) { const char *ret = tv_get_string_chk(tv); - if (ret && (*len = strlen(ret))) { + if (ret) { + *len = strlen(ret); return xmemdupz(ret, (size_t)(*len)); } else { *len = -1; diff --git a/test/functional/eval/system_spec.lua b/test/functional/eval/system_spec.lua index 66d569416e..77e7424452 100644 --- a/test/functional/eval/system_spec.lua +++ b/test/functional/eval/system_spec.lua @@ -258,6 +258,9 @@ describe('system()', function() end eq(2, eval("1+1")) -- Still alive? end) + it('works with an empty string', function() + eq("test\n", eval('system("echo test", "")')) + end) end) describe('passing a lot of input', function() |