summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2024-05-15 15:55:28 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2024-05-15 15:55:28 +0900
commit26628b93baee1eea9528e9ffb68eb72b9c2d5c6d (patch)
tree90398775d4135bbd13cd980fcee71ae15357cd94
parent1e20731aef7822ed4fed3a5eca0a160d6798fdb3 (diff)
downloadk9copy-26628b93baee1eea9528e9ffb68eb72b9c2d5c6d.tar.gz
k9copy-26628b93baee1eea9528e9ffb68eb72b9c2d5c6d.zip
Use strlcat from libc instead of custom one. This resolves issue #29
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
-rw-r--r--ConfigureChecks.cmake3
-rw-r--r--config.h.cmake12
-rw-r--r--k9vamps/cputest.cpp35
3 files changed, 15 insertions, 35 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 3a9bbd2..770673d 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -97,3 +97,6 @@ elseif( ${CMAKE_SYSTEM_PROCESSOR} MATCHES sparc* )
set( ARCH_SPARC 1 )
endif()
+
+### check for strlcat
+check_symbol_exists( strlcat string.h HAVE_STRLCAT_PROTO )
diff --git a/config.h.cmake b/config.h.cmake
index 5a397e7..0b26cdf 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -22,3 +22,15 @@
#cmakedefine ALPHA 1
#cmakedefine PPC 1
#cmakedefine SPARC 1
+
+/* Define strlcat prototype if needed */
+#cmakedefine HAVE_STRLCAT_PROTO
+#if !defined(HAVE_STRLCAT_PROTO)
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ unsigned long strlcat(char*, const char*, unsigned long);
+ #ifdef __cplusplus
+ }
+ #endif
+#endif
diff --git a/k9vamps/cputest.cpp b/k9vamps/cputest.cpp
index a7cd686..69b420c 100644
--- a/k9vamps/cputest.cpp
+++ b/k9vamps/cputest.cpp
@@ -187,41 +187,6 @@ void ac_mmtest()
} else printf(" C\n");
}
-/*
- * Appends src to string dst of size siz (unlike strncat, siz is the
- * full size of dst, not space left). At most siz-1 characters
- * will be copied. Always NUL terminates (unless siz <= strlen(dst)).
- * Returns strlen(src) + MIN(siz, strlen(initial dst)).
- * If retval >= siz, truncation occurred.
- */
-size_t
-strlcat(char *dst, const char *src, size_t siz)
-{
- char *d = dst;
- const char *s = src;
- size_t n = siz;
- size_t dlen;
-
- /* Find the end of dst and adjust bytes left but don't go past end */
- while (n-- != 0 && *d != '\0')
- d++;
- dlen = d - dst;
- n = siz - dlen;
-
- if (n == 0)
- return(dlen + strlen(s));
- while (*s != '\0') {
- if (n != 1) {
- *d++ = *s;
- n--;
- }
- s++;
- }
- *d = '\0';
-
- return(dlen + (s - src)); /* count does not include NUL */
-}
-
char *ac_mmstr(int flag, int mode)
{
static char mmstr[64]="";