From: Lucas Cavalcante de Sousa Date: Fri, 26 Jun 2020 12:51:01 +0000 (+0000) Subject: Native Windows: Eina: Resolve bad comparison while using windows strerror_s X-Git-Tag: submit/tizen/20200629.001406~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a06a19ef0ea1677b23efb357e2e60aaf8424d5ff;p=platform%2Fupstream%2Fefl.git Native Windows: Eina: Resolve bad comparison while using windows strerror_s `strerror_s` is the windows alternative of `strerror_r` used by EFL. `strerror_s` never return the error code with the message as `strerror_r` does, because of that, while comparing the first 14 characters of `Unknown error ` to the message from unknown code 4096 (`Unknown error`) they were accusing being different - in UNIX this works because the message returned is `Unknown error 4096`. This error was noticeable at `eina_error_test_failures` test case. This Diff adds the error code to the message in case of an `Unknown error`, making the windows implementation compliant with UNIX. Reviewed-by: Vincent Torri Reviewed-by: Wander Lairson Costa Reviewed-by: Stefan Schmidt Differential Revision: https://phab.enlightenment.org/D12033 --- diff --git a/src/lib/eina/eina_error.c b/src/lib/eina/eina_error.c index 7922933..b9f05a5 100644 --- a/src/lib/eina/eina_error.c +++ b/src/lib/eina/eina_error.c @@ -115,7 +115,13 @@ _eina_error_msg_alloc(void) /* Windows has strerror_s(), similar to POSIX strerror_r() */ static inline int strerror_r(int errnum, char *buf, size_t buflen) { - return strerror_s(buf, buflen, errnum); + int ret; + + ret = strerror_s(buf, buflen, errnum); + if (strcmp(buf, "Unknown error") == 0) + snprintf(buf, buflen, "Unknown error %d", errnum); + + return ret; } #endif