forked from enlightenment/efl
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 <vincent.torri@gmail.com> Reviewed-by: Wander Lairson Costa <wander.lairson@gmail.com> Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D12033
This commit is contained in:
parent
cdaac43d3a
commit
a733f9c233
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue