[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lib-src/test-distrib.c [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lib-src/test-distrib.c [lexbind] |
Date: |
Tue, 14 Oct 2003 19:59:26 -0400 |
Index: emacs/lib-src/test-distrib.c
diff -c /dev/null emacs/lib-src/test-distrib.c:1.12.4.1
*** /dev/null Tue Oct 14 19:59:26 2003
--- emacs/lib-src/test-distrib.c Tue Oct 14 19:59:14 2003
***************
*** 0 ****
--- 1,110 ----
+ /* test-distrib.c --- testing distribution of nonprinting chars
+
+ Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001
+ Free Software Foundation Inc.
+
+ This file is part of GNU Emacs.
+
+ GNU Emacs is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Emacs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Emacs; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+
+ #include <stdio.h>
+
+ #ifdef HAVE_FCNTL_H
+ #include <fcntl.h>
+ #endif
+
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+
+ #ifndef O_RDONLY
+ #define O_RDONLY 0
+ #endif
+
+ /* 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;
+ }
+ }
+
+ int
+ 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], O_RDONLY);
+ 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. */
+ #endif
+ return (0);
+ }
+
+ /* arch-tag: 3a89005d-df98-4c32-aa9f-33570e16a26a
+ (do not change this comment) */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lib-src/test-distrib.c [lexbind],
Miles Bader <=