Add stpcpy()
This commit is contained in:
parent
75390a49a4
commit
4e2c140124
@ -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).
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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');
|
||||
|
Loading…
x
Reference in New Issue
Block a user