annotate src/process.h @ 3779:e9961fa24193

*solar.el (solar-setup, solar-ephemeris-time, sunrise-sunset): Change Universal Time (UT) to Coordinated Universal Time (UTC). (solar-time-string): Use calendar-daylight-time-offset instead of 1 hr, and use calendar-daylight-savings-switchover-time instead of midnight. Add an optional parameter to allow forcing the use of standard or daylight savings time. Fix code so it works in southern hemisphere (start of dst precedes end of dst in a calendar year) and when dst either starts or ends in a calendar year, but not both.
author Jim Blandy <jimb@redhat.com>
date Wed, 16 Jun 1993 23:12:21 +0000
parents 17a84e60603b
children 9c0cc4128da8
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.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2 Copyright (C) 1985 Free Software Foundation, Inc.
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
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 the Free Software Foundation; either version 1, or (at your option)
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
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 /*
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 * Structure records pertinent information about open channels.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 * There is one channel associated with each process.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 struct Lisp_Process
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 {
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 int size;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 struct Lisp_Vector *v_next;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 /* Descriptor by which we read from this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 Lisp_Object infd;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 /* Descriptor by which we write to this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 Lisp_Object outfd;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 /* Descriptor for the tty which this process is using.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 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
36 Lisp_Object subtty;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 /* Name of this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 Lisp_Object name;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 /* List of command arguments that this process was run with */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 Lisp_Object command;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 /* (funcall FILTER PROC STRING) (if FILTER is non-nil)
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 to dispose of a bunch of chars from the process all at once */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 Lisp_Object filter;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 /* (funcall SENTINEL PROCESS) when process state changes */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 Lisp_Object sentinel;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 /* Buffer that output is going to */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 Lisp_Object buffer;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 /* Number of this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 Lisp_Object pid;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 /* Non-nil if this is really a command channel */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 Lisp_Object command_channel_p;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 /* Non-nil if this is really a child process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 Lisp_Object childp;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 /* Marker set to end of last buffer-inserted output from this process */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 Lisp_Object mark;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 /* Non-nil means kill silently if Emacs is exited. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57 Lisp_Object kill_without_query;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 /* 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
59 This is to avoid consing in a signal handler. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 Lisp_Object raw_status_low;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 Lisp_Object raw_status_high;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 /* Symbol indicating status of process.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 This may be a symbol: run, open, or closed.
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 Or it may be a list, whose car is stop, exit or signal
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 and whose cdr is a pair (EXIT_CODE . COREDUMP_FLAG)
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 or (SIGNAL_NUMBER . COREDUMP_FLAG). */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 Lisp_Object status;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 /* Non-nil if communicating through a pty. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 Lisp_Object pty_flag;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 /* Event-count of last event in which this process changed status. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 Lisp_Object tick;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 /* Event-count of last such event reported. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 Lisp_Object update_tick;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 };
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 #define ChannelMask(n) (1<<(n))
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 /* 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
79 are waiting for it. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80 extern int synch_process_alive;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81
546
c10a468c6203 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 365
diff changeset
82 /* Communicate exit status of synch process to from sigchld_handler
c10a468c6203 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 365
diff changeset
83 to Fcall_process. */
c10a468c6203 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 365
diff changeset
84 extern int synch_process_retcode;
c10a468c6203 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 365
diff changeset
85 extern char *synch_process_death;
c10a468c6203 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 365
diff changeset
86
365
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 /* Nonzero => this is a string explaining death of synchronous subprocess. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 extern char *synch_process_death;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 /* If synch_process_death is zero,
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 this is exit code of synchronous subprocess. */
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 extern int synch_process_retcode;
cba0546ba47c Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93
2432
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
94 /* 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
95 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
96 #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
97 #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
98 #endif
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
99
17a84e60603b New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
Jim Blandy <jimb@redhat.com>
parents: 546
diff changeset
100 /* 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
101 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
102 #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
103 #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
104 #endif