| 1 |
pcg |
1.1 |
#include "../../config.h" |
| 2 |
|
|
#include "../rxvt.h" |
| 3 |
|
|
|
| 4 |
|
|
# /* hack! */ define memset rmemset |
| 5 |
|
|
# /* hack! */ define memmove rmemmove |
| 6 |
|
|
void *memset __PROTO((void *p, int c1, size_t len)); |
| 7 |
|
|
void *memmove __PROTO((void *d, const void *s, size_t len)); |
| 8 |
|
|
# /* hack! */ include "../strings.c" |
| 9 |
|
|
# /* hack! */ undef memmove |
| 10 |
|
|
# /* hack! */ undef memset |
| 11 |
|
|
|
| 12 |
|
|
#define OFF 16 |
| 13 |
|
|
#define BUFSZ 300 |
| 14 |
|
|
|
| 15 |
|
|
unsigned char buf1[BUFSZ], buf2[BUFSZ], buf3[BUFSZ]; |
| 16 |
|
|
|
| 17 |
|
|
int |
| 18 |
|
|
main() |
| 19 |
|
|
{ |
| 20 |
|
|
int i, j, k, a; |
| 21 |
|
|
int res; |
| 22 |
|
|
|
| 23 |
|
|
res = 0; |
| 24 |
|
|
for (i = 0; i < OFF; i++) |
| 25 |
|
|
for (j = 0; j < OFF; j++) |
| 26 |
|
|
for (k = 0; k < OFF; k++) { |
| 27 |
|
|
|
| 28 |
|
|
memset(buf2, 127, BUFSZ); |
| 29 |
|
|
memset(buf3, 127, BUFSZ); |
| 30 |
|
|
for (a = 1; a < 256; a++) |
| 31 |
|
|
buf1[OFF + i + a - 1] = a; |
| 32 |
|
|
rmemmove(buf2 + OFF + k, buf1 + OFF + i, 256 - OFF + j); |
| 33 |
|
|
memmove(buf3 + OFF + k, buf1 + OFF + i, 256 - OFF + j); |
| 34 |
|
|
for (a = 0; a < (int)sizeof buf2; a++) |
| 35 |
|
|
if (buf2[a] != buf3[a]) { |
| 36 |
|
|
res = 1; |
| 37 |
|
|
printf("Test BAD, Start = +%d, Size = +%d, Dest =+ %d: ", |
| 38 |
|
|
i, j, k); |
| 39 |
|
|
printf(" -1=%02x, 0=%02x, %d=%02x, %d=%02x\n", |
| 40 |
|
|
buf2[OFF + k - 1], buf2[OFF + k], |
| 41 |
|
|
255 - OFF + j, buf2[k + 255 + j], |
| 42 |
|
|
256 - OFF + j, buf2[k + 256 + j]); |
| 43 |
|
|
break; |
| 44 |
|
|
} |
| 45 |
|
|
} |
| 46 |
|
|
if (res == 0) |
| 47 |
|
|
printf("OK\n"); |
| 48 |
|
|
exit(res); |
| 49 |
|
|
} |