slightly cleaner strlen, also seems to compile to better code
[musl] / src / string / strerror_r.c
1 #include <string.h>
2 #include <errno.h>
3
4 int strerror_r(int err, char *buf, size_t buflen)
5 {
6         char *msg = strerror(err);
7         size_t l = strlen(msg);
8         if (l >= buflen) {
9                 if (buflen) {
10                         memcpy(buf, msg, buflen-1);
11                         buf[buflen-1] = 0;
12                 }
13                 return ERANGE;
14         }
15         memcpy(buf, msg, l+1);
16         return 0;
17 }