diff --git a/ChangeLog b/ChangeLog index 4c250d28e2..dbbd9f7f1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6408,4 +6408,4 @@ files): Add support for the XPT2046 touchscreen controller on the Viewtool LCD module connected to the Viewtool STM32F103 board (2014-1-9). - + * libc/strings/lib_stpcpy.c: Add stpcpy() (2014-1-9). diff --git a/include/string.h b/include/string.h index 7aa028bfac..79849e4a96 100644 --- a/include/string.h +++ b/include/string.h @@ -1,7 +1,7 @@ /**************************************************************************** * include/string.h * - * Copyright (C) 2007-2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -62,40 +62,42 @@ #undef EXTERN #if defined(__cplusplus) #define EXTERN extern "C" -extern "C" { +extern "C" +{ #else #define EXTERN extern #endif -EXTERN FAR char *strdup(FAR const char *s); -EXTERN FAR char *strndup(FAR const char *s, size_t size); -EXTERN FAR const char *strerror(int); -EXTERN size_t strlen(FAR const char *); -EXTERN size_t strnlen(FAR const char *, size_t); -EXTERN FAR char *strcat(FAR char *, FAR const char *); -EXTERN FAR char *strncat(FAR char *, FAR const char *, size_t); -EXTERN int strcmp(FAR const char *, FAR const char *); -EXTERN int strncmp(FAR const char *, FAR const char *, size_t); -EXTERN int strcasecmp(FAR const char *, FAR const char *); -EXTERN int strncasecmp(FAR const char *, FAR const char *, size_t); -EXTERN FAR char *strcpy(char *dest, FAR const char *src); -EXTERN FAR char *strncpy(char *, FAR const char *, size_t); -EXTERN FAR char *strpbrk(FAR const char *, FAR const char *); -EXTERN FAR char *strchr(FAR const char *s, int c); -EXTERN FAR char *strrchr(FAR const char *s, int c); -EXTERN size_t strspn(FAR const char *, FAR const char *); -EXTERN size_t strcspn(FAR const char *, FAR const char *); -EXTERN FAR char *strstr(FAR const char *, FAR const char *); -EXTERN FAR char *strcasestr(FAR const char *, FAR const char *); -EXTERN FAR char *strtok(FAR char *, FAR const char *); -EXTERN FAR char *strtok_r(FAR char *, FAR const char *, FAR char **); +FAR char *strdup(FAR const char *s); +FAR char *strndup(FAR const char *s, size_t size); +FAR const char *strerror(int); +size_t strlen(FAR const char *); +size_t strnlen(FAR const char *, size_t); +FAR char *strcat(FAR char *, FAR const char *); +FAR char *strncat(FAR char *, FAR const char *, size_t); +int strcmp(FAR const char *, FAR const char *); +int strncmp(FAR const char *, FAR const char *, size_t); +int strcasecmp(FAR const char *, FAR const char *); +int strncasecmp(FAR const char *, FAR const char *, size_t); +FAR char *strcpy(char *dest, FAR const char *src); +FAR char *stpcpy(char *dest, FAR const char *src); +FAR char *strncpy(char *, FAR const char *, size_t); +FAR char *strpbrk(FAR const char *, FAR const char *); +FAR char *strchr(FAR const char *s, int c); +FAR char *strrchr(FAR const char *s, int c); +size_t strspn(FAR const char *, FAR const char *); +size_t strcspn(FAR const char *, FAR const char *); +FAR char *strstr(FAR const char *, FAR const char *); +FAR char *strcasestr(FAR const char *, FAR const char *); +FAR char *strtok(FAR char *, FAR const char *); +FAR char *strtok_r(FAR char *, FAR const char *, FAR char **); -EXTERN FAR void *memchr(FAR const void *s, int c, size_t n); -EXTERN FAR void *memccpy(FAR void *s1, FAR const void *s2, int c, size_t n); -EXTERN int memcmp(FAR const void *s1, FAR const void *s2, size_t n); -EXTERN FAR void *memcpy(FAR void *dest, FAR const void *src, size_t n); -EXTERN FAR void *memmove(FAR void *dest, FAR const void *src, size_t count); -EXTERN FAR void *memset(FAR void *s, int c, size_t n); +FAR void *memchr(FAR const void *s, int c, size_t n); +FAR void *memccpy(FAR void *s1, FAR const void *s2, int c, size_t n); +int memcmp(FAR const void *s1, FAR const void *s2, size_t n); +FAR void *memcpy(FAR void *dest, FAR const void *src, size_t n); +FAR void *memmove(FAR void *dest, FAR const void *src, size_t count); +FAR void *memset(FAR void *s, int c, size_t n); #undef EXTERN #if defined(__cplusplus) diff --git a/libc/string/Make.defs b/libc/string/Make.defs index 311c8afd27..aedbdd96b0 100644 --- a/libc/string/Make.defs +++ b/libc/string/Make.defs @@ -35,14 +35,15 @@ # Add the string C files to the build -CSRCS += lib_checkbase.c lib_isbasedigit.c lib_memset.c lib_memchr.c \ - lib_memccpy.c lib_memcmp.c lib_memmove.c lib_skipspace.c \ - lib_strcasecmp.c lib_strcat.c lib_strchr.c lib_strcpy.c lib_strcmp.c \ - lib_strcspn.c lib_strdup.c lib_strerror.c lib_strlen.c lib_strnlen.c \ - lib_strncasecmp.c lib_strncat.c lib_strncmp.c lib_strncpy.c \ - lib_strndup.c lib_strcasestr.c lib_strpbrk.c lib_strrchr.c\ - lib_strspn.c lib_strstr.c lib_strtok.c lib_strtokr.c lib_strtol.c \ - lib_strtoll.c lib_strtoul.c lib_strtoull.c lib_strtod.c +CSRCS += lib_checkbase.c lib_isbasedigit.c lib_memset.c lib_memchr.c +CSRCS += lib_memccpy.c lib_memcmp.c lib_memmove.c lib_skipspace.c +CSRCS += lib_stpcpy.c lib_strcasecmp.c lib_strcat.c lib_strchr.c +CSRCS += lib_strcpy.c lib_strcmp.c lib_strcspn.c lib_strdup.c lib_strerror.c +CSRCS += lib_strlen.c lib_strnlen.c lib_strncasecmp.c lib_strncat.c +CSRCS += lib_strncmp.c lib_strncpy.c lib_strndup.c lib_strcasestr.c +CSRCS += lib_strpbrk.c lib_strrchr.c lib_strspn.c lib_strstr.c lib_strtok.c +CSRCS += lib_strtokr.c lib_strtol.c lib_strtoll.c lib_strtoul.c +CSRCS += lib_strtoull.c lib_strtod.c ifneq ($(CONFIG_ARCH_MEMCPY),y) ifeq ($(CONFIG_MEMCPY_VIK),y) diff --git a/libc/string/lib_strcpy.c b/libc/string/lib_strcpy.c index 7a0576f5af..efd4f2aca1 100644 --- a/libc/string/lib_strcpy.c +++ b/libc/string/lib_strcpy.c @@ -1,7 +1,7 @@ /************************************************************************ * libc/string/lib_strcpy.c * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009, 2011, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -42,11 +42,23 @@ #include /************************************************************************ - * Global Functions + * Public Functions + ************************************************************************/ + +/************************************************************************ + * Name: strcpy + * + * Description: + * Copies the string pointed to by 'src' (including the terminating NUL + * character) into the array pointed to by 'des'. + * + * Returned value: + * The strcpy() function returns the 'dest' pointer + * ************************************************************************/ #ifndef CONFIG_ARCH_STRCPY -char *strcpy(char *dest, const char *src) +FAR char *strcpy(FAR char *dest, FAR const char *src) { char *tmp = dest; while ((*dest++ = *src++) != '\0');