Mercurial > vim
diff src/eval.c @ 1690:c6b06a4a8f92 v7.2b.023
updated for version 7.2b-023
author | vimboss |
---|---|
date | Sun, 27 Jul 2008 13:57:29 +0000 |
parents | 75dbeedddaa9 |
children | 9d74e2f433c0 |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -1275,7 +1275,8 @@ eval_to_string(arg, nextcmd, dolist) if (dolist && tv.v_type == VAR_LIST) { ga_init2(&ga, (int)sizeof(char), 80); - list_join(&ga, tv.vval.v_list, (char_u *)"\n", TRUE, 0); + if (tv.vval.v_list != NULL) + list_join(&ga, tv.vval.v_list, (char_u *)"\n", TRUE, 0); ga_append(&ga, NUL); retval = (char_u *)ga.ga_data; } @@ -1380,6 +1381,7 @@ restore_vimvar(idx, save_tv) /* * Evaluate an expression to a list with suggestions. * For the "expr:" part of 'spellsuggest'. + * Returns NULL when there is an error. */ list_T * eval_spell_expr(badword, expr) @@ -1587,8 +1589,9 @@ call_func_retnr(func, argc, argv, safe) # endif /* - * Call vimL function "func" and return the result as a list + * Call vimL function "func" and return the result as a List. * Uses argv[argc] for the function arguments. + * Returns NULL when there is something wrong. */ void * call_func_retlist(func, argc, argv, safe) @@ -5817,6 +5820,8 @@ list_equal(l1, l2, ic) { listitem_T *item1, *item2; + if (l1 == NULL || l2 == NULL) + return FALSE; if (l1 == l2) return TRUE; if (list_len(l1) != list_len(l2)) @@ -5855,6 +5860,8 @@ dict_equal(d1, d2, ic) dictitem_T *item2; int todo; + if (d1 == NULL || d2 == NULL) + return FALSE; if (d1 == d2) return TRUE; if (dict_len(d1) != dict_len(d2)) @@ -6243,6 +6250,9 @@ list_concat(l1, l2, tv) { list_T *l; + if (l1 == NULL || l2 == NULL) + return FAIL; + /* make a copy of the first list. */ l = list_copy(l1, FALSE, 0); if (l == NULL)