1 | #include "strscpy.h" |
---|---|
2 | #include <limits.h> /* SSIZE_MAX */ |
3 | |
4 | ssize_t uv__strscpy(char* d, const char* s, size_t n) { |
5 | size_t i; |
6 | |
7 | for (i = 0; i < n; i++) |
8 | if ('\0' == (d[i] = s[i])) |
9 | return i > SSIZE_MAX ? UV_E2BIG : (ssize_t) i; |
10 | |
11 | if (i == 0) |
12 | return 0; |
13 | |
14 | d[--i] = '\0'; |
15 | |
16 | return UV_E2BIG; |
17 | } |
18 |