annotate src/process.h @ 29473:80835e075d87

(display_line): Set row's and iterator's starts_in_middle_of_char_p and ends_in_middle_of_char_p flags. Set cursor even if row ends in the middle of a character. (dump_glyph_row): Print values of new flags. (redisplay_window) <cursor movement in unchanged window>: When point has been moved forward, and PT is at the end of the cursor row, don't place the cursor in the next row if the cursor row ends in the middle of a character or at ZV.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 06 Jun 2000 20:02:39 +0000
parents 96fd475a324d
children 6658b2120eba
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Definitions for asynchronous process control in GNU Emacs.
7307
cd81dba38a49 Update copyright.
Karl Heuer <kwzh@gnu.org>
parents: 6191
diff changeset
2 Copyright (C) 1985, 1994 Free Software Foundation, Inc.
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
12244
ac7375e60931 Update GPL to version 2.
Karl Heuer <kwzh@gnu.org>
parents: 10286
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 14036
diff changeset
19 Boston, MA 02111-1307, USA. */
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
21849
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
22 /* This structure records information about a subprocess
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
23 or network connection.
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
24
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
25 Every field in this structure except for the first two
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
26 must be a Lisp_Object, for GC's sake. */
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 struct Lisp_Process
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 {
10286
5689759b9329 Make size field an EMACS_INT.
Richard M. Stallman <rms@gnu.org>
parents: 8888
diff changeset
30 EMACS_INT size;
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 struct Lisp_Vector *v_next;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 /* Descriptor by which we read from this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 Lisp_Object infd;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 /* Descriptor by which we write to this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 Lisp_Object outfd;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 /* Descriptor for the tty which this process is using.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 nil if we didn't record it (on some systems, there's no need). */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 Lisp_Object subtty;
8888
84527c2d9f75 (struct process): New field tty_name.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
39 /* Name of subprocess terminal. */
84527c2d9f75 (struct process): New field tty_name.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
40 Lisp_Object tty_name;
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 /* Name of this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 Lisp_Object name;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 /* List of command arguments that this process was run with */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 Lisp_Object command;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 /* (funcall FILTER PROC STRING) (if FILTER is non-nil)
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 to dispose of a bunch of chars from the process all at once */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 Lisp_Object filter;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 /* (funcall SENTINEL PROCESS) when process state changes */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 Lisp_Object sentinel;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 /* Buffer that output is going to */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 Lisp_Object buffer;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 /* Number of this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 Lisp_Object pid;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 /* Non-nil if this is really a command channel */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 Lisp_Object command_channel_p;
16059
ad4cd2505623 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 14451
diff changeset
56 /* t if this is a real child process.
ad4cd2505623 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 14451
diff changeset
57 For a net connection, it is (HOST SERVICE). */
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 Lisp_Object childp;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 /* Marker set to end of last buffer-inserted output from this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 Lisp_Object mark;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 /* Non-nil means kill silently if Emacs is exited. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 Lisp_Object kill_without_query;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 /* Record the process status in the raw form in which it comes from `wait'.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 This is to avoid consing in a signal handler. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 Lisp_Object raw_status_low;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 Lisp_Object raw_status_high;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 /* Symbol indicating status of process.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 This may be a symbol: run, open, or closed.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 Or it may be a list, whose car is stop, exit or signal
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 and whose cdr is a pair (EXIT_CODE . COREDUMP_FLAG)
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 or (SIGNAL_NUMBER . COREDUMP_FLAG). */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 Lisp_Object status;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 /* Non-nil if communicating through a pty. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 Lisp_Object pty_flag;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 /* Event-count of last event in which this process changed status. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 Lisp_Object tick;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77 /* Event-count of last such event reported. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 Lisp_Object update_tick;
17042
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
79 /* Coding-system for decoding the input from this process. */
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
80 Lisp_Object decode_coding_system;
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
81 /* Working buffer for decoding. */
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
82 Lisp_Object decoding_buf;
20714
ead6c5a556e1 (struct Lisp_Process): New members decoding_carryover
Kenichi Handa <handa@m17n.org>
parents: 17042
diff changeset
83 /* Size of carryover in decoding. */
ead6c5a556e1 (struct Lisp_Process): New members decoding_carryover
Kenichi Handa <handa@m17n.org>
parents: 17042
diff changeset
84 Lisp_Object decoding_carryover;
17042
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
85 /* Coding-system for encoding the output to this process. */
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
86 Lisp_Object encode_coding_system;
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
87 /* Working buffer for encoding. */
00b923d54108 (struct Lisp_Process): New members
Karl Heuer <kwzh@gnu.org>
parents: 16059
diff changeset
88 Lisp_Object encoding_buf;
20714
ead6c5a556e1 (struct Lisp_Process): New members decoding_carryover
Kenichi Handa <handa@m17n.org>
parents: 17042
diff changeset
89 /* Size of carryover in encoding. */
ead6c5a556e1 (struct Lisp_Process): New members decoding_carryover
Kenichi Handa <handa@m17n.org>
parents: 17042
diff changeset
90 Lisp_Object encoding_carryover;
21657
373f809e0b95 (struct Lisp_Process): Add inherit_coding_system_flag member.
Eli Zaretskii <eliz@gnu.org>
parents: 20714
diff changeset
91 /* Flag to set coding-system of the process buffer from the
373f809e0b95 (struct Lisp_Process): Add inherit_coding_system_flag member.
Eli Zaretskii <eliz@gnu.org>
parents: 20714
diff changeset
92 coding_system used to decode process output. */
21849
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
93 Lisp_Object inherit_coding_system_flag;
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
94 };
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95
21849
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
96 /* Every field in the preceding structure except for the first two
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
97 must be a Lisp_Object, for GC's sake. */
96fd475a324d (struct process): Make inherit_coding_system_flag a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 21657
diff changeset
98
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 #define ChannelMask(n) (1<<(n))
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100
6165
9c0cc4128da8 (chan_process, Vprocess_alist): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 2432
diff changeset
101 /* Indexed by descriptor, gives the process (if any) for that descriptor. */
6191
84fc456177e2 (chan_process): Don't specify size.
Karl Heuer <kwzh@gnu.org>
parents: 6165
diff changeset
102 extern Lisp_Object chan_process[];
6165
9c0cc4128da8 (chan_process, Vprocess_alist): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 2432
diff changeset
103
9c0cc4128da8 (chan_process, Vprocess_alist): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 2432
diff changeset
104 /* Alist of elements (NAME . PROCESS). */
9c0cc4128da8 (chan_process, Vprocess_alist): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 2432
diff changeset
105 extern Lisp_Object Vprocess_alist;
9c0cc4128da8 (chan_process, Vprocess_alist): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 2432
diff changeset
106
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 /* True iff we are about to fork off a synchronous process or if we
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 are waiting for it. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 extern int synch_process_alive;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110
14036
621a575db6f7 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 12244
diff changeset
111 /* Communicate exit status of sync process to from sigchld_handler
546
c10a468c6203 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 365
diff changeset
112 to Fcall_process. */
c10a468c6203 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 365
diff changeset
113
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 /* Nonzero => this is a string explaining death of synchronous subprocess. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 extern char *synch_process_death;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117 /* If synch_process_death is zero,
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118 this is exit code of synchronous subprocess. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 extern int synch_process_retcode;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120
2432
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
121 /* The name of the file open to get a null file, or a data sink.
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
122 VMS, MS-DOS, and OS/2 redefine this. */
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
123 #ifndef NULL_DEVICE
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
124 #define NULL_DEVICE "/dev/null"
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
125 #endif
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
126
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
127 /* A string listing the possible suffixes used for executable files,
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
128 separated by colons. VMS, MS-DOS, and OS/2 redefine this. */
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
129 #ifndef EXEC_SUFFIXES
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
130 #define EXEC_SUFFIXES ""
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
131 #endif