Skip to content

Undercurl Rendering Errors #847

@joshklod

Description

@joshklod

Mintty seems to mishandle rewriting a line with undercurl (curly underline). It draws extra lines where they do not belong, and fails to clear them until they are explicitly overridden. They disappear when the window is moved or resized.

image

Reproducing

The issue occurs sporadically on the command line, but I found it could be reproduced more consistently in Vim.

  1. Run the following file in Vim with vim --clean -u mintty-bug.vim mintty-bug.vim
  2. Scroll up and down the file, and move the cursor around the Lorem Ipsum text

Just to prove that Vim is working correctly, you can change the first two lines to:

let &t_Cs="\<Esc>[31m"
let &t_Ce="\<Esc>[0m"

Vim is emitting the control sequences at the correct locations.

mintty-bug.vim

let &t_Cs="\<Esc>[4:3m"
let &t_Ce="\<Esc>[4:0m"

set colorcolumn=60
hi SpellBad ctermbg=NONE cterm=undercurl
set spell

" Lorem ipsum dolor sit amet, consectetur
" adipiscing elit. Nunc ante augue, lacinia at mi
" id, commodo luctus turpis. Donec ut bibendum
" ipsum. Aenean sagittis sed enim sed cursus.
" Fusce interdum purus nec arcu fermentum, id
" imperdiet arcu tincidunt. Phasellus id nibh
" varius, rhoncus risus eu, sollicitudin augue.
" Aliquam vehicula non ante a placerat. Morbi
" vehicula venenatis lorem, non pharetra urna
" vehicula nec. Nunc vehicula condimentum lectus
" et facilisis. Pellentesque volutpat neque
" lectus, finibus consectetur neque accumsan eu.
" Duis sodales et velit vitae accumsan. Sed
" lobortis imperdiet nunc vel ullamcorper. Aliquam
" id erat diam. Nullam sed ipsum nec felis
" venenatis dapibus. Integer faucibus est
" faucibus, dapibus neque in, tempor arcu.
" Maecenas vestibulum nibh et congue condimentum.
"
" Duis consectetur ultricies erat eu placerat.
" Praesent felis libero, rutrum in bibendum sit
" amet, dignissim eget neque. Phasellus luctus
" erat eu convallis mattis. Nunc quis libero
" libero. Nam libero velit, tristique fringilla
" ornare vitae, fringilla bibendum felis. Aenean
" vulputate, nunc in laoreet viverra, nibh sem
" aliquet mauris, quis euismod mi sapien eu
" turpis. Maecenas sit amet condimentum leo.
" Maecenas in nulla et ex tempus feugiat. Nulla
" facilisi.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions