[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/kdecore
From: Dirk Mueller <mueller () kde ! org>
Date: 2002-12-08 17:01:21
[Download RAW message or body]
CVS commit by mueller:
adding strlcpy / strlcat implementation.
for reference see: http://www.courtesan.com/todd/papers/strlcpy.html
M +20 -0 configure.in.in 1.27
M +33 -0 fakes.c 1.10
--- kdelibs/kdecore/configure.in.in 1.27:
@@ -283,2 +283,22 @@ AC_TRY_LINK(dnl
)
+AH_VERBATIM(HAVE_STRLCPY,[
+
+#ifndef HAVE_STRLCPY
+#include <sys/types.h>
+#ifdef __cplusplus
+extern "C" size_t strlcpy(char*,const char*,size_t) throw();
+#else
+size_t strlcpy(char*,const char*,size_t);
+#endif
+#endif
+
+#ifndef HAVE_STRLCAT
+#include <sys/types.h>
+#ifdef __cplusplus
+extern "C" size_t strlcat(char*,const char*,size_t) throw();
+#else
+size_t strlcat(char*,const char*,size_t);
+#endif
+#endif
+])
--- kdelibs/kdecore/fakes.c 1.10:
@@ -285,2 +285,35 @@ int revoke(const char *tty)
}
#endif
+
+#ifndef HAVE_STRLCPY
+size_t strlcpy(char* d, const char* s, size_t bufsize)
+{
+ size_t len = strlen(s);
+ size_t ret = len;
+
+ if(bufsize <= 0) return 0;
+ if(len >= bufsize) len = bufsize-1;
+ memcpy(d, s, len);
+ d[len] = '\0';
+ return ret;
+}
+#endif
+
+#ifndef HAVE_STRLCAT
+size_t strlcat(char* d, const char* s, size_t bufsize)
+{
+ size_t len1 = strlen(d);
+ size_t len2 = strlen(s);
+ size_t ret = len1 + len2;
+
+ if(ret >= bufsize)
+ len2 = bufsize - len1 - 1;
+ if(len2 > 0) {
+ memcpy(d+len1,s,len2);
+ d[len1+len2] = '\0';
+ }
+ return ret;
+}
+#endif
+
+
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic