]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
Implement mempcpy() in terms of memcpy() if mempcpy() is unavailable
authorDaniel Trebbien <dtrebbien@gmail.com>
Wed, 30 Jan 2013 23:49:08 +0000 (18:49 -0500)
committerDaniel Trebbien <dtrebbien@gmail.com>
Wed, 30 Jan 2013 23:53:00 +0000 (18:53 -0500)
configure.ac
include/strutils.h
lib/strutils.c

index 9024809e7ef3529fc62c511f8c93f62a30a3250e..df989efb5ddc35ec482dae2c27536cec3317e2f7 100644 (file)
@@ -313,6 +313,7 @@ AC_CHECK_FUNCS([ \
        lchown \
        llseek \
        lseek64 \
+       mempcpy \
        nanosleep \
        personality \
        posix_fadvise \
index 123907fc98e3ebd46f1e9e138aabbacfd34ed938..00598cf622d97424bb61c7efe774d91b49c96d23 100644 (file)
@@ -28,6 +28,9 @@ extern double strtod_or_err(const char *str, const char *errmesg);
 extern long strtol_or_err(const char *str, const char *errmesg);
 extern unsigned long strtoul_or_err(const char *str, const char *errmesg);
 
+#ifndef HAVE_MEMPCPY
+extern void *mempcpy(void *restrict dest, const void *restrict src, size_t n);
+#endif
 #ifndef HAVE_STRNLEN
 extern size_t strnlen(const char *s, size_t maxlen);
 #endif
index 5dda1380518e35c9afc6d4eb44a8b1f8c86225e0..2337b07b96d03c77c5959216420074de016f8b85 100644 (file)
@@ -132,6 +132,13 @@ err:
        return -1;
 }
 
+#ifndef HAVE_MEMPCPY
+void *mempcpy(void *restrict dest, const void *restrict src, size_t n)
+{
+    return ((char *)memcpy(dest, src, n)) + n;
+}
+#endif
+
 #ifndef HAVE_STRNLEN
 size_t strnlen(const char *s, size_t maxlen)
 {