diff options
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 45ab901398..71cb83e566 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5987,29 +5987,30 @@ static char_u *dict2string(typval_T *tv, int copyID) todo = (int)d->dv_hashtab.ht_used; for (hi = d->dv_hashtab.ht_array; todo > 0 && !got_int; ++hi) { - if (!HASHITEM_EMPTY(hi)) { - --todo; + if (HASHITEM_EMPTY(hi)) { + continue; + } + --todo; - if (first) - first = FALSE; - else - ga_concat(&ga, (char_u *)", "); + if (first) + first = FALSE; + else + ga_concat(&ga, (char_u *)", "); - tofree = string_quote(hi->hi_key, FALSE); - if (tofree != NULL) { - ga_concat(&ga, tofree); - free(tofree); - } - ga_concat(&ga, (char_u *)": "); - s = tv2string(&HI2DI(hi)->di_tv, &tofree, numbuf, copyID); - if (s != NULL) - ga_concat(&ga, s); + tofree = string_quote(hi->hi_key, FALSE); + if (tofree != NULL) { + ga_concat(&ga, tofree); free(tofree); - if (s == NULL || did_echo_string_emsg) { - break; - } - line_breakcheck(); } + ga_concat(&ga, (char_u *)": "); + s = tv2string(&HI2DI(hi)->di_tv, &tofree, numbuf, copyID); + if (s != NULL) + ga_concat(&ga, s); + free(tofree); + if (s == NULL || did_echo_string_emsg) { + break; + } + line_breakcheck(); } if (todo > 0) { free(ga.ga_data); |