]> code.delx.au - gnu-emacs/blobdiff - lib-src/test-distrib.c
*** empty log message ***
[gnu-emacs] / lib-src / test-distrib.c
index e1f5be11861846fff17dc8bf48f8c344100091cc..4913f0946146821bd7e42bf950b00601abca4352 100644 (file)
@@ -1,5 +1,43 @@
+/* test-distrib.c --- testing distribution of nonprinting chars
+
+   Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001, 2002, 2003,
+                 2004, 2005, 2006, 2007 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 3, 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., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, 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.  */
 
@@ -12,7 +50,7 @@ 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)
@@ -32,29 +70,40 @@ cool_read (fd, buf, size)
     }
 }
 
-main ()
+int
+main (argc, argv)
+     int argc;
+     char **argv;
 {
-  int fd = open ("testfile", 0);
+  int fd;
 
+  if (argc != 2)
+    {
+      fprintf (stderr, "Usage: %s testfile\n", argv[0]);
+      exit (EXIT_FAILURE);
+    }
+  fd = open (argv[1], O_RDONLY);
   if (fd < 0)
     {
-      perror ("opening `testfile'");
-      exit (2);
+      perror (argv[1]);
+      exit (EXIT_FAILURE);
     }
   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 `testfile' has been damaged.\n\
+      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");
-      exit (2);
+have been corrupted in the files of Emacs, and it will not work.\n",
+              argv[1]);
+      exit (EXIT_FAILURE);
     }
   close (fd);
-#ifdef VMS
-  exit (1);                    /* On VMS, success is 1.  */
-#else
-  exit (0);
-#endif
+  return EXIT_SUCCESS;
 }
+
+/* arch-tag: 3a89005d-df98-4c32-aa9f-33570e16a26a
+   (do not change this comment) */
+
+/* test-distrib.c ends here */