Skip to content
Snippets Groups Projects
Commit 4e2c1401 authored by Gregory Nutt's avatar Gregory Nutt
Browse files

Add stpcpy()

parent 75390a49
No related branches found
No related tags found
No related merge requests found
......@@ -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).
/****************************************************************************
* 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)
......
......@@ -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)
......
/************************************************************************
* 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');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment