|
|
1.1 root 1: #include <stdio.h>
2:
3: /* Break string in two parts to avoid buggy C compilers that ignore characters
4: after nulls in strings. */
5:
6: char string1[] = "Testing distribution of nonprinting chars:\n\
7: Should be 0177: \177 Should be 0377: \377 Should be 0212: \212.\n\
8: Should be 0000: ";
9:
10: char string2[] = ".\n\
11: This file is read by the `test-distribution' program.\n\
12: If you change it, you will make that program fail.\n";
13:
14: char buf[300];
15:
16: /* Like `read' but keeps trying until it gets SIZE bytes or reaches eof. */
17: int
18: cool_read (fd, buf, size)
19: int fd;
20: char *buf;
21: int size;
22: {
23: int num, sofar = 0;
24:
25: while (1)
26: {
27: if ((num = read (fd, buf + sofar, size - sofar)) == 0)
28: return sofar;
29: else if (num < 0)
30: return num;
31: sofar += num;
32: }
33: }
34:
35: main ()
36: {
37: int fd = open ("testfile", 0);
38:
39: if (fd < 0)
40: {
41: perror ("opening `testfile'");
42: exit (2);
43: }
44: if (cool_read (fd, buf, sizeof string1) != sizeof string1 ||
45: strcmp (buf, string1) ||
46: cool_read (fd, buf, sizeof string2) != sizeof string2 - 1 ||
47: strncmp (buf, string2, sizeof string2 - 1))
48: {
49: fprintf (stderr, "Data in file `testfile' has been damaged.\n\
50: Most likely this means that many nonprinting characters\n\
51: have been corrupted in the files of Emacs, and it will not work.\n");
52: exit (2);
53: }
54: close (fd);
55: #ifdef VMS
56: exit (1); /* On VMS, success is 1. */
57: #else
58: exit (0);
59: #endif
60: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.