|
|
| version 1.25.2.1, 2014/05/19 23:21:41 | version 1.25.2.2, 2014/05/19 23:35:40 |
|---|---|
| Line 82 sched_SetErr(int eno, char *estr, ...) | Line 82 sched_SetErr(int eno, char *estr, ...) |
| va_end(lst); | va_end(lst); |
| } | } |
| /* string support functions directly imported from OpenBSD */ | |
| #ifndef HAVE_STRLCAT | |
| /* | |
| * Appends src to string dst of size siz (unlike strncat, siz is the | |
| * full size of dst, not space left). At most siz-1 characters | |
| * will be copied. Always NUL terminates (unless siz <= strlen(dst)). | |
| * Returns strlen(src) + MIN(siz, strlen(initial dst)). | |
| * If retval >= siz, truncation occurred. | |
| */ | |
| size_t | |
| strlcat(char * __restrict dst, const char * __restrict src, size_t siz) | |
| { | |
| char *d = dst; | |
| const char *s = src; | |
| size_t n = siz; | |
| size_t dlen; | |
| /* Find the end of dst and adjust bytes left but don't go past end */ | |
| while (n-- != 0 && *d != '\0') | |
| d++; | |
| dlen = d - dst; | |
| n = siz - dlen; | |
| if (n == 0) | |
| return(dlen + strlen(s)); | |
| while (*s != '\0') { | |
| if (n != 1) { | |
| *d++ = *s; | |
| n--; | |
| } | |
| s++; | |
| } | |
| *d = '\0'; | |
| return(dlen + (s - src)); /* count does not include NUL */ | |
| } | |
| #endif | |
| #ifndef HAVE_STRLCPY | |
| /* | |
| * Copy src to string dst of size siz. At most siz-1 characters | |
| * will be copied. Always NUL terminates (unless siz == 0). | |
| * Returns strlen(src); if retval >= siz, truncation occurred. | |
| */ | |
| size_t | |
| strlcpy(char * __restrict dst, const char * __restrict src, size_t siz) | |
| { | |
| char *d = dst; | |
| const char *s = src; | |
| size_t n = siz; | |
| /* Copy as many bytes as will fit */ | |
| if (n != 0) { | |
| while (--n != 0) { | |
| if ((*d++ = *s++) == '\0') | |
| break; | |
| } | |
| } | |
| /* Not enough room in dst, add NUL and traverse rest of src */ | |
| if (n == 0) { | |
| if (siz != 0) | |
| *d = '\0'; /* NUL-terminate dst */ | |
| while (*s++) | |
| ; | |
| } | |
| return(s - src - 1); /* count does not include NUL */ | |
| } | |
| #endif | |
| /* Init and prepare scheduler functions */ | /* Init and prepare scheduler functions */ |
| /* | /* |