From 6334895088947eb318c8df15d0a68db27819a06f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 5 Nov 2015 20:13:05 +0100 Subject: Display error type (error, warning, script error) in OS::print_error Previously all types of errors would be shown as ERROR, thus making for example warnings (WARN_PRINT) somewhat aggressive. ERROR is displayed in red, WARNING in yellow and SCRIPT ERROR in magenta (though the latter does not seem used so far). Fixes #1127. --- drivers/unix/os_unix.cpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'drivers/unix/os_unix.cpp') diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp index 8617061ad4..194802fcb8 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -65,15 +65,25 @@ void OS_Unix::print_error(const char* p_function,const char* p_file,int p_line,c if (!_print_error_enabled) return; - if (p_rationale && p_rationale[0]) { - - print("\E[1;31;40mERROR: %s: \E[1;37;40m%s\n",p_function,p_rationale); - print("\E[0;31;40m At: %s:%i.\E[0;0;37m\n",p_file,p_line); - - } else { - print("\E[1;31;40mERROR: %s: \E[1;37;40m%s\n",p_function,p_code); - print("\E[0;31;40m At: %s:%i.\E[0;0;37m\n",p_file,p_line); - + const char* err_details; + if (p_rationale && p_rationale[0]) + err_details=p_rationale; + else + err_details=p_code; + + switch(p_type) { + case ERR_ERROR: + print("\E[1;31;40mERROR: %s: \E[1;37;40m%s\n",p_function,err_details); + print("\E[0;31;40m At: %s:%i.\E[0;0;37m\n",p_file,p_line); + break; + case ERR_WARNING: + print("\E[1;33;40mWARNING: %s: \E[1;37;40m%s\n",p_function,err_details); + print("\E[0;33;40m At: %s:%i.\E[0;0;37m\n",p_file,p_line); + break; + case ERR_SCRIPT: + print("\E[1;35;40mSCRIPT ERROR: %s: \E[1;37;40m%s\n",p_function,err_details); + print("\E[0;35;40m At: %s:%i.\E[0;0;37m\n",p_file,p_line); + break; } } -- cgit v1.2.3