зеркало из https://github.com/github/ruby.git
* 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
This commit is contained in:
Родитель
f44333cbff
Коммит
c0851c650f
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
/*
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче