# HG changeset patch # User Christian Brabandt # Date 1532403905 -7200 # Node ID 424ccd85d5c6840b44d597bfc30af55e5f4453c9 # Parent 07384815b8ac00fb5d5a590ea1c40b7c71e2d8d7 patch 8.1.0209: stderr output from Ruby messes up display commit https://github.com/vim/vim/commit/b6c8cd8dc3fbbe9da1180ce1b75f2252df2c1318 Author: Bram Moolenaar Date: Tue Jul 24 05:41:30 2018 +0200 patch 8.1.0209: stderr output from Ruby messes up display Problem: Stderr output from Ruby messes up display. Solution: Turn the stderr output into a Vim message. (Masataka Pocke Kuwabara, closes #3238) diff --git a/src/if_ruby.c b/src/if_ruby.c --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -232,6 +232,7 @@ static void ruby_vim_init(void); # define rb_define_singleton_method dll_rb_define_singleton_method # define rb_define_virtual_variable dll_rb_define_virtual_variable # define rb_stdout (*dll_rb_stdout) +# define rb_stderr (*dll_rb_stderr) # define rb_eArgError (*dll_rb_eArgError) # define rb_eIndexError (*dll_rb_eIndexError) # define rb_eRuntimeError (*dll_rb_eRuntimeError) @@ -360,6 +361,7 @@ static void (*dll_rb_define_module_funct static void (*dll_rb_define_singleton_method) (VALUE,const char*,VALUE(*)(),int); static void (*dll_rb_define_virtual_variable) (const char*,VALUE(*)(),void(*)()); static VALUE *dll_rb_stdout; +static VALUE *dll_rb_stderr; static VALUE *dll_rb_eArgError; static VALUE *dll_rb_eIndexError; static VALUE *dll_rb_eRuntimeError; @@ -553,6 +555,7 @@ static struct {"rb_define_singleton_method", (RUBY_PROC*)&dll_rb_define_singleton_method}, {"rb_define_virtual_variable", (RUBY_PROC*)&dll_rb_define_virtual_variable}, {"rb_stdout", (RUBY_PROC*)&dll_rb_stdout}, + {"rb_stderr", (RUBY_PROC*)&dll_rb_stderr}, {"rb_eArgError", (RUBY_PROC*)&dll_rb_eArgError}, {"rb_eIndexError", (RUBY_PROC*)&dll_rb_eIndexError}, {"rb_eRuntimeError", (RUBY_PROC*)&dll_rb_eRuntimeError}, @@ -1542,11 +1545,15 @@ static void ruby_io_init(void) { #ifndef DYNAMIC_RUBY RUBYEXTERN VALUE rb_stdout; + RUBYEXTERN VALUE rb_stderr; #endif rb_stdout = rb_obj_alloc(rb_cObject); + rb_stderr = rb_obj_alloc(rb_cObject); rb_define_singleton_method(rb_stdout, "write", vim_message, 1); rb_define_singleton_method(rb_stdout, "flush", f_nop, 0); + rb_define_singleton_method(rb_stderr, "write", vim_message, 1); + rb_define_singleton_method(rb_stderr, "flush", f_nop, 0); rb_define_global_function("p", f_p, -1); } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -794,6 +794,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 209, +/**/ 208, /**/ 207,