1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-23 15:16:17 +00:00

Add print_error function, akin to print_line

This commit is contained in:
George Marques
2017-11-14 20:01:45 -02:00
parent b44cb4e3b9
commit 1d12470a78
6 changed files with 25 additions and 6 deletions

View File

@@ -82,7 +82,25 @@ void print_line(String p_string) {
PrintHandlerList *l = print_handler_list; PrintHandlerList *l = print_handler_list;
while (l) { while (l) {
l->printfunc(l->userdata, p_string); l->printfunc(l->userdata, p_string, false);
l = l->next;
}
_global_unlock();
}
void print_error(String p_string) {
if (!_print_error_enabled)
return;
OS::get_singleton()->printerr("%s\n", p_string.utf8().get_data());
_global_lock();
PrintHandlerList *l = print_handler_list;
while (l) {
l->printfunc(l->userdata, p_string, true);
l = l->next; l = l->next;
} }

View File

@@ -34,7 +34,7 @@
extern void (*_print_func)(String); extern void (*_print_func)(String);
typedef void (*PrintHandlerFunc)(void *, const String &p_string); typedef void (*PrintHandlerFunc)(void *, const String &p_string, bool p_error);
struct PrintHandlerList { struct PrintHandlerList {
@@ -56,5 +56,6 @@ void remove_print_handler(PrintHandlerList *p_handler);
extern bool _print_line_enabled; extern bool _print_line_enabled;
extern bool _print_error_enabled; extern bool _print_error_enabled;
extern void print_line(String p_string); extern void print_line(String p_string);
extern void print_error(String p_string);
#endif #endif

View File

@@ -832,7 +832,7 @@ void ScriptDebuggerRemote::send_message(const String &p_message, const Array &p_
mutex->unlock(); mutex->unlock();
} }
void ScriptDebuggerRemote::_print_handler(void *p_this, const String &p_string) { void ScriptDebuggerRemote::_print_handler(void *p_this, const String &p_string, bool p_error) {
ScriptDebuggerRemote *sdr = (ScriptDebuggerRemote *)p_this; ScriptDebuggerRemote *sdr = (ScriptDebuggerRemote *)p_this;

View File

@@ -94,7 +94,7 @@ class ScriptDebuggerRemote : public ScriptDebugger {
uint64_t msec_count; uint64_t msec_count;
bool locking; //hack to avoid a deadloop bool locking; //hack to avoid a deadloop
static void _print_handler(void *p_this, const String &p_string); static void _print_handler(void *p_this, const String &p_string, bool p_error);
PrintHandlerList phl; PrintHandlerList phl;

View File

@@ -642,7 +642,7 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_
} }
//str+="\n"; //str+="\n";
OS::get_singleton()->printerr("%s\n", str.utf8().get_data()); print_error(str);
r_ret = Variant(); r_ret = Variant();
} break; } break;

View File

@@ -1109,7 +1109,7 @@ void VisualScriptBuiltinFunc::exec_func(BuiltinFunc p_func, const Variant **p_in
String str = *p_inputs[0]; String str = *p_inputs[0];
//str+="\n"; //str+="\n";
OS::get_singleton()->printerr("%s\n", str.utf8().get_data()); print_error(str);
} break; } break;
case VisualScriptBuiltinFunc::TEXT_PRINTRAW: { case VisualScriptBuiltinFunc::TEXT_PRINTRAW: {