annotate src/syswait.h @ 111107:f3721a6253a8

Fix mouse highlight in bidi-reordered continued lines. xdisp.c (row_containing_pos): Don't return too early when CHARPOS is in a bidi-reordered continued line. Return immediately when the first hit is found in a line that is not continued, or when an exact match for CHARPOS is found. (mouse_face_from_buffer_pos): Rewrite to not assume that START_CHARPOS is always in mouse_face_beg_row. If necessary, swap mouse_face_beg_row and mouse_face_end_row so that the former is always above the latter or identical to it. Continued lines that begin or end outside of the visible region still don't work.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 02 Oct 2010 17:05:20 +0200
parents 1d1d5d9bd884
children 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4626
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 /* Define wait system call interface for Emacs.
75227
e90d04cd455a Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 68651
diff changeset
2 Copyright (C) 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2004,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100951
diff changeset
3 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
4626
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 This file is part of GNU Emacs.
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87730
diff changeset
7 GNU Emacs is free software: you can redistribute it and/or modify
4626
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87730
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87730
diff changeset
10 (at your option) any later version.
4626
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 GNU General Public License for more details.
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87730
diff changeset
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
4626
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 /* Define the structure that the wait system call stores.
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 On many systems, there is a structure defined for this.
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 But on vanilla-ish USG systems there is not. */
c5bbe7c3cfe3 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23
30066
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
24 #ifndef EMACS_SYSWAIT_H
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
25 #define EMACS_SYSWAIT_H
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
26
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
27 #include <sys/types.h>
30066
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
28
41185
d12c8d3334f4 Delete conditionals for HPUX7, ISC 4.1, and convex.
Richard M. Stallman <rms@gnu.org>
parents: 41138
diff changeset
29 #ifdef HAVE_SYS_WAIT_H /* We have sys/wait.h with POSIXoid definitions. */
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
30 #include <sys/wait.h>
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
31 #endif /* !HAVE_SYS_WAIT_H */
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
32
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
33 #ifndef WCOREDUMP /* not POSIX */
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
34 #define WCOREDUMP(status) ((status) & 0x80)
30066
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
35 #endif
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
36 #ifndef WEXITSTATUS
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
37 #define WEXITSTATUS(status) (((status) & 0xff00) >> 8)
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
38 #endif
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
39 #ifndef WIFEXITED
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
40 #define WIFEXITED(status) (WTERMSIG(status) == 0)
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
41 #endif
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
42 #ifndef WIFSTOPPED
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
43 #define WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
44 #endif
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
45 #ifndef WIFSIGNALED
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
46 #define WIFSIGNALED(status) (!WIFSTOPPED(status) && !WIFEXITED(status))
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
47 #endif
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
48 #ifndef WSTOPSIG
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
49 #define WSTOPSIG(status) WEXITSTATUS(status)
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
50 #endif
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
51 #ifndef WTERMSIG
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
52 #define WTERMSIG(status) ((status) & 0x7f)
46865
971ae7795f13 Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
Richard M. Stallman <rms@gnu.org>
parents: 41185
diff changeset
53 #endif
30465
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
54
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
55 #undef WRETCODE
d57d77adc6da Move some definitions.
Dave Love <fx@gnu.org>
parents: 30066
diff changeset
56 #define WRETCODE(status) WEXITSTATUS (status)
30066
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
57
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
58
0c8b413f3f35 Use the autoconf recommended approach. Old code #if'd out in case we
Dave Love <fx@gnu.org>
parents: 16220
diff changeset
59 #endif /* EMACS_SYSWAIT_H */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
60
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
61 /* arch-tag: 7e5d9719-ec66-4b6f-89bb-563eea16a899
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
62 (do not change this comment) */