Mercurial > vim
changeset 14389:424ccd85d5c6 v8.1.0209
patch 8.1.0209: stderr output from Ruby messes up display
commit https://github.com/vim/vim/commit/b6c8cd8dc3fbbe9da1180ce1b75f2252df2c1318
Author: Bram Moolenaar <Bram@vim.org>
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 24 Jul 2018 05:45:05 +0200 |
parents | 07384815b8ac |
children | 0bd086e665f4 |
files | src/if_ruby.c src/version.c |
diffstat | 2 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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); }