diff --git a/ruby/caca-display.c b/ruby/caca-display.c index 6e4cfa2..a3b3487 100644 --- a/ruby/caca-display.c +++ b/ruby/caca-display.c @@ -69,22 +69,15 @@ static VALUE display_initialize(int argc, VALUE* argv, VALUE self) if(cv != Qnil) canvas = DATA_PTR(cv); - if(driver == NULL) - { - display = caca_create_display(canvas); - if(display && NIL_P(cv)) - { - cv = canvas_create(caca_get_canvas(display)); - } - } - else + display = caca_create_display_with_driver(canvas, driver); + if(display == NULL) { - display = caca_create_display_with_driver(canvas, driver); + rb_raise(rb_eRuntimeError, "%s", strerror(errno)); } - if(display == NULL) + if(NIL_P(cv)) { - rb_raise(rb_eRuntimeError, "%s", strerror(errno)); + cv = canvas_create(caca_get_canvas(display)); } _SELF = display;