diff options
author | Neil Moore <neil@s-z.org> | 2014-05-31 14:45:18 -0400 |
---|---|---|
committer | Neil Moore <neil@s-z.org> | 2014-05-31 14:55:47 -0400 |
commit | 412fe291f11fef02f2e00c0323c4c9c616929459 (patch) | |
tree | 5ec315f78436d09203f93e504477ead4163e1b64 | |
parent | 48301db05228478240d016ade7e603fa2d9ca79c (diff) | |
download | crawl-ref-412fe291f11fef02f2e00c0323c4c9c616929459.tar.gz crawl-ref-412fe291f11fef02f2e00c0323c4c9c616929459.zip |
Don't redefine strlcpy if it already exists.
Check for strlcpy at compile time and define our version only if
necessary.
This should fix recurrent warnings on Macs (and probably other BSDs).
-rw-r--r-- | crawl-ref/source/libutil.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/libutil.h | 6 | ||||
-rwxr-xr-x | crawl-ref/source/util/configure | 16 |
3 files changed, 24 insertions, 0 deletions
diff --git a/crawl-ref/source/libutil.cc b/crawl-ref/source/libutil.cc index 1b76dd4d09..50fc9739a1 100644 --- a/crawl-ref/source/libutil.cc +++ b/crawl-ref/source/libutil.cc @@ -1070,6 +1070,7 @@ void cscroll(int n, GotoRegion region) mouse_mode mouse_control::ms_current_mode = MOUSE_MODE_NORMAL; +#ifndef HAVE_STRLCPY size_t strlcpy(char *dst, const char *src, size_t n) { if (!n) @@ -1090,6 +1091,7 @@ size_t strlcpy(char *dst, const char *src, size_t n) return s - src - 1; } +#endif string unwrap_desc(string desc) { diff --git a/crawl-ref/source/libutil.h b/crawl-ref/source/libutil.h index a7b6f3f778..43d33e561f 100644 --- a/crawl-ref/source/libutil.h +++ b/crawl-ref/source/libutil.h @@ -11,6 +11,7 @@ #include <string> #include <vector> #include <map> +#include "config.h" extern const char *standard_plural_qualifiers[]; @@ -72,7 +73,12 @@ static inline ucs_t toalower(ucs_t c) int numcmp(const char *a, const char *b, int limit = 0); bool numcmpstr(string a, string b); + +#ifdef HAVE_STRLCPY +#include <cstring> +#else size_t strlcpy(char *dst, const char *src, size_t n); +#endif int strwidth(const char *s); int strwidth(const string &s); diff --git a/crawl-ref/source/util/configure b/crawl-ref/source/util/configure index bcea3d18b9..5a83e5573d 100755 --- a/crawl-ref/source/util/configure +++ b/crawl-ref/source/util/configure @@ -21,8 +21,24 @@ END FDATASYNC="#define HAVE_FDATASYNC" || FDATASYNC="#undef HAVE_FDATASYNC" rm -f conftest.cc conftest.o +cat <<END >conftest.cc +#include <string.h> +int main() +{ + const char *src = "hello"; + char dst[10]; + strlcpy(dst, src, sizeof(dst)); + return 0; +} +END + +"$CXX" "$@" -c conftest.cc >/dev/null 2>/dev/null && + STRLCPY="#define HAVE_STRLCPY" || STRLCPY="#undef HAVE_STRLCPY" +rm -f conftest.cc conftest.o + cat <<END >config.h // Generated by util/configure $FDATASYNC +$STRLCPY END |