summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/ddb_input_uade2/uade-2.13/src/ossupport.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/plugins/ddb_input_uade2/uade-2.13/src/ossupport.c b/plugins/ddb_input_uade2/uade-2.13/src/ossupport.c
new file mode 100644
index 00000000..6ecfb53e
--- /dev/null
+++ b/plugins/ddb_input_uade2/uade-2.13/src/ossupport.c
@@ -0,0 +1,48 @@
+#include "ossupport.h"
+
+#include "unixsupport.c"
+/* This module was written by Heikki Orsila <heikki.orsila@iki.fi> 2000-2005.
+ * No copyrights claimed, so this module is in Public Domain (only this
+ * code module). See OpenBSD man pages for strlcat and strlcpy
+ */
+
+#include <string.h>
+
+size_t strlcpy(char *dst, const char *src, size_t size)
+{
+ size_t slen = strlen(src);
+ if(slen < size)
+ strcpy(dst, src);
+ else if (size > 0) {
+ strncpy(dst, src, size-1);
+ dst[size-1] = 0;
+ }
+ return slen;
+}
+
+
+size_t strlcat(char *dst, const char *src, size_t size)
+{
+ size_t slen = strlen(src);
+ size_t dlen = 0;
+ while(dlen < size) {
+ if(dst[dlen] == 0)
+ break;
+ dlen++;
+ }
+
+ if(dlen == size) {
+ return slen + dlen;
+ }
+
+ if((dlen + slen) < size)
+ strcat(dst, src);
+ else {
+ int left = size - dlen - 1;
+ if(left > 0) {
+ strncat(dst, src, left);
+ }
+ dst[size-1] = 0;
+ }
+ return slen + dlen;
+}