summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-10-27 02:55:18 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-10-27 02:55:18 +0000
commitc0851c650ff75d11d301ce4965f610bae9a565be (patch)
tree896ec25a6f12877c36ce5f89cdca36be1e98f81e
parentf44333cbff95e520e8c41b9cd455b1a16ed7cf22 (diff)
* missing.h, missing/memcmp.c, missing/memmove.c:
ANSI compatible interface. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--missing.h4
-rw-r--r--missing/memcmp.c9
-rw-r--r--missing/memmove.c17
4 files changed, 19 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 4bbc94c..109f93a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Oct 27 11:53:17 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+
+ * missing.h, missing/memcmp.c, missing/memmove.c:
+ ANSI compatible interface.
+
Wed Oct 26 09:15:48 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* ext/syck/implicit.c (syck_type_id_to_uri): should return
diff --git a/missing.h b/missing.h
index 675d0d5..5b4dcc2 100644
--- a/missing.h
+++ b/missing.h
@@ -76,12 +76,12 @@ extern int isnan(double);
/*
#ifndef HAVE_MEMCMP
-extern int memcmp(char *, char *, int);
+extern int memcmp(const void *, const void *, size_t);
#endif
*/
#ifndef HAVE_MEMMOVE
-extern void *memmove(void *, void *, int);
+extern void *memmove(void *, const void *, size_t);
#endif
/*
diff --git a/missing/memcmp.c b/missing/memcmp.c
index 9edc9c1..5b3ad38 100644
--- a/missing/memcmp.c
+++ b/missing/memcmp.c
@@ -1,16 +1,15 @@
/* public domain rewrite of memcmp(3) */
+#include <stddef.h>
+
int
-memcmp(s1,s2,len)
- char *s1;
- char *s2;
- register int len;
+memcmp(const void *s1, const void *s2, size_t len)
{
register unsigned char *a = (unsigned char*)s1;
register unsigned char *b = (unsigned char*)s2;
register int tmp;
- while (len--) {
+ for (; len; --len) {
if (tmp = *a++ - *b++)
return tmp;
}
diff --git a/missing/memmove.c b/missing/memmove.c
index c9d67d8..19c5f18 100644
--- a/missing/memmove.c
+++ b/missing/memmove.c
@@ -1,22 +1,21 @@
/* public domain rewrite of memcmp(3) */
+#include <stddef.h>
+
void *
-memmove (d, s, n)
- void *d, *s;
- int n;
+memmove(void *d, const void *s, size_t n)
{
- char *dst = d;
- char *src = s;
- void *ret = dst;
+ char *dst = (char *)d;
+ const char *src = (const char *)s;
if (src < dst) {
src += n;
dst += n;
- while (n--)
+ for (; n; --n)
*--dst = *--src;
}
else if (dst < src)
- while (n--)
+ for (; n; --n)
*dst++ = *src++;
- return ret;
+ return d;
}