mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.0977: blob not tested with Ruby
Problem: Blob not tested with Ruby. Solution: Add more test coverage. fixes a crash. (Dominique Pelle, closes #4036)
This commit is contained in:
parent
e4963c543d
commit
0d13cce345
@ -1267,7 +1267,7 @@ static VALUE vim_blob(VALUE self UNUSED, VALUE str)
|
||||
int i;
|
||||
for (i = 0; i < RSTRING_LEN(str); i++)
|
||||
{
|
||||
sprintf(buf, "%02X", RSTRING_PTR(str)[i]);
|
||||
sprintf(buf, "%02X", (unsigned char)(RSTRING_PTR(str)[i]));
|
||||
rb_str_concat(result, rb_str_new2(buf));
|
||||
}
|
||||
return result;
|
||||
|
@ -306,6 +306,9 @@ func Test_Vim_evaluate()
|
||||
call assert_equal('foo', RubyEval('Vim::evaluate("\"foo\"")'))
|
||||
call assert_equal('String', RubyEval('Vim::evaluate("\"foo\"").class'))
|
||||
|
||||
call assert_equal('["\x01\xAB"]', RubyEval('Vim::evaluate("0z01ab").unpack("M")'))
|
||||
call assert_equal('String', RubyEval('Vim::evaluate("0z01ab").class'))
|
||||
|
||||
call assert_equal('[1, 2]', RubyEval('Vim::evaluate("[1, 2]")'))
|
||||
call assert_equal('Array', RubyEval('Vim::evaluate("[1, 2]").class'))
|
||||
|
||||
@ -324,6 +327,13 @@ func Test_Vim_evaluate()
|
||||
call assert_equal('FalseClass',RubyEval('Vim::evaluate("v:false").class'))
|
||||
endfunc
|
||||
|
||||
func Test_Vim_blob()
|
||||
call assert_equal('0z', RubyEval('Vim::blob("")'))
|
||||
call assert_equal('0z31326162', RubyEval('Vim::blob("12ab")'))
|
||||
call assert_equal('0z00010203', RubyEval('Vim::blob("\x00\x01\x02\x03")'))
|
||||
call assert_equal('0z8081FEFF', RubyEval('Vim::blob("\x80\x81\xfe\xff")'))
|
||||
endfunc
|
||||
|
||||
func Test_Vim_evaluate_list()
|
||||
call setline(line('$'), ['2 line 2'])
|
||||
ruby Vim.command("normal /^2\n")
|
||||
|
@ -779,6 +779,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
977,
|
||||
/**/
|
||||
976,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user