diff options
Diffstat (limited to 'data/vim/patches/8.1.0675')
-rw-r--r-- | data/vim/patches/8.1.0675 | 670 |
1 files changed, 670 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0675 b/data/vim/patches/8.1.0675 new file mode 100644 index 000000000..ab61e5fa0 --- /dev/null +++ b/data/vim/patches/8.1.0675 @@ -0,0 +1,670 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0675 +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.0675 +Problem: Text property column is screen columns is not practical. +Solution: Use byte values for the column. +Files: src/structs.h, src/textprop.c, src/proto/textprop.pro, + runtime/doc/eval.txt, runtime/doc/textprop.txt, + src/testdir/test_textprop.vim, + src/testdir/dumps/Test_textprop_01.dump + + +*** ../vim-8.1.0674/src/structs.h 2018-12-29 20:04:36.257512068 +0100 +--- src/structs.h 2019-01-01 18:32:54.838693737 +0100 +*************** +*** 705,711 **** + */ + typedef struct textprop_S + { +! colnr_T tp_col; // start column (one based) + colnr_T tp_len; // length in bytes + int tp_id; // identifier + int tp_type; // property type +--- 705,711 ---- + */ + typedef struct textprop_S + { +! colnr_T tp_col; // start column (one based, in bytes) + colnr_T tp_len; // length in bytes + int tp_id; // identifier + int tp_type; // property type +*** ../vim-8.1.0674/src/textprop.c 2018-12-28 23:22:36.270750732 +0100 +--- src/textprop.c 2019-01-01 18:56:37.259319158 +0100 +*************** +*** 17,24 **** + * Text properties have a type, which can be used to specify highlighting. + * + * TODO: +! * - Perhaps we only need TP_FLAG_CONT_NEXT ? +! * - Adjust text property column and length when text is inserted/deleted + * - Add an arrray for global_proptypes, to quickly lookup a prop type by ID + * - Add an arrray for b_proptypes, to quickly lookup a prop type by ID + * - Checking the text length to detect text properties is slow. Use a flag in +--- 17,24 ---- + * Text properties have a type, which can be used to specify highlighting. + * + * TODO: +! * - Adjust text property column and length when text is inserted/deleted. +! * - Perhaps we only need TP_FLAG_CONT_NEXT and can drop TP_FLAG_CONT_PREV? + * - Add an arrray for global_proptypes, to quickly lookup a prop type by ID + * - Add an arrray for b_proptypes, to quickly lookup a prop type by ID + * - Checking the text length to detect text properties is slow. Use a flag in +*************** +*** 198,209 **** + { + long length = dict_get_number(dict, (char_u *)"length"); + +! if (length < 1 || end_lnum > start_lnum) + { + EMSG2(_(e_invargval), "length"); + return; + } +! end_col = start_col + length - 1; + } + else if (dict_find(dict, (char_u *)"end_col", -1) != NULL) + { +--- 198,209 ---- + { + long length = dict_get_number(dict, (char_u *)"length"); + +! if (length < 0 || end_lnum > start_lnum) + { + EMSG2(_(e_invargval), "length"); + return; + } +! end_col = start_col + length; + } + else if (dict_find(dict, (char_u *)"end_col", -1) != NULL) + { +*************** +*** 260,272 **** + } + + if (lnum == end_lnum) +! length = end_col - col + 1; + else + length = textlen - col + 1; + if (length > (long)textlen) +! length = textlen; // can include the end-of-line +! if (length < 1) +! length = 1; + + // Allocate the new line with space for the new proprety. + newtext = alloc(buf->b_ml.ml_line_len + sizeof(textprop_T)); +--- 260,272 ---- + } + + if (lnum == end_lnum) +! length = end_col - col; + else + length = textlen - col + 1; + if (length > (long)textlen) +! length = textlen; // can include the end-of-line +! if (length < 0) +! length = 0; // zero-width property + + // Allocate the new line with space for the new proprety. + newtext = alloc(buf->b_ml.ml_line_len + sizeof(textprop_T)); +*************** +*** 912,915 **** +--- 912,925 ---- + buf->b_proptypes = NULL; + } + ++ /* ++ * Adjust the columns of text properties in line "lnum" after position "col" to ++ * shift by "bytes_added" (can be negative). ++ */ ++ void ++ adjust_prop_columns(linenr_T lnum UNUSED, colnr_T col UNUSED, int bytes_added UNUSED) ++ { ++ // TODO ++ } ++ + #endif // FEAT_TEXT_PROP +*** ../vim-8.1.0674/src/proto/textprop.pro 2018-12-25 23:15:41.795966567 +0100 +--- src/proto/textprop.pro 2019-01-01 18:48:26.811215254 +0100 +*************** +*** 13,16 **** +--- 13,17 ---- + void f_prop_type_list(typval_T *argvars, typval_T *rettv); + void clear_global_prop_types(void); + void clear_buf_prop_types(buf_T *buf); ++ void adjust_prop_columns(linenr_T lnum, colnr_T col, int bytes_added); + /* vim: set ft=c : */ +*** ../vim-8.1.0674/runtime/doc/eval.txt 2018-12-27 23:44:34.793953506 +0100 +--- runtime/doc/eval.txt 2019-01-01 19:43:11.660184779 +0100 +*************** +*** 2309,2315 **** + prop_find({props} [, {direction}]) + Dict search for a text property + prop_list({lnum} [, {props}) List text properties in {lnum} +! prop_remove({props} [, {lnum} [, {lnum_end}]]) + Number remove a text property + prop_type_add({name}, {props}) none define a new property type + prop_type_change({name}, {props}) +--- 2323,2329 ---- + prop_find({props} [, {direction}]) + Dict search for a text property + prop_list({lnum} [, {props}) List text properties in {lnum} +! prop_remove({props} [, {lnum} [, {lnum-end}]]) + Number remove a text property + prop_type_add({name}, {props}) none define a new property type + prop_type_change({name}, {props}) +*************** +*** 6673,6703 **** + < + *prop_add()* *E965* + prop_add({lnum}, {col}, {props}) +! Attach a text property at position {lnum}, {col}. Use one for +! the first column. + If {lnum} is invalid an error is given. *E966* + If {col} is invalid an error is given. *E964* + + {props} is a dictionary with these fields: +! "length" - length of text in characters, can only be +! used for a property that does not +! continue in another line +! "end_lnum" - line number for end of text +! "end_col" - last column of the text; not used when +! "length" is present +! "bufnr" - buffer to add the property to; when +! omitted the current buffer is used +! "id" - user defined ID for the property; when +! omitted zero is used +! "type" - name of the text property type + All fields except "type" are optional. + + It is an error when both "length" and "end_lnum" or "end_col" +! are passed. Either use "length" or "end_col" for a property + within one line, or use "end_lnum" and "end_col" for a + property that spans more than one line. +! When neither "length" nor "end_col" are passed the property +! will apply to one character. + The property can end exactly at the last character of the + text, or just after it. In the last case, if text is appended + to the line, the text property size will increase, also when +--- 6689,6721 ---- + < + *prop_add()* *E965* + prop_add({lnum}, {col}, {props}) +! Attach a text property at position {lnum}, {col}. {col} is +! counted in bytes, use one for the first column. + If {lnum} is invalid an error is given. *E966* + If {col} is invalid an error is given. *E964* + + {props} is a dictionary with these fields: +! length length of text in bytes, can only be used +! for a property that does not continue in +! another line; can be zero +! end_lnum line number for the end of text +! end_col column just after the text; not used when "length" +! is present; when {col} and "end_col" are equal +! this is a zero-width text property +! bufnr buffer to add the property to; when omitted +! the current buffer is used +! id user defined ID for the property; when omitted +! zero is used +! type name of the text property type + All fields except "type" are optional. + + It is an error when both "length" and "end_lnum" or "end_col" +! are given. Either use "length" or "end_col" for a property + within one line, or use "end_lnum" and "end_col" for a + property that spans more than one line. +! When neither "length" nor "end_col" are given the property +! will be zero-width. That means it will not be highlighted but +! will move with the text, as a kind of mark. + The property can end exactly at the last character of the + text, or just after it. In the last case, if text is appended + to the line, the text property size will increase, also when +*************** +*** 6724,6742 **** + prop_find({props} [, {direction}]) + NOT IMPLEMENTED YET + Search for a text property as specified with {props}: +! "id" property with this ID +! "type" property with this type name +! "bufnr buffer to search in; when present a +! start position with "lnum" and "col" +! must be given; when omitted the +! current buffer is used +! "lnum" start in this line (when omitted start +! at the cursor) +! "col" start at this column (when omitted +! and "lnum" is given: use column 1, +! otherwise start at the cursor) +! "skipstart" do not look for a match at the start +! position + + {direction} can be "f" for forward and "b" for backward. When + omitted forward search is performed. +--- 6742,6760 ---- + prop_find({props} [, {direction}]) + NOT IMPLEMENTED YET + Search for a text property as specified with {props}: +! id property with this ID +! type property with this type name +! bufnr buffer to search in; when present a +! start position with "lnum" and "col" +! must be given; when omitted the +! current buffer is used +! lnum" start in this line (when omitted start +! at the cursor) +! col start at this column (when omitted +! and "lnum" is given: use column 1, +! otherwise start at the cursor) +! skipstart do not look for a match at the start +! position + + {direction} can be "f" for forward and "b" for backward. When + omitted forward search is performed. +*************** +*** 6756,6768 **** + + The properties are ordered by starting column and priority. + Each property is a Dict with these entries: +! "col" starting column +! "length" length in bytes +! "id" property ID +! "type" name of the property type, omitted if +! the type was deleted +! "start" when TRUE property starts in this line +! "end" when TRUE property ends in this line + + When "start" is zero the property started in a previous line, + the current one is a continuation. +--- 6774,6787 ---- + + The properties are ordered by starting column and priority. + Each property is a Dict with these entries: +! col starting column +! length length in bytes, one more if line break is +! included +! id property ID +! type name of the property type, omitted if +! the type was deleted +! start when TRUE property starts in this line +! end when TRUE property ends in this line + + When "start" is zero the property started in a previous line, + the current one is a continuation. +*************** +*** 6773,6791 **** + + + *prop_remove()* *E968* +! prop_remove({props} [, {lnum} [, {lnum_end}]]) + Remove a matching text property from line {lnum}. When +! {lnum_end} is given, remove matching text properties from line +! {lnum} to {lnum_end} (inclusive). + When {lnum} is omitted remove matching text properties from + all lines. + + {props} is a dictionary with these fields: +! "id" - remove text properties with this ID +! "type" - remove text properties with this type name +! "bufnr" - use this buffer instead of the current one +! "all" - when TRUE remove all matching text +! properties, not just the first one + A property matches when either "id" or "type" matches. + + Returns the number of properties that were removed. +--- 6792,6810 ---- + + + *prop_remove()* *E968* +! prop_remove({props} [, {lnum} [, {lnum-end}]]) + Remove a matching text property from line {lnum}. When +! {lnum-end} is given, remove matching text properties from line +! {lnum} to {lnum-end} (inclusive). + When {lnum} is omitted remove matching text properties from + all lines. + + {props} is a dictionary with these fields: +! id remove text properties with this ID +! type remove text properties with this type name +! bufnr use this buffer instead of the current one +! all when TRUE remove all matching text properties, +! not just the first one + A property matches when either "id" or "type" matches. + + Returns the number of properties that were removed. +*************** +*** 6797,6818 **** + Add a text property type {name}. If a property type with this + name already exists an error is given. + {props} is a dictionary with these optional fields: +! "bufnr" - define the property only for this +! buffer; this avoids name collisions and +! automatically clears the property types +! when the buffer is deleted. +! "highlight" - name of highlight group to use +! "priority" - when a character has multiple text +! properties the one with the highest +! priority will be used; negative values +! can be used, the default priority is +! zero +! "start_incl" - when TRUE inserts at the start +! position will be included in the text +! property +! "end_incl" - when TRUE inserts at the end +! position will be included in the text +! property + + See |text-properties| for information about text properties. + +--- 6816,6834 ---- + Add a text property type {name}. If a property type with this + name already exists an error is given. + {props} is a dictionary with these optional fields: +! bufnr define the property only for this buffer; this +! avoids name collisions and automatically +! clears the property types when the buffer is +! deleted. +! highlight name of highlight group to use +! priority when a character has multiple text +! properties the one with the highest priority +! will be used; negative values can be used, the +! default priority is zero +! start_incl when TRUE inserts at the start position will +! be included in the text property +! end_incl when TRUE inserts at the end position will be +! included in the text property + + See |text-properties| for information about text properties. + +*** ../vim-8.1.0674/runtime/doc/textprop.txt 2018-12-13 22:17:52.869941530 +0100 +--- runtime/doc/textprop.txt 2018-12-30 22:07:01.985153172 +0100 +*************** +*** 1,4 **** +! *textprop.txt* For Vim version 8.1. Last change: 2018 Dec 13 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *textprop.txt* For Vim version 8.1. Last change: 2018 Dec 30 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 70,79 **** + + The number 123 is smaller than 4567. + +! To highlight the numbers: > + call prop_type_add('number', {'highlight': 'Constant'}) +! call prop_add(11, 12, {'length': 3, 'type': 'number}) +! call prop_add(11, 32, {'length': 4, 'type': 'number}) + + Setting "start_incl" and "end_incl" is useful when white space surrounds the + text, e.g. for a function name. Using false is useful when the text starts +--- 70,82 ---- + + The number 123 is smaller than 4567. + +! To highlight the numbers in this text: > + call prop_type_add('number', {'highlight': 'Constant'}) +! call prop_add(11, 12, {'length': 3, 'type': 'number'}) +! call prop_add(11, 32, {'length': 4, 'type': 'number'}) +! +! Try inserting or deleting lines above the text, you will see that the text +! properties stick to the text, thus the line number is adjusted as needed. + + Setting "start_incl" and "end_incl" is useful when white space surrounds the + text, e.g. for a function name. Using false is useful when the text starts +*************** +*** 86,92 **** + ^^^^^^ property with start_incl and end_incl not set + + Nevertheless, when text is inserted or deleted the text may need to be parsed +! and the text properties updated. But this can be done asynchrnously. + + ============================================================================== + 2. Functions *text-prop-functions* +--- 89,95 ---- + ^^^^^^ property with start_incl and end_incl not set + + Nevertheless, when text is inserted or deleted the text may need to be parsed +! and the text properties updated. But this can be done asynchronously. + + ============================================================================== + 2. Functions *text-prop-functions* +*************** +*** 103,113 **** + Manipulating text properties: + + prop_add({lnum}, {col}, {props}) add a text property +! prop_clear({lnum} [, {lnum_end} [, {bufnr}]]) + remove all text properties + prop_find({props} [, {direction}]) search for a text property + prop_list({lnum} [, {props}) text properties in {lnum} +! prop_remove({props} [, {lnum} [, {lnum_end}]]) + remove a text property + + +--- 106,116 ---- + Manipulating text properties: + + prop_add({lnum}, {col}, {props}) add a text property +! prop_clear({lnum} [, {lnum-end} [, {bufnr}]]) + remove all text properties + prop_find({props} [, {direction}]) search for a text property + prop_list({lnum} [, {props}) text properties in {lnum} +! prop_remove({props} [, {lnum} [, {lnum-end}]]) + remove a text property + + +*** ../vim-8.1.0674/src/testdir/test_textprop.vim 2018-12-31 20:05:50.779224516 +0100 +--- src/testdir/test_textprop.vim 2019-01-01 19:39:24.906080572 +0100 +*************** +*** 7,12 **** +--- 7,14 ---- + + source screendump.vim + ++ " test length zero ++ + func Test_proptype_global() + call prop_type_add('comment', {'highlight': 'Directory', 'priority': 123, 'start_incl': 1, 'end_incl': 1}) + let proptypes = prop_type_list() +*************** +*** 112,117 **** +--- 114,125 ---- + 1del + call assert_equal(s:expected_props, prop_list(1)) + ++ " Prop without length or end column is zero length ++ call prop_clear(1) ++ call prop_add(1, 5, {'type': 'two'}) ++ let expected = [{'col': 5, 'length': 0, 'type': 'two', 'id': 0, 'start': 1, 'end': 1}] ++ call assert_equal(expected, prop_list(1)) ++ + call DeletePropTypes() + bwipe! + endfunc +*************** +*** 220,226 **** + call assert_equal([expect1], prop_list(1)) + let expect2 = {'col': 1, 'length': 10, 'type': 'comment', 'start': 0, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) +! let expect3 = {'col': 1, 'length': 5, 'type': 'comment', 'start': 0, 'end': 1, 'id': 0} + call assert_equal([expect3], prop_list(3)) + call prop_clear(1, 3) + +--- 228,234 ---- + call assert_equal([expect1], prop_list(1)) + let expect2 = {'col': 1, 'length': 10, 'type': 'comment', 'start': 0, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) +! let expect3 = {'col': 1, 'length': 4, 'type': 'comment', 'start': 0, 'end': 1, 'id': 0} + call assert_equal([expect3], prop_list(3)) + call prop_clear(1, 3) + +*************** +*** 236,265 **** + + bwipe! + +! " Test deleting the first line with a prop. + call Setup_three_line_prop() + let expect2 = {'col': 4, 'length': 4, 'type': 'comment', 'start': 1, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) + 2del +- let expect_short = {'col': 2, 'length': 1, 'type': 'comment', 'start': 1, 'end': 1, 'id': 0} + call assert_equal([expect_short], prop_list(1)) + let expect2 = {'col': 1, 'length': 6, 'type': 'comment', 'start': 1, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) + bwipe! + +! " Test deleting the last line with a prop. + call Setup_three_line_prop() + let expect3 = {'col': 1, 'length': 6, 'type': 'comment', 'start': 0, 'end': 0, 'id': 0} + call assert_equal([expect3], prop_list(3)) +! let expect4 = {'col': 1, 'length': 5, 'type': 'comment', 'start': 0, 'end': 1, 'id': 0} + call assert_equal([expect4], prop_list(4)) + 4del +! let expect3 = {'col': 1, 'length': 6, 'type': 'comment', 'start': 0, 'end': 1, 'id': 0} + call assert_equal([expect3], prop_list(3)) + call assert_equal([expect_short], prop_list(4)) + bwipe! + +! " Test appending a line below the text prop start. + call Setup_three_line_prop() + let expect2 = {'col': 4, 'length': 4, 'type': 'comment', 'start': 1, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) +--- 244,274 ---- + + bwipe! + +! " Test deleting the first line of a multi-line prop. + call Setup_three_line_prop() ++ let expect_short = {'col': 2, 'length': 1, 'type': 'comment', 'start': 1, 'end': 1, 'id': 0} ++ call assert_equal([expect_short], prop_list(1)) + let expect2 = {'col': 4, 'length': 4, 'type': 'comment', 'start': 1, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) + 2del + call assert_equal([expect_short], prop_list(1)) + let expect2 = {'col': 1, 'length': 6, 'type': 'comment', 'start': 1, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) + bwipe! + +! " Test deleting the last line of a multi-line prop. + call Setup_three_line_prop() + let expect3 = {'col': 1, 'length': 6, 'type': 'comment', 'start': 0, 'end': 0, 'id': 0} + call assert_equal([expect3], prop_list(3)) +! let expect4 = {'col': 1, 'length': 4, 'type': 'comment', 'start': 0, 'end': 1, 'id': 0} + call assert_equal([expect4], prop_list(4)) + 4del +! let expect3.end = 1 + call assert_equal([expect3], prop_list(3)) + call assert_equal([expect_short], prop_list(4)) + bwipe! + +! " Test appending a line below the multi-line text prop start. + call Setup_three_line_prop() + let expect2 = {'col': 4, 'length': 4, 'type': 'comment', 'start': 1, 'end': 0, 'id': 0} + call assert_equal([expect2], prop_list(2)) +*************** +*** 287,308 **** + + " screenshot test with textprop highlighting + funct Test_textprop_screenshots() +! if !CanRunVimInTerminal() + return + endif + call writefile([ +! \ "call setline(1, ['One two', 'Number 123 and then 4567.', 'Three'])", + \ "hi NumberProp ctermfg=blue", + \ "hi LongProp ctermbg=yellow", + \ "call prop_type_add('number', {'highlight': 'NumberProp'})", + \ "call prop_type_add('long', {'highlight': 'LongProp'})", + \ "call prop_add(1, 4, {'end_lnum': 3, 'end_col': 3, 'type': 'long'})", +! \ "call prop_add(2, 8, {'length': 3, 'type': 'number'})", +! \ "call prop_add(2, 21, {'length': 4, 'type': 'number'})", + \ "set number", + \ "set spell", + \], 'XtestProp') +! let buf = RunVimInTerminal('-S XtestProp', {}) + call VerifyScreenDump(buf, 'Test_textprop_01', {}) + + " clean up +--- 296,318 ---- + + " screenshot test with textprop highlighting + funct Test_textprop_screenshots() +! if !CanRunVimInTerminal() || &encoding != 'utf-8' + return + endif + call writefile([ +! \ "call setline(1, ['One two', 'Numbér 123 änd thœn 4¾7.', 'Three'])", + \ "hi NumberProp ctermfg=blue", + \ "hi LongProp ctermbg=yellow", + \ "call prop_type_add('number', {'highlight': 'NumberProp'})", + \ "call prop_type_add('long', {'highlight': 'LongProp'})", + \ "call prop_add(1, 4, {'end_lnum': 3, 'end_col': 3, 'type': 'long'})", +! \ "call prop_add(2, 9, {'length': 3, 'type': 'number'})", +! \ "call prop_add(2, 24, {'length': 4, 'type': 'number'})", + \ "set number", ++ \ "hi clear SpellBad", + \ "set spell", + \], 'XtestProp') +! let buf = RunVimInTerminal('-S XtestProp', {'rows': 6}) + call VerifyScreenDump(buf, 'Test_textprop_01', {}) + + " clean up +*** ../vim-8.1.0674/src/testdir/dumps/Test_textprop_01.dump 2018-12-31 14:34:00.466438581 +0100 +--- src/testdir/dumps/Test_textprop_01.dump 2019-01-01 19:29:48.618878036 +0100 +*************** +*** 1,20 **** + | +0#af5f00255#ffffff0@1|1| >O+0#0000000&|n|e| +0&#ffff4012|t|w|o| +0&#ffffff0@63 +! | +0#af5f00255&@1|2| |N+0#0000000#ffff4012|u|m|b|e|r| |1+0#4040ff13&|2|3| +0#0000000&|a|n|d| |t|h|e|n| |4+0#4040ff13&|5|6|7|.+0#0000000&| +0&#ffffff0@45 +! | +0#af5f00255&@1|3| |T+0#0000000#ffff4012|h|r|e+0&#ffffff0@1| @65 + |~+0#4040ff13&| @73 + |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 +- |~| @73 + | +0#0000000&@56|1|,|1| @10|A|l@1| +--- 1,6 ---- + | +0#af5f00255#ffffff0@1|1| >O+0#0000000&|n|e| +0&#ffff4012|t|w|o| +0&#ffffff0@63 +! | +0#af5f00255&@1|2| |N+0#0000000#ffff4012|u|m|b|é|r| |1+0#4040ff13&|2|3| +0#0000000&|ä|n|d| |t|h|œ|n| |4+0#4040ff13&|¾|7|.+0#0000000&| +0&#ffffff0@46 +! | +0#af5f00255&@1|3| |T+0#0000000#ffff4012|h|r+0&#ffffff0|e@1| @65 + |~+0#4040ff13&| @73 + |~| @73 + | +0#0000000&@56|1|,|1| @10|A|l@1| +*** ../vim-8.1.0674/src/version.c 2019-01-01 15:15:43.165078543 +0100 +--- src/version.c 2019-01-01 18:30:12.944106089 +0100 +*************** +*** 801,802 **** +--- 801,804 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 675, + /**/ + +-- +From "know your smileys": + :-D Big smile + + /// 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 /// |