|
|
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.