Mercurial > emacs
annotate lib-src/test-distrib.c @ 112119:48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
that cross more than a single physical window line, ie when truncate-lines
is nil.
(allout-next-visible-heading): Provide for change in line-move behavior on
long lines when truncate-lines is nil. In that case, line-move can wind up
on the same textual line when it moves to the next window line, and moving
to the bullet position after the move yields zero advancement. Add logic
to detect and compensate for the lack of progress.
(allout-current-topic-collapsed-p): move-end-of-line respect for field
boundaries is different when operating with body lines shorter than window
width versus ones greater than window width, which can yield false
negatives in this function. Avoid difference by applying move-end-of-line
while field-text-motion is inhibited.
author | Ken Manheimer <ken.manheimer@gmail.com> |
---|---|
date | Tue, 04 Jan 2011 14:44:10 -0500 |
parents | ae7e9ce45a16 |
children | 417b1e4d63cd 7df2e30d72ec |
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, |
106815 | 4 2006, 2007, 2008, 2009, 2010 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 #include <config.h> |
10 | 23 #include <stdio.h> |
42135 | 24 #include <fcntl.h> |
25 | |
25447
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
26 #ifdef HAVE_UNISTD_H |
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
27 #include <unistd.h> |
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
28 #endif |
76e2d539ecad
Include <unistd.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
12976
diff
changeset
|
29 |
10 | 30 /* Break string in two parts to avoid buggy C compilers that ignore characters |
31 after nulls in strings. */ | |
32 | |
33 char string1[] = "Testing distribution of nonprinting chars:\n\ | |
34 Should be 0177: \177 Should be 0377: \377 Should be 0212: \212.\n\ | |
35 Should be 0000: "; | |
36 | |
37 char string2[] = ".\n\ | |
38 This file is read by the `test-distribution' program.\n\ | |
39 If you change it, you will make that program fail.\n"; | |
40 | |
41 char buf[300]; | |
42439
d8a417105504
Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents:
42259
diff
changeset
|
42 |
10 | 43 /* Like `read' but keeps trying until it gets SIZE bytes or reaches eof. */ |
44 int | |
110746
5c1a707ab452
Fix compilation warnings.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
109125
diff
changeset
|
45 cool_read (int fd, char *buf, size_t size) |
10 | 46 { |
110746
5c1a707ab452
Fix compilation warnings.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
109125
diff
changeset
|
47 ssize_t num; |
111548
ae7e9ce45a16
* lib-src/test-distrib.c: Remove include guards for config.h and fcntl.h.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
110746
diff
changeset
|
48 ssize_t sofar = 0; |
10 | 49 |
50 while (1) | |
51 { | |
52 if ((num = read (fd, buf + sofar, size - sofar)) == 0) | |
53 return sofar; | |
54 else if (num < 0) | |
55 return num; | |
56 sofar += num; | |
57 } | |
58 } | |
59 | |
9491
dd3b83e4ceb0
Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents:
2814
diff
changeset
|
60 int |
109125
12b02558bf51
* lib-src/fakemail.c (action): Convert function definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
61 main (int argc, char **argv) |
10 | 62 { |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
63 int fd; |
10 | 64 |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
65 if (argc != 2) |
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
66 { |
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
67 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
|
68 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
|
69 } |
12935
f65e672e038e
[HAVE_CONFIG_H]: Include config.h.
Roland McGrath <roland@gnu.org>
parents:
9491
diff
changeset
|
70 fd = open (argv[1], O_RDONLY); |
10 | 71 if (fd < 0) |
72 { | |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
73 perror (argv[1]); |
55500
70c5b89b216b
(main): For failing cases, exit with `EXIT_FAILURE'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
55442
diff
changeset
|
74 exit (EXIT_FAILURE); |
10 | 75 } |
76 if (cool_read (fd, buf, sizeof string1) != sizeof string1 || | |
77 strcmp (buf, string1) || | |
78 cool_read (fd, buf, sizeof string2) != sizeof string2 - 1 || | |
79 strncmp (buf, string2, sizeof string2 - 1)) | |
80 { | |
2814
0da5b58e98ed
Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents:
10
diff
changeset
|
81 fprintf (stderr, "Data in file `%s' has been damaged.\n\ |
10 | 82 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
|
83 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
|
84 argv[1]); |
55500
70c5b89b216b
(main): For failing cases, exit with `EXIT_FAILURE'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
55442
diff
changeset
|
85 exit (EXIT_FAILURE); |
10 | 86 } |
87 close (fd); | |
55442
a47704955f8d
Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
88 return EXIT_SUCCESS; |
10 | 89 } |
52401 | 90 |
91 /* arch-tag: 3a89005d-df98-4c32-aa9f-33570e16a26a | |
92 (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
|
93 |
a47704955f8d
Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
94 /* test-distrib.c ends here */ |