Annotation of 43BSDReno/contrib/emacs-18.55/etc/test-distrib.c, revision 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.