summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-01-09 14:08:48 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-01-09 14:08:48 -0600
commitaa2b82b4ac938e8335af06fdfadd8a7f7e80843d (patch)
treeefaec172549194162b3f5dc38183c56ec078ed2b /nuttx
parent2d8d981fa08003789ed6b4abf69e553fa5901140 (diff)
downloadpx4-nuttx-aa2b82b4ac938e8335af06fdfadd8a7f7e80843d.tar.gz
px4-nuttx-aa2b82b4ac938e8335af06fdfadd8a7f7e80843d.tar.bz2
px4-nuttx-aa2b82b4ac938e8335af06fdfadd8a7f7e80843d.zip
Add stpcpy()
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/ChangeLog2
-rw-r--r--nuttx/include/string.h62
-rw-r--r--nuttx/libc/string/Make.defs17
-rw-r--r--nuttx/libc/string/lib_strcpy.c18
4 files changed, 57 insertions, 42 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 4c250d28e..dbbd9f7f1 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/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/nuttx/include/string.h b/nuttx/include/string.h
index 7aa028bfa..79849e4a9 100644
--- a/nuttx/include/string.h
+++ b/nuttx/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 <gnutt@nuttx.org>
*
* 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/nuttx/libc/string/Make.defs b/nuttx/libc/string/Make.defs
index 311c8afd2..aedbdd96b 100644
--- a/nuttx/libc/string/Make.defs
+++ b/nuttx/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/nuttx/libc/string/lib_strcpy.c b/nuttx/libc/string/lib_strcpy.c
index 7a0576f5a..efd4f2aca 100644
--- a/nuttx/libc/string/lib_strcpy.c
+++ b/nuttx/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 <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -42,11 +42,23 @@
#include <string.h>
/************************************************************************
- * 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');