Annotation of 43BSDReno/contrib/emacs-18.55/etc/test-distrib.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.