Patch 8.1.1035
Problem: prop_remove() second argument is not optional.
Solution: Fix argument count. Use "buf" instead of "curbuf". (closes #4147)
Files: src/evalfunc.c, src/testdir/test_textprop.vim, src/textprop.c
*** ../vim-8.1.1034/src/evalfunc.c 2019-03-22 12:03:26.583533911 +0100
--- src/evalfunc.c 2019-03-22 13:13:27.209011192 +0100
***************
*** 788,794 ****
{"prop_add", 3, 3, f_prop_add},
{"prop_clear", 1, 3, f_prop_clear},
{"prop_list", 1, 2, f_prop_list},
! {"prop_remove", 2, 3, f_prop_remove},
{"prop_type_add", 2, 2, f_prop_type_add},
{"prop_type_change", 2, 2, f_prop_type_change},
{"prop_type_delete", 1, 2, f_prop_type_delete},
--- 788,794 ----
{"prop_add", 3, 3, f_prop_add},
{"prop_clear", 1, 3, f_prop_clear},
{"prop_list", 1, 2, f_prop_list},
! {"prop_remove", 1, 3, f_prop_remove},
{"prop_type_add", 2, 2, f_prop_type_add},
{"prop_type_change", 2, 2, f_prop_type_change},
{"prop_type_delete", 1, 2, f_prop_type_delete},
*** ../vim-8.1.1034/src/testdir/test_textprop.vim 2019-02-22
14:38:46.447452832 +0100
--- src/testdir/test_textprop.vim 2019-03-22 13:19:41.448110561 +0100
***************
*** 166,193 ****
new
let bufnr = bufnr('')
call AddPropTypes()
! call setline(1, 'one two three')
wincmd w
! call prop_add(1, 1, {'length': 3, 'id': 11, 'type': 'one', 'bufnr': bufnr})
! call prop_add(1, 5, {'length': 3, 'id': 12, 'type': 'two', 'bufnr': bufnr})
! call prop_add(1, 11, {'length': 3, 'id': 13, 'type': 'three', 'bufnr':
bufnr})
!
let props = [
\ {'col': 1, 'length': 3, 'id': 11, 'type': 'one', 'start': 1, 'end':
1},
\ {'col': 5, 'length': 3, 'id': 12, 'type': 'two', 'start': 1, 'end':
1},
\ {'col': 11, 'length': 3, 'id': 13, 'type': 'three', 'start': 1,
'end': 1},
\]
call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
!
" remove by id
! call prop_remove({'id': 12, 'bufnr': bufnr}, 1)
unlet props[1]
call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
" remove by type
! call prop_remove({'type': 'one', 'bufnr': bufnr}, 1)
unlet props[0]
call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
call DeletePropTypes()
wincmd w
--- 166,229 ----
new
let bufnr = bufnr('')
call AddPropTypes()
! for lnum in range(1, 4)
! call setline(lnum, 'one two three')
! endfor
wincmd w
! for lnum in range(1, 4)
! call prop_add(lnum, 1, {'length': 3, 'id': 11, 'type': 'one', 'bufnr':
bufnr})
! call prop_add(lnum, 5, {'length': 3, 'id': 12, 'type': 'two', 'bufnr':
bufnr})
! call prop_add(lnum, 11, {'length': 3, 'id': 13, 'type': 'three', 'bufnr':
bufnr})
! endfor
!
let props = [
\ {'col': 1, 'length': 3, 'id': 11, 'type': 'one', 'start': 1, 'end':
1},
\ {'col': 5, 'length': 3, 'id': 12, 'type': 'two', 'start': 1, 'end':
1},
\ {'col': 11, 'length': 3, 'id': 13, 'type': 'three', 'start': 1,
'end': 1},
\]
call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
!
" remove by id
! let before_props = deepcopy(props)
unlet props[1]
+
+ call prop_remove({'id': 12, 'bufnr': bufnr}, 1)
+ call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(2, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(3, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(4, {'bufnr': bufnr}))
+
+ call prop_remove({'id': 12, 'bufnr': bufnr}, 3, 4)
call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(2, {'bufnr': bufnr}))
+ call assert_equal(props, prop_list(3, {'bufnr': bufnr}))
+ call assert_equal(props, prop_list(4, {'bufnr': bufnr}))
+
+ call prop_remove({'id': 12, 'bufnr': bufnr})
+ for lnum in range(1, 4)
+ call assert_equal(props, prop_list(lnum, {'bufnr': bufnr}))
+ endfor
" remove by type
! let before_props = deepcopy(props)
unlet props[0]
+
+ call prop_remove({'type': 'one', 'bufnr': bufnr}, 1)
call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(2, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(3, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(4, {'bufnr': bufnr}))
+
+ call prop_remove({'type': 'one', 'bufnr': bufnr}, 3, 4)
+ call assert_equal(props, prop_list(1, {'bufnr': bufnr}))
+ call assert_equal(before_props, prop_list(2, {'bufnr': bufnr}))
+ call assert_equal(props, prop_list(3, {'bufnr': bufnr}))
+ call assert_equal(props, prop_list(4, {'bufnr': bufnr}))
+
+ call prop_remove({'type': 'one', 'bufnr': bufnr})
+ for lnum in range(1, 4)
+ call assert_equal(props, prop_list(lnum, {'bufnr': bufnr}))
+ endfor
call DeletePropTypes()
wincmd w
*** ../vim-8.1.1034/src/textprop.c 2019-02-22 19:14:46.774074872 +0100
--- src/textprop.c 2019-03-22 13:13:27.209011192 +0100
***************
*** 629,635 ****
mch_memmove(newptr, buf->b_ml.ml_line_ptr,
buf->b_ml.ml_line_len);
buf->b_ml.ml_line_ptr = newptr;
! curbuf->b_ml.ml_flags |= ML_LINE_DIRTY;
}
taillen = buf->b_ml.ml_line_len - len
--- 629,638 ----
mch_memmove(newptr, buf->b_ml.ml_line_ptr,
buf->b_ml.ml_line_len);
buf->b_ml.ml_line_ptr = newptr;
! buf->b_ml.ml_flags |= ML_LINE_DIRTY;
!
! cur_prop = buf->b_ml.ml_line_ptr + len
! + idx *
sizeof(textprop_T);
}
taillen = buf->b_ml.ml_line_len - len
*** ../vim-8.1.1034/src/version.c 2019-03-22 12:03:26.587533860 +0100
--- src/version.c 2019-03-22 13:14:52.784892767 +0100
***************
*** 781,782 ****
--- 781,784 ----
{ /* Add new patch number below this line */
+ /**/
+ 1035,
/**/
--
>From "know your smileys":
:-E Has major dental problems
/// Bram Moolenaar -- [email protected] -- 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 ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.