Mercurial > emacs
view lib-src/test-distrib.c @ 4824:eaf67474339b
(Fminibuffer_complete_word): GCPRO1 `completion' during calls to
Ftry_completion.
(read_minibuf): Rewrite change of Sep 14. Save the return value on
the history list provided in the form that the value is returned, iff
the value is not equal to the front of the history list.
(Fread_no_blanks_input): Change DEFUN to allow 2nd arg to be optional.
The code was already written correctly.
author | Brian Fox <bfox@gnu.org> |
---|---|
date | Tue, 05 Oct 1993 01:46:45 +0000 |
parents | 0da5b58e98ed |
children | dd3b83e4ceb0 |
line wrap: on
line source
#include <stdio.h> /* Break string in two parts to avoid buggy C compilers that ignore characters after nulls in strings. */ char string1[] = "Testing distribution of nonprinting chars:\n\ Should be 0177: \177 Should be 0377: \377 Should be 0212: \212.\n\ Should be 0000: "; char string2[] = ".\n\ This file is read by the `test-distribution' program.\n\ If you change it, you will make that program fail.\n"; char buf[300]; /* Like `read' but keeps trying until it gets SIZE bytes or reaches eof. */ int cool_read (fd, buf, size) int fd; char *buf; int size; { int num, sofar = 0; while (1) { if ((num = read (fd, buf + sofar, size - sofar)) == 0) return sofar; else if (num < 0) return num; sofar += num; } } main (argc, argv) int argc; char **argv; { int fd; if (argc != 2) { fprintf (stderr, "Usage: %s testfile\n", argv[0]); exit (2); } fd = open (argv[1], 0); if (fd < 0) { perror (argv[1]); exit (2); } if (cool_read (fd, buf, sizeof string1) != sizeof string1 || strcmp (buf, string1) || cool_read (fd, buf, sizeof string2) != sizeof string2 - 1 || strncmp (buf, string2, sizeof string2 - 1)) { fprintf (stderr, "Data in file `%s' has been damaged.\n\ Most likely this means that many nonprinting characters\n\ have been corrupted in the files of Emacs, and it will not work.\n", argv[1]); exit (2); } close (fd); #ifdef VMS exit (1); /* On VMS, success is 1. */ #else exit (0); #endif }