| 320 | } |
| 321 | |
| 322 | void print_error(const String &p_string) { |
| 323 | if (!CoreGlobals::print_error_enabled) { |
| 324 | return; |
| 325 | } |
| 326 | |
| 327 | if (is_printing) { |
| 328 | __print_fallback(p_string, true); |
| 329 | return; |
| 330 | } |
| 331 | |
| 332 | is_printing = true; |
| 333 | |
| 334 | OS::get_singleton()->printerr("%s\n", p_string.utf8().get_data()); |
| 335 | |
| 336 | _global_lock(); |
| 337 | PrintHandlerList *l = print_handler_list; |
| 338 | while (l) { |
| 339 | l->printfunc(l->userdata, p_string, true, false); |
| 340 | l = l->next; |
| 341 | } |
| 342 | |
| 343 | _global_unlock(); |
| 344 | |
| 345 | is_printing = false; |
| 346 | } |
| 347 | |
| 348 | bool is_print_verbose_enabled() { |
| 349 | return OS::get_singleton()->is_stdout_verbose(); |
no test coverage detected