Patch 8.1.2216

21 views
Skip to first unread message

John Marriott

unread,
Oct 25, 2019, 6:18:23 PM10/25/19
to vim...@googlegroups.com
Hi all,

After this patch, mingw64 throws this warning if FEAT_TEXT_PROP is not
defined:
gcc -c -I. -Iproto -DWIN32 -DWINVER=0x0603 -D_WIN32_WINNT=0x0603
-DHAVE_PATHDEF -DFEAT_NORMAL -DHAVE_STDINT_H -DFEAT_GUI_MSWIN
-DFEAT_CLIPBOARD -pipe -march=native -Wall -O3 -fomit-frame-pointer
-freg-struct-return ex_cmds.c -o gobjnative/ex_cmds.o
ex_cmds.c: In function 'do_sub':
ex_cmds.c:3859:14: warning: unused variable 'total_added'
[-Wunused-variable]
 3859 |      colnr_T total_added =  0;
      |              ^~~~~~~~~~~

Please check the attached patch which tries to correct it.
Cheers
John
ex_cmds.c.8.1.2216.patch

Tony Mechelynck

unread,
Oct 25, 2019, 6:30:24 PM10/25/19
to vim_dev
I see the same warning on Linux gcc but only when building with Tiny
or Small features, as follows:

linux-2iyu:~/.build/vim/vim-hg/src/shadow-tiny # (make || echo 'exit
status' $? ; date) 2>&1 |tee -a make.log
gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -fno-strength-reduce -Wall
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/ex_cmds.o
ex_cmds.c
ex_cmds.c: In function ‘do_sub’:
ex_cmds.c:3859:14: warning: unused variable ‘total_added’ [-Wunused-variable]
colnr_T total_added = 0;
^~~~~~~~~~~
gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -fno-strength-reduce -Wall
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/textprop.o
textprop.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -fno-strength-reduce -Wall
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 version.c -o
objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
gcc -L/usr/local/lib -Wl,--as-needed -o vi objects/arabic.o
objects/arglist.o objects/autocmd.o objects/beval.o objects/buffer.o
objects/change.o objects/blob.o objects/blowfish.o objects/cindent.o
objects/cmdexpand.o objects/cmdhist.o objects/crypt.o
objects/crypt_zip.o objects/debugger.o objects/dict.o objects/diff.o
objects/digraph.o objects/drawline.o objects/drawscreen.o
objects/edit.o objects/eval.o objects/evalbuffer.o objects/evalfunc.o
objects/evalvars.o objects/evalwindow.o objects/ex_cmds.o
objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o
objects/ex_getln.o objects/fileio.o objects/filepath.o
objects/findfile.o objects/fold.o objects/getchar.o objects/hardcopy.o
objects/hashtab.o objects/highlight.o objects/if_cscope.o
objects/if_xcmdsrv.o objects/indent.o objects/insexpand.o
objects/list.o objects/map.o objects/mark.o objects/memline.o
objects/menu.o objects/misc1.o objects/misc2.o objects/mouse.o
objects/move.o objects/mbyte.o objects/normal.o objects/ops.o
objects/option.o objects/optionstr.o objects/os_unix.o
objects/pathdef.o objects/popupmenu.o objects/popupwin.o
objects/profiler.o objects/pty.o objects/quickfix.o objects/regexp.o
objects/register.o objects/scriptfile.o objects/screen.o
objects/search.o objects/session.o objects/sha256.o objects/sign.o
objects/sound.o objects/spell.o objects/spellfile.o
objects/spellsuggest.o objects/syntax.o objects/tag.o objects/term.o
objects/terminal.o objects/testing.o objects/textprop.o objects/ui.o
objects/undo.o objects/usercmd.o objects/userfunc.o objects/version.o
objects/viminfo.o objects/window.o objects/bufwrite.o
objects/xdiffi.o objects/xemit.o objects/xprepare.o objects/xutils.o
objects/xhistogram.o objects/xpatience.o objects/charset.o
objects/json.o objects/main.o objects/memfile.o objects/message.o
-lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lelf
-lgpm -ldl
link.sh: Linked fine
Sat 26 Oct 00:20:29 CEST 2019
linux-2iyu:~/.build/vim/vim-hg/src/shadow-tiny #

Bram Moolenaar

unread,
Oct 26, 2019, 6:26:19 AM10/26/19
to vim...@googlegroups.com, John Marriott
I'll include it, thanks.

