mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
2003-03-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AC_CHECK_FUNCS(strlcpy strlcat). * src/strlcat.c: New (extracted from pppd/utils.c). * src/strlcpy.c: New (extracted from pppd/utils.c). * Makefile.am: Add BSD_C_FILES, strlcat.c, strlcpy.c.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2003-03-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_CHECK_FUNCS(strlcpy strlcat).
|
||||
* src/strlcat.c: New (extracted from pppd/utils.c).
|
||||
* src/strlcpy.c: New (extracted from pppd/utils.c).
|
||||
* Makefile.am: Add BSD_C_FILES, strlcat.c, strlcpy.c.
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
@@ -133,7 +133,11 @@ LIBC_GLUE_C_FILES = src/__getpid.c src/__gettod.c src/__times.c \
|
||||
|
||||
UNIX_LIBC_C_FILES = src/unixlibc.c src/hosterr.c
|
||||
|
||||
COMMON_C_FILES = src/gxx_wrappers.c src/printk.c $(BASE_FS_C_FILES) \
|
||||
BSD_LIBC_C_FILES = src/strlcpy.c src/strlcat.c
|
||||
|
||||
COMMON_C_FILES = src/gxx_wrappers.c src/printk.c \
|
||||
$(BSD_LIBC_C_FILES) \
|
||||
$(BASE_FS_C_FILES) \
|
||||
$(MALLOC_C_FILES) $(TERMIOS_C_FILES) $(ERROR_C_FILES) \
|
||||
$(ASSOCIATION_C_FILES)
|
||||
|
||||
|
||||
@@ -71,6 +71,9 @@ AC_CHECK_DECLS([ECHOPRT],,,[#include <termios.h>])
|
||||
## BSD-ism, excluded from POSIX, but available on most platforms
|
||||
AC_CHECK_DECLS([sbrk],,,[#include <unistd.h>])
|
||||
|
||||
## Check if libc provides BSD's strlcpy/strlcat
|
||||
AC_CHECK_FUNCS(strlcpy strlcat)
|
||||
|
||||
AM_CONDITIONAL([NEED_SYS_CDEFS_H],[test x"$NEED_SYS_CDEFS_H" = x"yes"])
|
||||
|
||||
AM_CONFIG_HEADER([src/config.h])
|
||||
|
||||
41
cpukit/libcsupport/src/strlcat.c
Normal file
41
cpukit/libcsupport/src/strlcat.c
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* utils.c - various utility functions used in pppd.
|
||||
*
|
||||
* Copyright (c) 1999 The Australian National University.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms are permitted
|
||||
* provided that the above copyright notice and this paragraph are
|
||||
* duplicated in all such forms and that any documentation,
|
||||
* advertising materials, and other materials related to such
|
||||
* distribution and use acknowledge that the software was developed
|
||||
* by the Australian National University. The name of the University
|
||||
* may not be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*/
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#ifndef HAVE_STRLCAT
|
||||
/*
|
||||
* strlcat - like strcat/strncat, doesn't overflow destination buffer,
|
||||
* always leaves destination null-terminated (for len > 0).
|
||||
*/
|
||||
size_t
|
||||
strlcat(dest, src, len)
|
||||
char *dest;
|
||||
const char *src;
|
||||
size_t len;
|
||||
{
|
||||
size_t dlen = strlen(dest);
|
||||
|
||||
return dlen + strlcpy(dest + dlen, src, (len > dlen? len - dlen: 0));
|
||||
}
|
||||
#endif
|
||||
49
cpukit/libcsupport/src/strlcpy.c
Normal file
49
cpukit/libcsupport/src/strlcpy.c
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* utils.c - various utility functions used in pppd.
|
||||
*
|
||||
* Copyright (c) 1999 The Australian National University.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms are permitted
|
||||
* provided that the above copyright notice and this paragraph are
|
||||
* duplicated in all such forms and that any documentation,
|
||||
* advertising materials, and other materials related to such
|
||||
* distribution and use acknowledge that the software was developed
|
||||
* by the Australian National University. The name of the University
|
||||
* may not be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*/
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#ifndef HAVE_STRLCPY
|
||||
/*
|
||||
* strlcpy - like strcpy/strncpy, doesn't overflow destination buffer,
|
||||
* always leaves destination null-terminated (for len > 0).
|
||||
*/
|
||||
size_t
|
||||
strlcpy(dest, src, len)
|
||||
char *dest;
|
||||
const char *src;
|
||||
size_t len;
|
||||
{
|
||||
size_t ret = strlen(src);
|
||||
|
||||
if (len != 0) {
|
||||
if (ret < len)
|
||||
strcpy(dest, src);
|
||||
else {
|
||||
strncpy(dest, src, len - 1);
|
||||
dest[len-1] = 0;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user