Annotation of GNUtools/emacs/src/process.h, revision 1.1.1.1

1.1       root        1: /* Definitions for asynchronous process control in GNU Emacs.
                      2:    Copyright (C) 1985, 1990 Free Software Foundation, Inc.
                      3: 
                      4: This file is part of GNU Emacs.
                      5: 
                      6: GNU Emacs is free software; you can redistribute it and/or modify
                      7: it under the terms of the GNU General Public License as published by
                      8: the Free Software Foundation; either version 1, or (at your option)
                      9: any later version.
                     10: 
                     11: GNU Emacs is distributed in the hope that it will be useful,
                     12: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     14: GNU General Public License for more details.
                     15: 
                     16: You should have received a copy of the GNU General Public License
                     17: along with GNU Emacs; see the file COPYING.  If not, write to
                     18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
                     19: 
                     20: 
                     21: /*
                     22:  * Structure records pertinent information about open channels.
                     23:  * There is one channel associated with each process.
                     24:  */
                     25: 
                     26: struct Lisp_Process
                     27:   {
                     28:     int size;
                     29:     struct Lisp_Vector *v_next;
                     30:     /* Descriptor by which we read from this process */
                     31:     Lisp_Object infd;
                     32:     /* Descriptor by which we write to this process */
                     33:     Lisp_Object outfd;
                     34:     /* Descriptor for the tty which this process is using.
                     35:        nil if we didn't record it (on some systems, there's no need).  */
                     36:     Lisp_Object subtty;
                     37:     /* Name of this process */
                     38:     Lisp_Object name;
                     39:     /* List of command arguments that this process was run with */
                     40:     Lisp_Object command;
                     41:     /* (funcall FILTER PROC STRING)  (if FILTER is non-nil)
                     42:        to dispose of a bunch of chars from the process all at once */
                     43:     Lisp_Object filter;
                     44:     /* (funcall SENTINEL PROCESS) when process state changes */
                     45:     Lisp_Object sentinel;
                     46:     /* Buffer that output is going to */
                     47:     Lisp_Object buffer;
                     48:     /* Number of this process */
                     49:     Lisp_Object pid;
                     50:     /* Non-nil if this is really a command channel */
                     51:     Lisp_Object command_channel_p;
                     52:     /* Non-nil if this is really a child process */
                     53:     Lisp_Object childp;
                     54:     /* Marker set to end of last buffer-inserted output from this process */
                     55:     Lisp_Object mark;
                     56:     /* Non-nil means kill silently if Emacs is exited.  */
                     57:     Lisp_Object kill_without_query;
                     58:     /* Record the process status in the raw form in which it comes from `wait'.
                     59:        This is to avoid consing in a signal handler.  */
                     60:     Lisp_Object raw_status_low;
                     61:     Lisp_Object raw_status_high;
                     62:     /* Symbol indicating status of process.
                     63:        This may be a symbol: run, open, or closed.
                     64:        Or it may be a list, whose car is stop, exit or signal
                     65:        and whose cdr is a pair (EXIT_CODE . COREDUMP_FLAG)
                     66:        or (SIGNAL_NUMBER . COREDUMP_FLAG).  */
                     67:     Lisp_Object status;
                     68:     /* Non-nil if communicating through a pty.  */
                     69:     Lisp_Object pty_flag;
                     70:     /* Event-count of last event in which this process changed status.  */
                     71:     Lisp_Object tick;
                     72:     /* Event-count of last such event reported.  */
                     73:     Lisp_Object update_tick;
                     74: };
                     75: 
                     76: #define ChannelMask(n) (1<<(n))

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.