diff options
author | Will Miles <wmiles@sgl.com> | 2015-02-27 14:43:24 -0500 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2015-03-03 16:54:17 +1000 |
commit | 965539adbf15449533bc5fcb353774f7a4b62277 (patch) | |
tree | d05e0cf4753ac5bac8d4e340674451bfcac27c73 | |
parent | bb94729c098f21ae850044a9201c1d5b92baea1f (diff) | |
download | pacman-965539adbf15449533bc5fcb353774f7a4b62277.tar.xz |
common: Avoid errors on systems that define strnlen but not strndup
Add a configure test for a system library supplied strnlen, and disable
the embedded version in common if one is found.
Signed-off-by: Will Miles <wmiles@sgl.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/common/util-common.c | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index 735fdc34..359d61bf 100644 --- a/configure.ac +++ b/configure.ac @@ -304,8 +304,8 @@ AC_FUNC_MKTIME AC_FUNC_STRCOLL AC_CHECK_FUNCS([dup2 getcwd getmntinfo gettimeofday memmove memset \ mkdir realpath regcomp rmdir setenv setlocale strcasecmp \ - strchr strcspn strdup strerror strndup strrchr strsep strstr \ - strtol swprintf tcflush wcwidth uname]) + strchr strcspn strdup strerror strndup strnlen strrchr \ + strsep strstr strtol swprintf tcflush wcwidth uname]) AC_CHECK_MEMBERS([struct stat.st_blksize],,,[[#include <sys/stat.h>]]) # For the diskspace code diff --git a/src/common/util-common.c b/src/common/util-common.c index f5b00f17..e8341688 100644 --- a/src/common/util-common.c +++ b/src/common/util-common.c @@ -127,7 +127,7 @@ char *safe_fgets(char *s, int size, FILE *stream) return ret; } -#ifndef HAVE_STRNDUP +#ifndef HAVE_STRNLEN /* A quick and dirty implementation derived from glibc */ /** Determines the length of a fixed-size string. * @param s string to be measured @@ -140,7 +140,9 @@ static size_t strnlen(const char *s, size_t max) for(p = s; *p && max--; ++p); return (p - s); } +#endif +#ifndef HAVE_STRNDUP /** Copies a string. * Returned string needs to be freed * @param s string to be copied |