diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-01-10 07:09:59 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-01-10 07:09:59 -0600 |
commit | ff244ad944f28ba30d1b67d85c0bd3c172af4c09 (patch) | |
tree | d3478d15945b6ad4d2331a57b01056546ef0eca0 /nuttx | |
parent | 58635ac9da13fc6cc26043033578417b6d9cfcd0 (diff) | |
download | px4-nuttx-ff244ad944f28ba30d1b67d85c0bd3c172af4c09.tar.gz px4-nuttx-ff244ad944f28ba30d1b67d85c0bd3c172af4c09.tar.bz2 px4-nuttx-ff244ad944f28ba30d1b67d85c0bd3c172af4c09.zip |
Forgot to add stpcpy.c in last commit
Diffstat (limited to 'nuttx')
-rw-r--r-- | nuttx/include/stddef.h | 17 | ||||
-rw-r--r-- | nuttx/include/sys/types.h | 5 | ||||
-rw-r--r-- | nuttx/libc/string/lib_stpcpy.c | 67 |
3 files changed, 84 insertions, 5 deletions
diff --git a/nuttx/include/stddef.h b/nuttx/include/stddef.h index dd8385c9f..6e24fbd7c 100644 --- a/nuttx/include/stddef.h +++ b/nuttx/include/stddef.h @@ -48,16 +48,20 @@ /* The <stddef.h> header shall define the following macros: * * NULL - * The Null pointer constant. + * The null pointer constant. * - * NOTE: Currently the definition of NULL is in sys/types.h but should be - * moved here sometime. + * NOTE: Currently the definition of NULL is in sys/types.h but should + * be moved here sometime. * * offsetof(type, member-designator) * Integer constant expression of type size_t, the value of which is the * offset in bytes to the structure member (member-designator), from the * beginning of its structure (type). * + * NOTE: This version of offsetof() depends on behaviors that could be + * undefined for some compilers. It would be better to use a builtin + * function if one exists. + * * Reference: Opengroup.org */ @@ -71,6 +75,9 @@ * ptrdiff_t * Signed integer type of the result of subtracting two pointers. * + * NOTE: This type assumes that ssize_t will cover the largest address + * difference. This might not be true of CONFIG_MM_SMALL is defined. + * * wchar_t * Integer type whose range of values can represent distinct wide-character * codes for all members of the largest character set specified among the @@ -82,8 +89,8 @@ * size_t * Unsigned integer type of the result of the sizeof operator. * - * NOTE: Currently the type definitions of both wchar_t and size_t are in - * sys/types.h but should be moved here sometime. + * NOTE: Currently the type definitions of both wchar_t and size_t are + * in sys/types.h but should be moved here sometime. * * The implementation shall support one or more programming environments in * which the widths of ptrdiff_t, size_t, and wchar_t are no greater than the diff --git a/nuttx/include/sys/types.h b/nuttx/include/sys/types.h index 0fa01c117..9726e3450 100644 --- a/nuttx/include/sys/types.h +++ b/nuttx/include/sys/types.h @@ -56,6 +56,7 @@ #ifndef TRUE # define TRUE 1 #endif + #ifndef FALSE # define FALSE 0 #endif @@ -129,6 +130,8 @@ typedef unsigned int mode_t; /* size_t is used for sizes of memory objects. * ssize_t is used for a count of bytes or an error indication. + * + * REVISIT: size_t belongs in stddef.h */ #ifdef CONFIG_SMALL_MEMORY @@ -179,6 +182,8 @@ typedef intptr_t ptrdiff_t; /* Wide, 16-bit character types. wchar_t is a built-in type in C++ and * its declaration here may cause compilation errors on some compilers * if -DCONFIG_WCHAR_BUILTIN is not included in the CXXFLAGS. + * + * REVISIT: wchar_t belongs in stddef.h */ #ifndef CONFIG_WCHAR_BUILTIN diff --git a/nuttx/libc/string/lib_stpcpy.c b/nuttx/libc/string/lib_stpcpy.c new file mode 100644 index 000000000..046846468 --- /dev/null +++ b/nuttx/libc/string/lib_stpcpy.c @@ -0,0 +1,67 @@ +/************************************************************************ + * libc/string/lib_strppy.c + * + * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************/ + +/************************************************************************ + * Included Files + ************************************************************************/ + +#include <nuttx/config.h> + +#include <string.h> + +/************************************************************************ + * Public Functions + ************************************************************************/ + +/************************************************************************ + * Name: stpcpy + * + * Description: + * Copies the string pointed to by 'src' (including the terminating NUL + * character) into the array pointed to by 'dest'. + * + * Returned value: + * The stpcpy() function returns a pointer to the terminating NUL + * character copied into the 'dest' buffer + * + ************************************************************************/ + +#ifndef CONFIG_ARCH_STPCPY +FAR char *stpcpy(FAR char *dest, FAR const char *src) +{ + while ((*dest++ = *src++) != '\0'); + return --dest; +} +#endif |