]> arthur.barton.de Git - ngircd-alex.git/blob - src/portab/memmove.c
Make vsnprintf() portab function more portable
[ngircd-alex.git] / src / portab / memmove.c
1 /*
2  * ngIRCd -- The Next Generation IRC Daemon
3  */
4
5 #include "portab.h"
6
7 /**
8  * @file
9  * memmove() implementation.
10  * Source: http://c-faq.com/~scs/cgi-bin/faqcat.cgi?sec=ansi
11  */
12
13 #ifndef HAVE_MEMMOVE
14
15 GLOBAL void *
16 memmove(void *dest, void const *src, size_t n)
17 {
18         register char *dp = dest;
19         register char const *sp = src;
20         if(dp < sp) {
21                 while(n-- > 0)
22                         *dp++ = *sp++;
23         } else {
24                 dp += n;
25                 sp += n;
26                 while(n-- > 0)
27                         *--dp = *--sp;
28         }
29
30         return dest;
31 }
32
33 #endif