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
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
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
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100958
diff changeset
4 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
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
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
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
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26083
diff changeset
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
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 #include <config.h>
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 #include <stdio.h>
42135
dfc99f4ae55e Conditionally include fcntl.h.
Dave Love <fx@gnu.org>
parents: 36226
diff changeset
24 #include <fcntl.h>
dfc99f4ae55e Conditionally include fcntl.h.
Dave Love <fx@gnu.org>
parents: 36226
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 /* 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
31 after nulls in strings. */
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 char string1[] = "Testing distribution of nonprinting chars:\n\
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 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
35 Should be 0000: ";
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 char string2[] = ".\n\
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 This file is read by the `test-distribution' program.\n\
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 If you change it, you will make that program fail.\n";
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 char buf[300];
42439
d8a417105504 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 42259
diff changeset
42
10
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 /* 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
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 while (1)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 {
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 if ((num = read (fd, buf + sofar, size - sofar)) == 0)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 return sofar;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 else if (num < 0)
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 return num;
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 sofar += num;
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 }
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 if (fd < 0)
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 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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 }
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 if (cool_read (fd, buf, sizeof string1) != sizeof string1 ||
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77 strcmp (buf, string1) ||
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 cool_read (fd, buf, sizeof string2) != sizeof string2 - 1 ||
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79 strncmp (buf, string2, sizeof string2 - 1))
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 }
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
445291a2fb96 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 42439
diff changeset
90
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 42439
diff changeset
91 /* arch-tag: 3a89005d-df98-4c32-aa9f-33570e16a26a
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 42439
diff changeset
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 */