annotate lib-src/test-distrib.c @ 40819:668787248f9b

* dired.el (dired-move-to-filename-regexp): Do not distinguish between ASCII letters and non-ASCII characters. Don't allow comma except in the form "month day, year". Don't allow space between month name and comma. Clean up the code that checks for trailing period, comma, and space. Remove now-obsolete comments, and add more commentary about Japanese dates. Always gobble up trailing spaces, instead of doing it only sometimes.
author Paul Eggert <eggert@twinsun.com>
date Wed, 07 Nov 2001 21:59:39 +0000
parents c8fb06423da0
children dfc99f4ae55e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
1 /* test-distrib.c --- testing distribution of nonprinting chars
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
2
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
3 Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
4 Free Software Foundation Inc.
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
5
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
6 This file is part of GNU Emacs.
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
7
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
8 GNU Emacs is free software; you can redistribute it and/or modify
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
9 it under the terms of the GNU General Public License as published by
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
10 the Free Software Foundation; either version 2, or (at your option)
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
11 any later version.
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
12
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
13 GNU Emacs is distributed in the hope that it will be useful,
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
16 GNU General Public License for more details.
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
17
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
18 You should have received a copy of the GNU General Public License
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
19 along with GNU Emacs; see the file COPYING. If not, write to
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
20 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
21
12935
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
22 #ifdef HAVE_CONFIG_H
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
23 #include <config.h>
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
24 #endif
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
25
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 #include <stdio.h>
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27
25447
76e2d539ecad Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents: 12976
diff changeset
28 #ifdef HAVE_UNISTD_H
76e2d539ecad Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents: 12976
diff changeset
29 #include <unistd.h>
76e2d539ecad Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents: 12976
diff changeset
30 #endif
76e2d539ecad Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents: 12976
diff changeset
31
12935
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
32 #ifndef O_RDONLY
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
33 #define O_RDONLY 0
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
34 #endif
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
35
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 /* Break string in two parts to avoid buggy C compilers that ignore characters
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 after nulls in strings. */
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 char string1[] = "Testing distribution of nonprinting chars:\n\
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 Should be 0177: \177 Should be 0377: \377 Should be 0212: \212.\n\
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 Should be 0000: ";
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 char string2[] = ".\n\
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 This file is read by the `test-distribution' program.\n\
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 If you change it, you will make that program fail.\n";
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 char buf[300];
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 /* Like `read' but keeps trying until it gets SIZE bytes or reaches eof. */
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 int
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 cool_read (fd, buf, size)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 int fd;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 char *buf;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 int size;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 {
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 int num, sofar = 0;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 while (1)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 {
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 if ((num = read (fd, buf + sofar, size - sofar)) == 0)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 return sofar;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 else if (num < 0)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 return num;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 sofar += num;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 }
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 }
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 2814
diff changeset
68 int
2814
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
69 main (argc, argv)
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
70 int argc;
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
71 char **argv;
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 {
2814
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
73 int fd;
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74
2814
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
75 if (argc != 2)
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
76 {
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
77 fprintf (stderr, "Usage: %s testfile\n", argv[0]);
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
78 exit (2);
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
79 }
12935
f65e672e038e [HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents: 9491
diff changeset
80 fd = open (argv[1], O_RDONLY);
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 if (fd < 0)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 {
2814
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
83 perror (argv[1]);
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 exit (2);
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 }
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 if (cool_read (fd, buf, sizeof string1) != sizeof string1 ||
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 strcmp (buf, string1) ||
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 cool_read (fd, buf, sizeof string2) != sizeof string2 - 1 ||
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 strncmp (buf, string2, sizeof string2 - 1))
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 {
2814
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
91 fprintf (stderr, "Data in file `%s' has been damaged.\n\
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 Most likely this means that many nonprinting characters\n\
2814
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
93 have been corrupted in the files of Emacs, and it will not work.\n",
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 10
diff changeset
94 argv[1]);
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95 exit (2);
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 }
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 close (fd);
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 #ifdef VMS
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 exit (1); /* On VMS, success is 1. */
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 #endif
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 2814
diff changeset
101 return (0);
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 }