diff options
| -rw-r--r-- | defs.h | 1 | ||||
| -rw-r--r-- | string.c | 16 | 
2 files changed, 17 insertions, 0 deletions
@@ -39,6 +39,7 @@ void* memset(void*, int, uint);  int memcmp(const void*, const void*, uint);  void* memmove(void*, const void*, uint);  int strncmp(const char*, const char*, uint); +char* safestrcpy(char*, const char*, int);  // syscall.c  void syscall(void); @@ -57,3 +57,19 @@ strncmp(const char *p, const char *q, uint n)    else      return (int) ((uchar) *p - (uchar) *q);  } + +// Like strncpy but guaranteed to NUL-terminate. +char* +safestrcpy(char *s, const char *t, int n) +{ +  char *os; +   +  os = s; +  if(n <= 0) +    return os; +  while(--n > 0 && (*s++ = *t++) != 0) +    ; +  *s = 0; +  return os; +} +  | 