--
If the Universe is constantly expanding, why can't I ever find a parking space?

/// Bram Moolenaar -- Br...@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 ///

Bram Moolenaar

unread,
Oct 26, 2019, 6:27:47 AM10/26/19
to vim...@googlegroups.com

Patch 8.1.2216
Problem: Text property in wrong place after :substitute.
Solution: Pass the new column instead of the old one. (Christian Brabandt,
closes #4427)
Files: src/ex_cmds.c, src/testdir/test_textprop.vim


*** ../vim-8.1.2215/src/ex_cmds.c 2019-10-21 23:08:54.692802253 +0200
--- src/ex_cmds.c 2019-10-25 22:04:07.455027571 +0200
***************
*** 3856,3861 ****
--- 3856,3862 ----
colnr_T matchcol;
colnr_T prev_matchcol = MAXCOL;
char_u *new_end, *new_start = NULL;
+ colnr_T total_added = 0;
unsigned new_start_len = 0;
char_u *p1;
int did_sub = FALSE;
***************
*** 4279,4291 ****
#ifdef FEAT_TEXT_PROP
if (curbuf->b_has_textprop)
{
// When text properties are changed, need to save for
// undo first, unless done already.
! if (adjust_prop_columns(lnum, regmatch.startpos[0].col,
! sublen - 1 - (regmatch.endpos[0].col
! - regmatch.startpos[0].col),
! apc_flags))
apc_flags &= ~APC_SAVE_FOR_UNDO;
}
#endif
}
--- 4280,4297 ----
#ifdef FEAT_TEXT_PROP
if (curbuf->b_has_textprop)
{
+ int bytes_added = sublen - 1 - (regmatch.endpos[0].col
+ - regmatch.startpos[0].col);
+
// When text properties are changed, need to save for
// undo first, unless done already.
! if (adjust_prop_columns(lnum,
! total_added + regmatch.startpos[0].col,
! bytes_added, apc_flags))
apc_flags &= ~APC_SAVE_FOR_UNDO;
+ // Offset for column byte number of the text property
+ // in the resulting buffer afterwards.
+ total_added += bytes_added;
}
#endif
}
*** ../vim-8.1.2215/src/testdir/test_textprop.vim 2019-10-16 14:38:01.916048915 +0200
--- src/testdir/test_textprop.vim 2019-10-25 22:11:20.497813312 +0200
***************
*** 866,868 ****
--- 866,896 ----
cal delete('Xaaa')
cal delete('Xbbb')
endfunc
+
+ func Test_proptype_substitute2()
+ new
+ " text_prop.vim
+ call setline(1, [
+ \ 'The num 123 is smaller than 4567.',
+ \ '123 The number 123 is smaller than 4567.',
+ \ '123 The number 123 is smaller than 4567.'])
+
+ call prop_type_add('number', {'highlight': 'ErrorMsg'})
+
+ call prop_add(1, 12, {'length': 3, 'type': 'number'})
+ call prop_add(2, 1, {'length': 3, 'type': 'number'})
+ call prop_add(3, 36, {'length': 4, 'type': 'number'})
+ set ul&
+ let expected = [{'id': 0, 'col': 13, 'end': 1, 'type': 'number', 'length': 3, 'start': 1},
+ \ {'id': 0, 'col': 1, 'end': 1, 'type': 'number', 'length': 3, 'start': 1},
+ \ {'id': 0, 'col': 50, 'end': 1, 'type': 'number', 'length': 4, 'start': 1}]
+ " Add some text in between
+ %s/\s\+/ /g
+ call assert_equal(expected, prop_list(1) + prop_list(2) + prop_list(3))
+
+ " remove some text
+ :1s/[a-z]\{3\}//g
+ let expected = [{'id': 0, 'col': 10, 'end': 1, 'type': 'number', 'length': 3, 'start': 1}]
+ call assert_equal(expected, prop_list(1))
+ bwipe!
+ endfunc
*** ../vim-8.1.2215/src/version.c 2019-10-25 21:49:35.765964704 +0200
--- src/version.c 2019-10-25 21:56:36.808248129 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 2216,
/**/

--
The budget process was invented by an alien race of sadistic beings who
resemble large cats.
(Scott Adams - The Dilbert principle)
Reply all
Reply to author
Forward
0 new messages