diff options
Diffstat (limited to 'data/vim/patches/8.1.0369')
-rw-r--r-- | data/vim/patches/8.1.0369 | 297 |
1 files changed, 297 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0369 b/data/vim/patches/8.1.0369 new file mode 100644 index 000000000..beeeddae7 --- /dev/null +++ b/data/vim/patches/8.1.0369 @@ -0,0 +1,297 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0369 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0369 +Problem: Continuation lines cannot contain comments. +Solution: Support using "\ . +Files: src/ex_cmds2.c, src/testdir/test_eval_stuff.vim, + runtime/indent/vim.vim, runtime/doc/repeat.txt + + +*** ../vim-8.1.0368/src/ex_cmds2.c 2018-09-10 21:04:09.868392665 +0200 +--- src/ex_cmds2.c 2018-09-11 22:04:18.810842128 +0200 +*************** +*** 4864,4880 **** + /* compensate for the one line read-ahead */ + --sourcing_lnum; + +! /* Get the next line and concatenate it when it starts with a +! * backslash. We always need to read the next line, keep it in +! * sp->nextline. */ + sp->nextline = get_one_sourceline(sp); +! if (sp->nextline != NULL && *(p = skipwhite(sp->nextline)) == '\\') + { + garray_T ga; + + ga_init2(&ga, (int)sizeof(char_u), 400); + ga_concat(&ga, line); +! ga_concat(&ga, p + 1); + for (;;) + { + vim_free(sp->nextline); +--- 4864,4884 ---- + /* compensate for the one line read-ahead */ + --sourcing_lnum; + +! // Get the next line and concatenate it when it starts with a +! // backslash. We always need to read the next line, keep it in +! // sp->nextline. +! /* Also check for a comment in between continuation lines: "\ */ + sp->nextline = get_one_sourceline(sp); +! if (sp->nextline != NULL +! && (*(p = skipwhite(sp->nextline)) == '\\' +! || (p[0] == '"' && p[1] == '\\' && p[2] == ' '))) + { + garray_T ga; + + ga_init2(&ga, (int)sizeof(char_u), 400); + ga_concat(&ga, line); +! if (*p == '\\') +! ga_concat(&ga, p + 1); + for (;;) + { + vim_free(sp->nextline); +*************** +*** 4882,4899 **** + if (sp->nextline == NULL) + break; + p = skipwhite(sp->nextline); +! if (*p != '\\') +! break; +! /* Adjust the growsize to the current length to speed up +! * concatenating many lines. */ +! if (ga.ga_len > 400) + { +! if (ga.ga_len > 8000) +! ga.ga_growsize = 8000; +! else +! ga.ga_growsize = ga.ga_len; + } +! ga_concat(&ga, p + 1); + } + ga_append(&ga, NUL); + vim_free(line); +--- 4886,4906 ---- + if (sp->nextline == NULL) + break; + p = skipwhite(sp->nextline); +! if (*p == '\\') + { +! // Adjust the growsize to the current length to speed up +! // concatenating many lines. +! if (ga.ga_len > 400) +! { +! if (ga.ga_len > 8000) +! ga.ga_growsize = 8000; +! else +! ga.ga_growsize = ga.ga_len; +! } +! ga_concat(&ga, p + 1); + } +! else if (p[0] != '"' || p[1] != '\\' || p[2] != ' ') +! break; + } + ga_append(&ga, NUL); + vim_free(line); +*** ../vim-8.1.0368/src/testdir/test_eval_stuff.vim 2018-04-14 13:36:34.000000000 +0200 +--- src/testdir/test_eval_stuff.vim 2018-09-11 22:16:11.397628697 +0200 +*************** +*** 42,44 **** +--- 42,55 ---- + call delete('Xfile') + call delete('Xmkdir', 'rf') + endfunc ++ ++ func Test_line_continuation() ++ let array = [5, ++ "\ ignore this ++ \ 6, ++ "\ more to ignore ++ "\ more moreto ignore ++ \ ] ++ "\ and some more ++ call assert_equal([5, 6], array) ++ endfunc +*** ../vim-8.1.0368/runtime/indent/vim.vim 2016-06-27 20:39:41.000000000 +0200 +--- runtime/indent/vim.vim 2018-09-11 22:19:48.151294837 +0200 +*************** +*** 10,16 **** + let b:did_indent = 1 + + setlocal indentexpr=GetVimIndent() +! setlocal indentkeys+==end,=else,=cat,=fina,=END,0\\ + + let b:undo_indent = "setl indentkeys< indentexpr<" + +--- 10,16 ---- + let b:did_indent = 1 + + setlocal indentexpr=GetVimIndent() +! setlocal indentkeys+==end,=else,=cat,=fina,=END,0\\,0=\"\\\ + + let b:undo_indent = "setl indentkeys< indentexpr<" + +*************** +*** 31,45 **** + endtry + endfunc + + function GetVimIndentIntern() + " Find a non-blank line above the current line. + let lnum = prevnonblank(v:lnum - 1) + +! " If the current line doesn't start with '\' and below a line that starts +! " with '\', use the indent of the line above it. + let cur_text = getline(v:lnum) +! if cur_text !~ '^\s*\\' +! while lnum > 0 && getline(lnum) =~ '^\s*\\' + let lnum = lnum - 1 + endwhile + endif +--- 31,47 ---- + endtry + endfunc + ++ let s:lineContPat = '^\s*\(\\\|"\\ \)' ++ + function GetVimIndentIntern() + " Find a non-blank line above the current line. + let lnum = prevnonblank(v:lnum - 1) + +! " If the current line doesn't start with '\' or '"\ ' and below a line that +! " starts with '\' or '"\ ', use the indent of the line above it. + let cur_text = getline(v:lnum) +! if cur_text !~ s:lineContPat +! while lnum > 0 && getline(lnum) =~ s:lineContPat + let lnum = lnum - 1 + endwhile + endif +*************** +*** 51,60 **** + let prev_text = getline(lnum) + + " Add a 'shiftwidth' after :if, :while, :try, :catch, :finally, :function +! " and :else. Add it three times for a line that starts with '\' after +! " a line that doesn't (or g:vim_indent_cont if it exists). + let ind = indent(lnum) +! if cur_text =~ '^\s*\\' && v:lnum > 1 && prev_text !~ '^\s*\\' + if exists("g:vim_indent_cont") + let ind = ind + g:vim_indent_cont + else +--- 53,62 ---- + let prev_text = getline(lnum) + + " Add a 'shiftwidth' after :if, :while, :try, :catch, :finally, :function +! " and :else. Add it three times for a line that starts with '\' or '"\ ' +! " after a line that doesn't (or g:vim_indent_cont if it exists). + let ind = indent(lnum) +! if cur_text =~ s:lineContPat && v:lnum > 1 && prev_text !~ s:lineContPat + if exists("g:vim_indent_cont") + let ind = ind + g:vim_indent_cont + else +*** ../vim-8.1.0368/runtime/doc/repeat.txt 2018-05-17 13:42:02.000000000 +0200 +--- runtime/doc/repeat.txt 2018-09-11 22:34:47.266339513 +0200 +*************** +*** 265,271 **** + loaded during initialization, see |load-plugins|. + + Also see |pack-add|. +! {only available when compiled with +eval} + + *:packl* *:packloadall* + :packl[oadall][!] Load all packages in the "start" directory under each +--- 265,271 ---- + loaded during initialization, see |load-plugins|. + + Also see |pack-add|. +! {only available when compiled with |+eval|} + + *:packl* *:packloadall* + :packl[oadall][!] Load all packages in the "start" directory under each +*************** +*** 289,295 **** + An error only causes sourcing the script where it + happens to be aborted, further plugins will be loaded. + See |packages|. +! {only available when compiled with +eval} + + :scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167* + Specify the character encoding used in the script. +--- 289,295 ---- + An error only causes sourcing the script where it + happens to be aborted, further plugins will be loaded. + See |packages|. +! {only available when compiled with |+eval|} + + :scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167* + Specify the character encoding used in the script. +*************** +*** 465,470 **** +--- 465,480 ---- + . + :endfunction + :set cpo-=C ++ < ++ *line-continuation-comment* ++ To add a comment in between the lines start with '\" '. Notice the space ++ after the double quote. Example: > ++ let array = [ ++ "\ first entry comment ++ \ 'first', ++ "\ second entry comment ++ \ 'second', ++ \ ] + + Rationale: + Most programs work with a trailing backslash to indicate line +*************** +*** 473,478 **** +--- 483,496 ---- + :map xx asdf\ + < Therefore the unusual leading backslash is used. + ++ Starting a comment in a continuation line results in all following ++ continuation lines to be part of the comment. Since it was like this ++ for a long time, when making it possible to add a comment halfway a ++ sequence of continuation lines, it was not possible to use \", since ++ that was a valid continuation line. Using '"\ ' comes closest, even ++ though it may look a bit weird. Requiring the space after the ++ backslash is to make it very unlikely this is a normal comment line. ++ + ============================================================================== + 5. Using Vim packages *packages* + +*************** +*** 1010,1013 **** + - The "self" time is wrong when a function is used recursively. + + +! vim:tw=78:ts=8:ft=help:norl: +--- 1028,1031 ---- + - The "self" time is wrong when a function is used recursively. + + +! vim:tw=78:ts=8:noet:ft=help:norl: +*** ../vim-8.1.0368/src/version.c 2018-09-11 21:30:05.253070476 +0200 +--- src/version.c 2018-09-11 22:03:43.867404925 +0200 +*************** +*** 796,797 **** +--- 796,799 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 369, + /**/ + +-- +He who laughs last, thinks slowest. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |