diff --git a/aegisub/auto4_ruby.cpp b/aegisub/auto4_ruby.cpp index 36c4a0296..110e0691b 100644 --- a/aegisub/auto4_ruby.cpp +++ b/aegisub/auto4_ruby.cpp @@ -137,7 +137,7 @@ namespace Automation4 { rb_protect(rbLoadWrapper, rb_str_new2(t), &status); if(status > 0) // something bad happened (probably parsing error) { - throw StringValueCStr(ruby_errinfo); + //throw StringValueCStr(ruby_errinfo); } VALUE global_var = rb_gv_get("$script_name"); @@ -564,7 +564,7 @@ namespace Automation4 { VALUE result; result = rb_protect(rbCallWrapper, reinterpret_cast(&arg), &error); if(error) { - throw StringValueCStr(ruby_errinfo); + //throw StringValueCStr(ruby_errinfo); } return result; } diff --git a/aegisub/auto4_ruby_assfile.cpp b/aegisub/auto4_ruby_assfile.cpp index 7873205c2..4298390e9 100644 --- a/aegisub/auto4_ruby_assfile.cpp +++ b/aegisub/auto4_ruby_assfile.cpp @@ -350,7 +350,7 @@ namespace Automation4 { new_entry = reinterpret_cast(rb_protect(rb2AssWrapper, rbEntry, &status)); --size; }while(status != 0); // broken lines at the beginning? - ruby_errinfo = Qnil; // just in case + rb_set_errinfo(Qnil);; // just in case entryIter e = ass->Line.begin(); if(new_entry->GetType() == ENTRY_DIALOGUE) // check if the first line is a dialogue @@ -368,10 +368,14 @@ namespace Automation4 { rbEntry = rb_ary_shift(subtitles); new_entry = reinterpret_cast(rb_protect(rb2AssWrapper, rbEntry, &status)); if(status == 0) ass->Line.push_back(new_entry); - else { + else + { if(RubyProgressSink::inst) - RubyProgressSink::inst->RubyDebugOut(1, &ruby_errinfo, Qnil); - ruby_errinfo = Qnil; // clear the error + { + VALUE err = rb_errinfo(); + RubyProgressSink::inst->RubyDebugOut(1, &err, Qnil); + } + rb_set_errinfo(Qnil); } } RubyObjects::Get()->Unregister(subtitles); @@ -418,10 +422,14 @@ namespace Automation4 { { VALUE res = rb_protect(rbAss2RbWrapper, reinterpret_cast(*entry), &status); if(status == 0) rb_ary_push(rbAssFile, res); - else { + else + { if(RubyProgressSink::inst) - RubyProgressSink::inst->RubyDebugOut(1, &ruby_errinfo, Qnil); - ruby_errinfo = Qnil; + { + VALUE err = rb_errinfo(); + RubyProgressSink::inst->RubyDebugOut(1, &err, Qnil); + } + rb_set_errinfo(Qnil); } } diff --git a/aegisub/auto4_ruby_dialog.cpp b/aegisub/auto4_ruby_dialog.cpp index 513b2fc47..662763690 100644 --- a/aegisub/auto4_ruby_dialog.cpp +++ b/aegisub/auto4_ruby_dialog.cpp @@ -34,7 +34,7 @@ // #include "auto4_ruby.h" -#include "../ruby/include/ruby.h" +#include #include #include #include