Mercurial > vim
view runtime/evim.vim @ 33872:2c5ae1ce5af2 v9.0.2146
patch 9.0.2146: text-property without type errors when joining
Commit: https://github.com/vim/vim/commit/0d0b3b19517c321b089d637919e88e49a07a3d85
Author: Christian Brabandt <cb@256bit.org>
Date: Sun Dec 3 17:56:43 2023 +0100
patch 9.0.2146: text-property without type errors when joining
Problem: text-property without type errors when joining
Solution: count all text-properties, with or without type
before joining lines
Error when joining lines with text properties without a proper type
When joining lines, we need to consider all text properties that are
attached to a line, even when those text properties are invalid and do
not have a type attached to them.
However, since patch v9.0.0993
(commit: 89469d157aea01513bde826b4519dd6b5fbceae4)
those text properties won't be counted when joining lines and therefore
this will cause the adjustment for text properties on joining to go
wrong (and may later cause SIGABRT with an invalid free pointer)
I am not sure, why the condition to not count text properties with a
valid type was added in patch v9.0.993, because no test fails if those
condition is removed. So let's just remove this condition and add a test
that verifies, that we are able to join lines, even when the text
properties attached to it do not have a valid type.
fixes: #13609
closes: #13614
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 10 Dec 2023 15:16:11 +0100 |
parents | 4027cefc2aab |
children |
line wrap: on
line source
" Vim script for Evim key bindings " Maintainer: The Vim Project <https://github.com/vim/vim> " Last Change: 2023 Aug 10 " Former Maintainer: Bram Moolenaar <Bram@vim.org> " Don't use Vi-compatible mode. set nocompatible " Use the mswin.vim script for most mappings source <sfile>:p:h/mswin.vim " Allow for using CTRL-Q in Insert mode to quit Vim. inoremap <C-Q> <C-O>:confirm qall<CR> " Vim is in Insert mode by default set insertmode " Make a buffer hidden when editing another one set hidden " Make cursor keys ignore wrapping inoremap <silent> <Down> <C-R>=pumvisible() ? "\<lt>Down>" : "\<lt>C-O>gj"<CR> inoremap <silent> <Up> <C-R>=pumvisible() ? "\<lt>Up>" : "\<lt>C-O>gk"<CR> " CTRL-F does Find dialog instead of page forward noremap <silent> <C-F> :promptfind<CR> vnoremap <silent> <C-F> y:promptfind <C-R>"<CR> onoremap <silent> <C-F> <C-C>:promptfind<CR> inoremap <silent> <C-F> <C-O>:promptfind<CR> cnoremap <silent> <C-F> <C-C>:promptfind<CR> set backspace=2 " allow backspacing over everything in insert mode set autoindent " always set autoindenting on if has("vms") set nobackup " do not keep a backup file, use versions instead else set backup " keep a backup file endif set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set incsearch " do incremental searching set mouse=a " always use the mouse " Don't use Ex mode, use Q for formatting map Q gq " Switch syntax highlighting on, when the terminal has colors " Highlight the last used search pattern on the next search command. if &t_Co > 2 || has("gui_running") syntax on set hlsearch nohlsearch endif " Enable file type detection. " Use the default filetype settings, so that mail gets 'tw' set to 72, " 'cindent' is on in C files, etc. " Also load indent files, to automatically do language-dependent indenting. filetype plugin indent on " For all text files set 'textwidth' to 78 characters. au FileType text setlocal tw=78 " Add optional packages. " " The matchit plugin makes the % command work better, but it is not backwards " compatible. " The ! means the package won't be loaded right away but when plugins are " loaded during initialization. if has('syntax') && has('eval') packadd! matchit endif " vim: set sw=2 :