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;
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'))
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")