Mercurial > emacs
annotate lib-src/test-distrib.c @ 97095:61de98ebc619
** mairix.el is an interface to mairix, a free tool for indexing and
searching locally stored mail. It allows you to query mairix and
display the search results with Rmail, Gnus and VM. Note that there
is an existing Gnus back end, nnmairix.el, which should be used with
Maildir/MH setups.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Tue, 29 Jul 2008 17:44:00 +0000 |
parents | 3a4bc081639c |
children | a9f7e446141d |
rev | line source |
---|---|
36226 | 1 /* test-distrib.c --- testing distribution of nonprinting chars |
2 | |
94828
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
3 Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001, 2002, 2003, 2004, 2005, |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
4 2006, 2007, 2008 Free Software Foundation, Inc. |
36226 | 5 |
94828
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
6 This file is part of GNU Emacs. |
36226 | 7 |
94828
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
8 GNU Emacs is free software: you can redistribute it and/or modify |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
9 it under the terms of the GNU General Public License as published by |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
10 the Free Software Foundation, either version 3 of the License, or |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
11 (at your option) any later version. |
36226 | 12 |
94828
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
13 GNU Emacs is distributed in the hope that it will be useful, |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
14 but WITHOUT ANY WARRANTY; without even the implied warranty of |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
16 GNU General Public License for more details. |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
17 |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
18 You should have received a copy of the GNU General Public License |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
19 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
3a4bc081639c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
79748
diff
changeset
|
20 |
36226 | 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 | 26 #include <stdio.h> |
27 | |
42146 | 28 #ifdef HAVE_FCNTL_H |
42135 | 29 #include <fcntl.h> |
30 #endif | |
31 | |
25447
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
32 #ifdef HAVE_UNISTD_H |
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
33 #include <unistd.h> |
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
34 #endif |
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
35 |
12935
f65e672e038e
[HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents:
9491
diff
changeset
|
36 #ifndef O_RDONLY |
f65e672e038e
[HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents:
9491
diff
changeset
|
37 #define O_RDONLY 0 |
f65e672e038e
[HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents:
9491
diff
changeset
|
38 #endif |
f65e672e038e
[HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents:
9491
diff
changeset
|
39 |
10 | 40 /* Break string in two parts to avoid buggy C compilers that ignore characters |
41 after nulls in strings. */ | |
42 | |
43 char string1[] = "Testing distribution of nonprinting chars:\n\ | |
44 Should be 0177: \177 Should be 0377: \377 Should be 0212: \212.\n\ | |
45 Should be 0000: "; | |
46 | |
47 char string2[] = ".\n\ | |
48 This file is read by the `test-distribution' program.\n\ | |
49 If you change it, you will make that program fail.\n"; | |
50 | |
51 char buf[300]; | |
42439
d8a417105504
Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents:
42259
diff
changeset
|
52 |
10 | 53 /* Like `read' but keeps trying until it gets SIZE bytes or reaches eof. */ |
54 int | |
55 cool_read (fd, buf, size) | |
56 int fd; | |
57 char *buf; | |
58 int size; | |
59 { | |
60 int num, sofar = 0; | |
61 | |
62 while (1) | |
63 { | |
64 if ((num = read (fd, buf + sofar, size - sofar)) == 0) | |
65 return sofar; | |
66 else if (num < 0) | |
67 return num; | |
68 sofar += num; | |
69 } | |
70 } | |
71 | |
9491
dd3b83e4ceb0
Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents:
2814
diff
changeset
|
72 int |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
73 main (argc, argv) |
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
74 int argc; |
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
75 char **argv; |
10 | 76 { |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
77 int fd; |
10 | 78 |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
79 if (argc != 2) |
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
80 { |
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
81 fprintf (stderr, "Usage: %s testfile\n", argv[0]); |
55500
70c5b89b216b
(main): For failing cases, exit with `EXIT_FAILURE'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
55442
diff
changeset
|
82 exit (EXIT_FAILURE); |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
83 } |
12935
f65e672e038e
[HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents:
9491
diff
changeset
|
84 fd = open (argv[1], O_RDONLY); |
10 | 85 if (fd < 0) |
86 { | |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
87 perror (argv[1]); |
55500
70c5b89b216b
(main): For failing cases, exit with `EXIT_FAILURE'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
55442
diff
changeset
|
88 exit (EXIT_FAILURE); |
10 | 89 } |
90 if (cool_read (fd, buf, sizeof string1) != sizeof string1 || | |
91 strcmp (buf, string1) || | |
92 cool_read (fd, buf, sizeof string2) != sizeof string2 - 1 || | |
93 strncmp (buf, string2, sizeof string2 - 1)) | |
94 { | |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
95 fprintf (stderr, "Data in file `%s' has been damaged.\n\ |
10 | 96 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
|
97 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
|
98 argv[1]); |
55500
70c5b89b216b
(main): For failing cases, exit with `EXIT_FAILURE'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
55442
diff
changeset
|
99 exit (EXIT_FAILURE); |
10 | 100 } |
101 close (fd); | |
55442
a47704955f8d
Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
102 return EXIT_SUCCESS; |
10 | 103 } |
52401 | 104 |
105 /* arch-tag: 3a89005d-df98-4c32-aa9f-33570e16a26a | |
106 (do not change this comment) */ | |
55442
a47704955f8d
Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
107 |
a47704955f8d
Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
108 /* test-distrib.c ends here */ |