Mercurial > vim
diff src/terminal.c @ 19241:c53dbbf3229b v8.2.0179
patch 8.2.0179: still a few places where range() does not work
Commit: https://github.com/vim/vim/commit/b09920203a0f2b202497ef9632f8447f73d0f1fb
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 30 14:55:42 2020 +0100
patch 8.2.0179: still a few places where range() does not work
Problem: Still a few places where range() does not work.
Solution: Fix using range() causing problems.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 30 Jan 2020 15:00:03 +0100 |
parents | 7e7ec935e7c8 |
children | 5ed8297121fa |
line wrap: on
line diff
--- a/src/terminal.c +++ b/src/terminal.c @@ -417,7 +417,11 @@ term_start( if ((opt->jo_set & (JO_IN_IO + JO_OUT_IO + JO_ERR_IO)) == (JO_IN_IO + JO_OUT_IO + JO_ERR_IO) || (!(opt->jo_set & JO_OUT_IO) && (opt->jo_set & JO_OUT_BUF)) - || (!(opt->jo_set & JO_ERR_IO) && (opt->jo_set & JO_ERR_BUF))) + || (!(opt->jo_set & JO_ERR_IO) && (opt->jo_set & JO_ERR_BUF)) + || (argvar != NULL + && argvar->v_type == VAR_LIST + && argvar->vval.v_list != NULL + && argvar->vval.v_list->lv_first == &range_list_item)) { emsg(_(e_invarg)); return NULL; @@ -538,7 +542,7 @@ term_start( } else if (argvar->v_type != VAR_LIST || argvar->vval.v_list == NULL - || argvar->vval.v_list->lv_len < 1 + || argvar->vval.v_list->lv_len == 0 || (cmd = tv_get_string_chk( &argvar->vval.v_list->lv_first->li_tv)) == NULL) cmd = (char_u*)""; @@ -3763,9 +3767,9 @@ set_ansi_colors_list(VTerm *vterm, list_ { int n = 0; long_u rgb[16]; - listitem_T *li = list->lv_first; - - for (; li != NULL && n < 16; li = li->li_next, n++) + listitem_T *li; + + for (li = list->lv_first; li != NULL && n < 16; li = li->li_next, n++) { char_u *color_name; guicolor_T guicolor; @@ -3800,6 +3804,7 @@ init_vterm_ansi_colors(VTerm *vterm) if (var != NULL && (var->di_tv.v_type != VAR_LIST || var->di_tv.vval.v_list == NULL + || var->di_tv.vval.v_list->lv_first == &range_list_item || set_ansi_colors_list(vterm, var->di_tv.vval.v_list) == FAIL)) semsg(_(e_invarg2), "g:terminal_ansi_colors"); }