diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/syntax.c | 10 | ||||
| -rw-r--r-- | src/nvim/testdir/test_alot.vim | 1 | ||||
| -rw-r--r-- | src/nvim/testdir/test_syn_attr.vim | 31 | ||||
| -rw-r--r-- | src/nvim/version.c | 2 | 
4 files changed, 40 insertions, 4 deletions
| diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index c753c6fabd..6fd7603629 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -7001,11 +7001,15 @@ highlight_color (    if (font || sp)      return NULL;    if (modec == 'c') { -    if (fg) +    if (fg) {        n = HL_TABLE()[id - 1].sg_cterm_fg - 1; -    else +    } else {        n = HL_TABLE()[id - 1].sg_cterm_bg - 1; -    sprintf((char *)name, "%d", n); +    } +    if (n < 0) { +      return NULL; +    } +    snprintf((char *)name, sizeof(name), "%d", n);      return name;    }    /* term doesn't have color */ diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim index e5214971b4..f0efd6e4ed 100644 --- a/src/nvim/testdir/test_alot.vim +++ b/src/nvim/testdir/test_alot.vim @@ -8,4 +8,5 @@ source test_cmdline.vim  source test_menu.vim  source test_popup.vim  source test_regexp_utf8.vim +source test_syn_attr.vim  source test_unlet.vim diff --git a/src/nvim/testdir/test_syn_attr.vim b/src/nvim/testdir/test_syn_attr.vim new file mode 100644 index 0000000000..20e9b17c46 --- /dev/null +++ b/src/nvim/testdir/test_syn_attr.vim @@ -0,0 +1,31 @@ +" Test syntax highlighting functions. + +func Test_missing_attr() +  hi Mine term=bold cterm=italic +  call assert_equal('Mine', synIDattr(hlID("Mine"), "name")) +  call assert_equal('', synIDattr(hlID("Mine"), "bg", 'term')) +  call assert_equal('1', synIDattr(hlID("Mine"), "bold", 'term')) +  call assert_equal('1', synIDattr(hlID("Mine"), "italic", 'cterm')) +  hi Mine term=reverse cterm=inverse +  call assert_equal('1', synIDattr(hlID("Mine"), "reverse", 'term')) +  call assert_equal('1', synIDattr(hlID("Mine"), "inverse", 'cterm')) +  hi Mine term=underline cterm=standout gui=undercurl +  call assert_equal('1', synIDattr(hlID("Mine"), "underline", 'term')) +  call assert_equal('1', synIDattr(hlID("Mine"), "standout", 'cterm')) +  call assert_equal('1', synIDattr(hlID("Mine"), "undercurl", 'gui')) +  hi Mine term=NONE cterm=NONE gui=NONE +  call assert_equal('', synIDattr(hlID("Mine"), "bold", 'term')) +  call assert_equal('', synIDattr(hlID("Mine"), "italic", 'cterm')) +  call assert_equal('', synIDattr(hlID("Mine"), "reverse", 'term')) +  call assert_equal('', synIDattr(hlID("Mine"), "inverse", 'cterm')) +  call assert_equal('', synIDattr(hlID("Mine"), "underline", 'term')) +  call assert_equal('', synIDattr(hlID("Mine"), "standout", 'cterm')) +  call assert_equal('', synIDattr(hlID("Mine"), "undercurl", 'gui')) + +  if has('gui') +    hi Mine guifg=blue guibg=red font=something +    call assert_equal('blue', synIDattr(hlID("Mine"), "fg", 'gui')) +    call assert_equal('red', synIDattr(hlID("Mine"), "bg", 'gui')) +    call assert_equal('something', synIDattr(hlID("Mine"), "font", 'gui')) +  endif +endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index bc826d8660..fa949224f3 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -730,7 +730,7 @@ static int included_patches[] = {    1550,    // 1549,    1548, -  // 1547, +  1547,    1546,    // 1545 NA    // 1544 NA | 
