Patch 8.1.1953
Problem: More functions can be used as a method.
Solution: Allow more functions to be used as a method.
Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_blob.vim,
src/testdir/test_breakindent.vim, src/testdir/test_delete.vim,
src/testdir/test_functions.vim, src/testdir/test_getcwd.vim,
src/testdir/test_history.vim, src/testdir/test_listdict.vim,
src/testdir/test_syn_attr.vim, src/testdir/test_termcodes.vim,
src/testdir/test_true_false.vim
*** ../vim-8.1.1952/runtime/doc/eval.txt 2019-08-31 19:13:27.835704640
+0200
--- runtime/doc/eval.txt 2019-08-31 21:05:56.966106863 +0200
***************
*** 5766,5771 ****
--- 5774,5782 ----
" tab page m
:echo haslocaldir(-1, m)
<
+ Can also be used as a |method|: >
+ GetWinnr()->haslocaldir()
+
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
The result is a Number, which is 1 if there is a mapping that
contains {what} in somewhere in the rhs (what it is mapped to)
***************
*** 5794,5799 ****
--- 5805,5813 ----
< This installs the mapping to "\ABCdoit" only if there isn't
already a mapping to "\ABCdoit".
+ Can also be used as a |method|: >
+ GetRHS()->hasmapto()
+
histadd({history}, {item}) *histadd()*
Add the String {item} to the history {history} which can be
one of: *hist-names*
***************
*** 5815,5820 ****
--- 5829,5838 ----
:let date=input("Enter date: ")
< This function is not available in the |sandbox|.
+ Can also be used as a |method|, the base is used for the
+ second argument: >
+ GetPattern()->histadd('search')
+
histdel({history} [, {item}]) *histdel()*
Clear {history}, i.e. delete all its entries. See |hist-names|
for the possible values of {history}.
***************
*** 5846,5851 ****
--- 5864,5872 ----
the "n" command and 'hlsearch': >
:call histdel("search", -1)
:let @/ = histget("search", -1)
+ <
+ Can also be used as a |method|: >
+ GetHistory()->histdel()
histget({history} [, {index}]) *histget()*
The result is a String, the entry with Number {index} from
***************
*** 5862,5867 ****
--- 5883,5891 ----
the {num}th entry from the output of |:history|. >
:command -nargs=1 H execute histget("cmd", 0+<args>)
<
+ Can also be used as a |method|: >
+ GetHistory()->histget()
+
histnr({history}) *histnr()*
The result is the Number of the current entry in {history}.
See |hist-names| for the possible values of {history}.
***************
*** 5869,5874 ****
--- 5893,5901 ----
Example: >
:let inp_index = histnr("expr")
+
+ < Can also be used as a |method|: >
+ GetHistory()->histnr()
<
hlexists({name}) *hlexists()*
The result is a Number, which is non-zero if a highlight group
***************
*** 5879,5884 ****
--- 5906,5914 ----
*highlight_exists()*
Obsolete name: highlight_exists().
+ Can also be used as a |method|: >
+ GetName()->hlexists()
+ <
*hlID()*
hlID({name}) The result is a Number, which is the ID of the highlight group
with name {name}. When the highlight group doesn't exist,
***************
*** 5890,5895 ****
--- 5920,5928 ----
< *highlightID()*
Obsolete name: highlightID().
+ Can also be used as a |method|: >
+ GetName()->hlID()
+
hostname() *hostname()*
The result is a String, which is the name of the machine on
which Vim is currently running. Machine names greater than
***************
*** 5914,5919 ****
--- 5947,5955 ----
from/to UCS-2 is automatically changed to use UTF-8. You
cannot use UCS-2 in a string anyway, because of the NUL bytes.
+ Can also be used as a |method|: >
+ GetText()->iconv('latin1', 'utf-8')
+ <
*indent()*
indent({lnum}) The result is a Number, which is indent of line {lnum}
in the
current buffer. The indent is counted in spaces, the value
***************
*** 5921,5926 ****
--- 5957,5964 ----
|getline()|.
When {lnum} is invalid -1 is returned.
+ Can also be used as a |method|: >
+ GetLnum()->indent()
index({object}, {expr} [, {start} [, {ic}]]) *index()*
If {object} is a |List| return the lowest index where the item
***************
*** 5941,5946 ****
--- 5979,5986 ----
:let idx = index(words, "the")
:if index(numbers, 123) >= 0
+ < Can also be used as a |method|: >
+ GetObject()->index(what)
input({prompt} [, {text} [, {completion}]]) *input()*
The result is a String, which is whatever the user typed on
***************
*** 5987,5992 ****
--- 6027,6035 ----
: call inputrestore()
:endfunction
+ < Can also be used as a |method|: >
+ GetPrompt()->input()
+
inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
Like |input()|, but when the GUI is running and text dialogs
are supported, a dialog window pops up to input the text.
***************
*** 6001,6006 ****
--- 6044,6052 ----
<Esc> works like pressing the Cancel button.
NOTE: Command-line completion is not supported.
+ Can also be used as a |method|: >
+ GetPrompt()->inputdialog()
+
inputlist({textlist}) *inputlist()*
{textlist} must be a |List| of strings. This |List| is
displayed, one string per line. The user will be prompted to
***************
*** 6017,6022 ****
--- 6063,6071 ----
let color = inputlist(['Select color:', '1. red',
\ '2. green', '3. blue'])
+ < Can also be used as a |method|: >
+ GetChoices()->inputlist()
+
inputrestore() *inputrestore()*
Restore typeahead that was saved with a previous |inputsave()|.
Should be called the same number of times inputsave() is
***************
*** 6042,6047 ****
--- 6091,6099 ----
typed on the command-line in response to the issued prompt.
NOTE: Command-line completion is not supported.
+ Can also be used as a |method|: >
+ GetPrompt()->inputsecret()
+
insert({object}, {item} [, {idx}]) *insert()*
When {object} is a |List| or a |Blob| insert {item} at the start
of it.
***************
*** 6075,6080 ****
--- 6127,6135 ----
exist, or isn't a directory, the result is |FALSE|. {directory}
is any expression, which is used as a String.
+ Can also be used as a |method|: >
+ GetName()->isdirectory()
+
isinf({expr}) *isinf()*
Return 1 if {expr} is a positive infinity, or -1 a negative
infinity, otherwise 0. >
***************
*** 6101,6106 ****
--- 6156,6164 ----
< When {expr} is a variable that does not exist you get an error
message. Use |exists()| to check for existence.
+ Can also be used as a |method|: >
+ GetName()->islocked()
+
isnan({expr}) *isnan()*
Return |TRUE| if {expr} is a float with value NaN. >
echo isnan(0.0 / 0.0)
*** ../vim-8.1.1952/src/evalfunc.c 2019-08-31 19:13:27.839704613 +0200
--- src/evalfunc.c 2019-08-31 20:58:33.376857191 +0200
***************
*** 595,627 ****
{"globpath", 2, 5, FEARG_2, f_globpath},
{"has", 1, 1, 0, f_has},
{"has_key", 2, 2, FEARG_1, f_has_key},
! {"haslocaldir", 0, 2, 0, f_haslocaldir},
! {"hasmapto", 1, 3, 0, f_hasmapto},
! {"highlightID", 1, 1, 0, f_hlID}, // obsolete
! {"highlight_exists",1, 1, 0, f_hlexists}, // obsolete
! {"histadd", 2, 2, 0, f_histadd},
! {"histdel", 1, 2, 0, f_histdel},
! {"histget", 1, 2, 0, f_histget},
! {"histnr", 1, 1, 0, f_histnr},
! {"hlID", 1, 1, 0, f_hlID},
! {"hlexists", 1, 1, 0, f_hlexists},
{"hostname", 0, 0, 0, f_hostname},
! {"iconv", 3, 3, 0, f_iconv},
! {"indent", 1, 1, 0, f_indent},
{"index", 2, 4, FEARG_1, f_index},
! {"input", 1, 3, 0, f_input},
! {"inputdialog", 1, 3, 0, f_inputdialog},
! {"inputlist", 1, 1, 0, f_inputlist},
{"inputrestore", 0, 0, 0, f_inputrestore},
{"inputsave", 0, 0, 0, f_inputsave},
! {"inputsecret", 1, 2, 0, f_inputsecret},
{"insert", 2, 3, FEARG_1, f_insert},
{"invert", 1, 1, FEARG_1, f_invert},
! {"isdirectory", 1, 1, 0, f_isdirectory},
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
{"isinf", 1, 1, FEARG_1, f_isinf},
#endif
! {"islocked", 1, 1, 0, f_islocked},
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
{"isnan", 1, 1, FEARG_1, f_isnan},
#endif
--- 595,627 ----
{"globpath", 2, 5, FEARG_2, f_globpath},
{"has", 1, 1, 0, f_has},
{"has_key", 2, 2, FEARG_1, f_has_key},
! {"haslocaldir", 0, 2, FEARG_1, f_haslocaldir},
! {"hasmapto", 1, 3, FEARG_1, f_hasmapto},
! {"highlightID", 1, 1, FEARG_1, f_hlID}, // obsolete
! {"highlight_exists",1, 1, FEARG_1, f_hlexists}, // obsolete
! {"histadd", 2, 2, FEARG_2, f_histadd},
! {"histdel", 1, 2, FEARG_1, f_histdel},
! {"histget", 1, 2, FEARG_1, f_histget},
! {"histnr", 1, 1, FEARG_1, f_histnr},
! {"hlID", 1, 1, FEARG_1, f_hlID},
! {"hlexists", 1, 1, FEARG_1, f_hlexists},
{"hostname", 0, 0, 0, f_hostname},
! {"iconv", 3, 3, FEARG_1, f_iconv},
! {"indent", 1, 1, FEARG_1, f_indent},
{"index", 2, 4, FEARG_1, f_index},
! {"input", 1, 3, FEARG_1, f_input},
! {"inputdialog", 1, 3, FEARG_1, f_inputdialog},
! {"inputlist", 1, 1, FEARG_1, f_inputlist},
{"inputrestore", 0, 0, 0, f_inputrestore},
{"inputsave", 0, 0, 0, f_inputsave},
! {"inputsecret", 1, 2, FEARG_1, f_inputsecret},
{"insert", 2, 3, FEARG_1, f_insert},
{"invert", 1, 1, FEARG_1, f_invert},
! {"isdirectory", 1, 1, FEARG_1, f_isdirectory},
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
{"isinf", 1, 1, FEARG_1, f_isinf},
#endif
! {"islocked", 1, 1, FEARG_1, f_islocked},
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
{"isnan", 1, 1, FEARG_1, f_isnan},
#endif
*** ../vim-8.1.1952/src/testdir/test_blob.vim 2019-07-12 20:16:57.075879743
+0200
--- src/testdir/test_blob.vim 2019-08-31 20:45:47.393842096 +0200
***************
*** 278,284 ****
call assert_equal(2, index(0zDEADBEEF, 0xBE))
call assert_equal(-1, index(0zDEADBEEF, 0))
call assert_equal(2, index(0z11111111, 0x11, 2))
! call assert_equal(3, index(0z11110111, 0x11, 2))
call assert_equal(2, index(0z11111111, 0x11, -2))
call assert_equal(3, index(0z11110111, 0x11, -2))
--- 278,284 ----
call assert_equal(2, index(0zDEADBEEF, 0xBE))
call assert_equal(-1, index(0zDEADBEEF, 0))
call assert_equal(2, index(0z11111111, 0x11, 2))
! call assert_equal(3, 0z11110111->index(0x11, 2))
call assert_equal(2, index(0z11111111, 0x11, -2))
call assert_equal(3, index(0z11110111, 0x11, -2))
*** ../vim-8.1.1952/src/testdir/test_breakindent.vim 2019-08-07
23:07:03.960858821 +0200
--- src/testdir/test_breakindent.vim 2019-08-31 20:40:41.723934915 +0200
***************
*** 411,417 ****
" test strdisplaywidth()
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4')
let text = getline(2)
! let width = strlen(text[1:])+indent(2)+strlen(&sbr)*3 " text wraps 3 times
call assert_equal(width, strdisplaywidth(text))
call s:close_windows('set sbr=')
endfunc
--- 411,417 ----
" test strdisplaywidth()
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4')
let text = getline(2)
! let width = strlen(text[1:]) + indent(2) + strlen(&sbr) * 3 " text wraps 3
times
call assert_equal(width, strdisplaywidth(text))
call s:close_windows('set sbr=')
endfunc
***************
*** 423,429 ****
" test strdisplaywidth()
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4 vts=4')
let text = getline(2)
! let width = strlen(text[1:])+indent(2)+strlen(&sbr)*3 " text wraps 3 times
call assert_equal(width, strdisplaywidth(text))
call s:close_windows('set sbr= vts&')
endfunc
--- 423,429 ----
" test strdisplaywidth()
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4 vts=4')
let text = getline(2)
! let width = strlen(text[1:]) + 2->indent() + strlen(&sbr) * 3 " text wraps
3 times
call assert_equal(width, strdisplaywidth(text))
call s:close_windows('set sbr= vts&')
endfunc
*** ../vim-8.1.1952/src/testdir/test_delete.vim 2019-05-16 22:24:52.403017783
+0200
--- src/testdir/test_delete.vim 2019-08-31 20:59:38.912447533 +0200
***************
*** 32,38 ****
call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
call assert_true(isdirectory('Xdir1/subdir'))
call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
! call assert_true(isdirectory('Xdir1/empty'))
call assert_equal(0, delete('Xdir1', 'rf'))
call assert_false(isdirectory('Xdir1'))
call assert_equal(-1, delete('Xdir1', 'd'))
--- 32,38 ----
call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
call assert_true(isdirectory('Xdir1/subdir'))
call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
! call assert_true('Xdir1/empty'->isdirectory())
call assert_equal(0, delete('Xdir1', 'rf'))
call assert_false(isdirectory('Xdir1'))
call assert_equal(-1, delete('Xdir1', 'd'))
*** ../vim-8.1.1952/src/testdir/test_functions.vim 2019-08-27
21:56:01.699592495 +0200
--- src/testdir/test_functions.vim 2019-08-31 20:58:01.037059927 +0200
***************
*** 1069,1075 ****
func Test_hlexists()
call assert_equal(0, hlexists('does_not_exist'))
! call assert_equal(0, hlexists('Number'))
call assert_equal(0, highlight_exists('does_not_exist'))
call assert_equal(0, highlight_exists('Number'))
syntax on
--- 1069,1075 ----
func Test_hlexists()
call assert_equal(0, hlexists('does_not_exist'))
! call assert_equal(0, 'Number'->hlexists())
call assert_equal(0, highlight_exists('does_not_exist'))
call assert_equal(0, highlight_exists('Number'))
syntax on
***************
*** 1102,1108 ****
func Test_inputlist()
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green',
'3. blue'])\<cr>1\<cr>", 'tx')
call assert_equal(1, c)
! call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green',
'3. blue'])\<cr>2\<cr>", 'tx')
call assert_equal(2, c)
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green',
'3. blue'])\<cr>3\<cr>", 'tx')
call assert_equal(3, c)
--- 1102,1108 ----
func Test_inputlist()
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green',
'3. blue'])\<cr>1\<cr>", 'tx')
call assert_equal(1, c)
! call feedkeys(":let c = ['Select color:', '1. red', '2. green', '3.
blue']->inputlist()\<cr>2\<cr>", 'tx')
call assert_equal(2, c)
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green',
'3. blue'])\<cr>3\<cr>", 'tx')
call assert_equal(3, c)
***************
*** 1279,1285 ****
let g:regs = []
func TestFunc() abort
let g:regs += [reg_executing()]
! let g:typed = input('?')
let g:regs += [reg_executing()]
endfunc
call feedkeys("@qy\<CR>", 'xt')
--- 1279,1285 ----
let g:regs = []
func TestFunc() abort
let g:regs += [reg_executing()]
! let g:typed = '?'->input()
let g:regs += [reg_executing()]
endfunc
call feedkeys("@qy\<CR>", 'xt')
***************
*** 1295,1300 ****
--- 1295,1319 ----
unlet s:reg_stat
endfunc
+ func Test_inputsecret()
+ map W :call TestFunc()<CR>
+ let @q = "W"
+ let g:typed1 = ''
+ let g:typed2 = ''
+ let g:regs = []
+ func TestFunc() abort
+ let g:typed1 = '?'->inputsecret()
+ let g:typed2 = inputsecret('password: ')
+ endfunc
+ call feedkeys("@qsomething\<CR>else\<CR>", 'xt')
+ call assert_equal("something", g:typed1)
+ call assert_equal("else", g:typed2)
+ delfunc TestFunc
+ unmap W
+ unlet g:typed1
+ unlet g:typed2
+ endfunc
+
func Test_libcall_libcallnr()
if !has('libcall')
return
*** ../vim-8.1.1952/src/testdir/test_getcwd.vim 2019-04-27 20:36:52.534303564
+0200
--- src/testdir/test_getcwd.vim 2019-08-31 20:24:09.985899002 +0200
***************
*** 17,23 ****
let lflag = haslocaldir(a:win)
else
let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
! let lflag = haslocaldir(a:win, a:tab)
endif
return bufname . ' ' . dirname . ' ' . lflag
endfunc
--- 17,23 ----
let lflag = haslocaldir(a:win)
else
let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
! let lflag = a:win->haslocaldir(a:tab)
endif
return bufname . ' ' . dirname . ' ' . lflag
endfunc
*** ../vim-8.1.1952/src/testdir/test_history.vim 2019-06-15
17:57:43.972724036 +0200
--- src/testdir/test_history.vim 2019-08-31 20:36:27.261450128 +0200
***************
*** 12,18 ****
call assert_equal(-1, histnr(a:hist))
call assert_equal('', histget(a:hist))
! call assert_true(histadd(a:hist, 'ls'))
call assert_true(histadd(a:hist, 'buffers'))
call assert_equal('buffers', histget(a:hist))
call assert_equal('ls', histget(a:hist, -2))
--- 12,18 ----
call assert_equal(-1, histnr(a:hist))
call assert_equal('', histget(a:hist))
! call assert_true('ls'->histadd(a:hist))
call assert_true(histadd(a:hist, 'buffers'))
call assert_equal('buffers', histget(a:hist))
call assert_equal('ls', histget(a:hist, -2))
***************
*** 21,34 ****
call assert_equal('', histget(a:hist, -5))
call assert_equal(2, histnr(a:hist))
call assert_true(histdel(a:hist, 2))
! call assert_false(histdel(a:hist, 7))
call assert_equal(1, histnr(a:hist))
call assert_equal('ls', histget(a:hist, -1))
call assert_true(histadd(a:hist, 'buffers'))
call assert_true(histadd(a:hist, 'ls'))
! call assert_equal('ls', histget(a:hist, -1))
! call assert_equal(4, histnr(a:hist))
let a=execute('history ' . a:hist)
call assert_match("^\n # \\S* history\n 3 buffers\n> 4
ls$", a)
--- 21,34 ----
call assert_equal('', histget(a:hist, -5))
call assert_equal(2, histnr(a:hist))
call assert_true(histdel(a:hist, 2))
! call assert_false(a:hist->histdel(7))
call assert_equal(1, histnr(a:hist))
call assert_equal('ls', histget(a:hist, -1))
call assert_true(histadd(a:hist, 'buffers'))
call assert_true(histadd(a:hist, 'ls'))
! call assert_equal('ls', a:hist->histget(-1))
! call assert_equal(4, a:hist->histnr())
let a=execute('history ' . a:hist)
call assert_match("^\n # \\S* history\n 3 buffers\n> 4
ls$", a)
*** ../vim-8.1.1952/src/testdir/test_listdict.vim 2019-07-16
22:03:28.906863140 +0200
--- src/testdir/test_listdict.vim 2019-08-31 21:00:20.720186940 +0200
***************
*** 565,571 ****
set rtp+=./sautest
lockvar g:footest#x
unlockvar g:footest#x
! call assert_equal(-1, islocked('g:footest#x'))
call assert_equal(0, exists('g:footest#x'))
call assert_equal(1, g:footest#x)
let &rtp = old_rtp
--- 565,571 ----
set rtp+=./sautest
lockvar g:footest#x
unlockvar g:footest#x
! call assert_equal(-1, 'g:footest#x'->islocked())
call assert_equal(0, exists('g:footest#x'))
call assert_equal(1, g:footest#x)
let &rtp = old_rtp
*** ../vim-8.1.1952/src/testdir/test_syn_attr.vim 2016-07-19
20:43:52.000000000 +0200
--- src/testdir/test_syn_attr.vim 2019-08-31 20:28:26.652334911 +0200
***************
*** 3,9 ****
func Test_missing_attr()
hi Mine term=bold cterm=italic
call assert_equal('Mine', synIDattr(hlID("Mine"), "name"))
! call assert_equal('', synIDattr(hlID("Mine"), "bg", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "bold", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "italic", 'cterm'))
hi Mine term=reverse cterm=inverse
--- 3,9 ----
func Test_missing_attr()
hi Mine term=bold cterm=italic
call assert_equal('Mine', synIDattr(hlID("Mine"), "name"))
! call assert_equal('', synIDattr("Mine"->hlID(), "bg", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "bold", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "italic", 'cterm'))
hi Mine term=reverse cterm=inverse
***************
*** 12,18 ****
hi Mine term=underline cterm=standout gui=undercurl
call assert_equal('1', synIDattr(hlID("Mine"), "underline", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "standout", 'cterm'))
! call assert_equal('1', synIDattr(hlID("Mine"), "undercurl", 'gui'))
hi Mine term=NONE cterm=NONE gui=NONE
call assert_equal('', synIDattr(hlID("Mine"), "bold", 'term'))
call assert_equal('', synIDattr(hlID("Mine"), "italic", 'cterm'))
--- 12,18 ----
hi Mine term=underline cterm=standout gui=undercurl
call assert_equal('1', synIDattr(hlID("Mine"), "underline", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "standout", 'cterm'))
! call assert_equal('1', synIDattr("Mine"->hlID(), "undercurl", 'gui'))
hi Mine term=NONE cterm=NONE gui=NONE
call assert_equal('', synIDattr(hlID("Mine"), "bold", 'term'))
call assert_equal('', synIDattr(hlID("Mine"), "italic", 'cterm'))
*** ../vim-8.1.1952/src/testdir/test_termcodes.vim 2019-08-12
14:20:30.079043316 +0200
--- src/testdir/test_termcodes.vim 2019-08-31 20:38:26.776737766 +0200
***************
*** 33,39 ****
" need to use byte encoding here.
let str = list2str([a:code + 0x20, a:col + 0x20, a:row + 0x20])
if has('iconv')
! let bytes = iconv(str, 'utf-8', 'latin1')
else
" Hopefully the numbers are not too big.
let bytes = str
--- 33,39 ----
" need to use byte encoding here.
let str = list2str([a:code + 0x20, a:col + 0x20, a:row + 0x20])
if has('iconv')
! let bytes = str->iconv('utf-8', 'latin1')
else
" Hopefully the numbers are not too big.
let bytes = str
*** ../vim-8.1.1952/src/testdir/test_true_false.vim 2016-07-07
16:33:26.000000000 +0200
--- src/testdir/test_true_false.vim 2019-08-31 20:26:06.357186893 +0200
***************
*** 100,106 ****
call Try_arg_true_false('maparg("asdf", "i", %v%)', "", "asdff")
call Try_arg_true_false('FilterMapArg(maparg("asdf", "i", 1, %v%))',
"asdff", {'rhs': 'asdff'})
! call Try_arg_true_false('hasmapto("asdf", "i", %v%)', 0, 1)
new colored
call setline(1, '<here>')
--- 100,106 ----
call Try_arg_true_false('maparg("asdf", "i", %v%)', "", "asdff")
call Try_arg_true_false('FilterMapArg(maparg("asdf", "i", 1, %v%))',
"asdff", {'rhs': 'asdff'})
! call Try_arg_true_false('"asdf"->hasmapto("i", %v%)', 0, 1)
new colored
call setline(1, '<here>')
*** ../vim-8.1.1952/src/version.c 2019-08-31 19:13:27.839704613 +0200
--- src/version.c 2019-08-31 20:26:27.353058997 +0200
***************
*** 763,764 ****
--- 763,766 ----
{ /* Add new patch number below this line */
+ /**/
+ 1953,
/**/
--
Although the scythe isn't pre-eminent among the weapons of war, anyone who
has been on the wrong end of, say, a peasants' revolt will know that in
skilled hands it is fearsome.
-- (Terry Pratchett, Mort)
/// 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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/201908311918.x7VJIBAt032364%40masaka.moolenaar.net.