From 959ef61430bdd8fb982b38bd3347d90251255cfc Mon Sep 17 00:00:00 2001 From: Luca Saccarola Date: Sun, 1 Dec 2024 16:25:53 +0100 Subject: [PATCH] patch 9.1.0899: default for 'backspace' can be set in C code Problem: default for 'backspace' can be set in C code Solution: promote the default for 'backspace' from defaults.vim to the C code (Luca Saccarola) closes: #16143 Signed-off-by: Luca Saccarola Signed-off-by: Christian Brabandt --- runtime/defaults.vim | 5 +---- runtime/doc/options.txt | 3 +-- runtime/doc/version9.txt | 2 ++ src/optiondefs.h | 4 ++-- src/testdir/test_autocmd.vim | 4 ++-- src/testdir/test_digraph.vim | 3 +++ src/testdir/test_ins_complete.vim | 2 +- src/testdir/test_options.vim | 2 +- src/version.c | 2 ++ 9 files changed, 15 insertions(+), 12 deletions(-) diff --git a/runtime/defaults.vim b/runtime/defaults.vim index 82f3358962..38b03da11d 100644 --- a/runtime/defaults.vim +++ b/runtime/defaults.vim @@ -1,7 +1,7 @@ " The default vimrc file. " " Maintainer: The Vim Project -" Last Change: 2024 Nov 14 +" Last Change: 2024 Dec 01 " Former Maintainer: Bram Moolenaar " " This is loaded if no vimrc file was found. @@ -33,9 +33,6 @@ silent! while 0 set nocompatible silent! endwhile -" Allow backspacing over everything in insert mode. -set backspace=indent,eol,start - set ruler " show the cursor position all the time set showcmd " display incomplete commands diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 05c2d9d4c3..764b4ab337 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1069,8 +1069,7 @@ A jump table for the options with a short description can be found at |Q_op|. done with ":syntax on". *'backspace'* *'bs'* -'backspace' 'bs' string (default "", set to "indent,eol,start" - in |defaults.vim|) +'backspace' 'bs' string (Vim default: "indent,eol,start", Vi default: "") global Influences the working of , , CTRL-W and CTRL-U in Insert mode. This is a list of items, separated by commas. Each item allows diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index b9977a9f2c..2aadcd3f4f 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -41611,6 +41611,8 @@ Changed~ - 'rulerformat' now supports the |stl-%!| item - the default 'history' option value has been increased to 200 and removed from |defaults.vim| +- the default 'backspace' option for Vim has been set to "indent,eol,start" + and removed from |defaults.vim| *added-9.2* Added ~ diff --git a/src/optiondefs.h b/src/optiondefs.h index ca085d42c2..2959232d06 100644 --- a/src/optiondefs.h +++ b/src/optiondefs.h @@ -414,9 +414,9 @@ static struct vimoption options[] = (char_u *)"light", #endif (char_u *)0L} SCTX_INIT}, - {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_ONECOMMA|P_NODUP, + {"backspace", "bs", P_STRING|P_VIM|P_ONECOMMA|P_NODUP, (char_u *)&p_bs, PV_NONE, did_set_backspace, expand_set_backspace, - {(char_u *)"", (char_u *)0L} SCTX_INIT}, + {(char_u *)"", (char_u *)"indent,eol,start"} SCTX_INIT}, {"backup", "bk", P_BOOL|P_VI_DEF|P_VIM, (char_u *)&p_bk, PV_NONE, NULL, NULL, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 531aa6b96b..d6f8ef4cee 100644 --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -1279,8 +1279,8 @@ func Test_OptionSet() call assert_equal(g:opt[0], g:opt[1]) " 14: Setting option backspace through :let" - let g:options = [['backspace', '', '', '', 'eol,indent,start', 'global', 'set']] - let &bs = "eol,indent,start" + let g:options = [['backspace', 'indent,eol,start', 'indent,eol,start', 'indent,eol,start', '', 'global', 'set']] + let &bs = '' call assert_equal([], g:options) call assert_equal(g:opt[0], g:opt[1]) diff --git a/src/testdir/test_digraph.vim b/src/testdir/test_digraph.vim index 3312faf31f..16eb0b1583 100644 --- a/src/testdir/test_digraph.vim +++ b/src/testdir/test_digraph.vim @@ -250,9 +250,12 @@ func Test_digraphs_option() call Put_Dig_BS("P","=") call assert_equal(['Р']+repeat(["₽"],2)+['П'], getline(line('.')-3,line('.'))) " Not a digraph: this is different from ! + let _bs = &bs + set bs= call Put_Dig_BS("a","\") call Put_Dig_BS("\","a") call assert_equal(['','a'], getline(line('.')-1,line('.'))) + let &bs = _bs " Grave call Put_Dig_BS("a","!") call Put_Dig_BS("!","e") diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index fd4c7cded5..7829f79fbb 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -1431,7 +1431,7 @@ func Test_complete_item_refresh_always() set completefunc=Tcomplete exe "normal! iup\\\\\\\" call assert_equal('up', getline(1)) - call assert_equal(2, g:CallCount) + call assert_equal(6, g:CallCount) set completeopt& set completefunc& bw! diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index fa75204cfc..cd66cdfaeb 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -486,7 +486,7 @@ func Test_set_completion_string_values() " but don't exhaustively validate their results. call assert_equal('single', getcompletion('set ambw=', 'cmdline')[0]) call assert_match('light\|dark', getcompletion('set bg=', 'cmdline')[1]) - call assert_equal('indent', getcompletion('set backspace=', 'cmdline')[0]) + call assert_equal('indent,eol,start', getcompletion('set backspace=', 'cmdline')[0]) call assert_equal('yes', getcompletion('set backupcopy=', 'cmdline')[1]) call assert_equal('backspace', getcompletion('set belloff=', 'cmdline')[1]) call assert_equal('min:', getcompletion('set briopt=', 'cmdline')[1]) diff --git a/src/version.c b/src/version.c index f83e5976de..7558bdc1b1 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 899, /**/ 898, /**/