annotate src/systty.h @ 12076:ee38e93ccf7e

(Fkill_buffer): When killing indirect buffer, unchain that buffer's markers (only) from the common chain. Don't rekill this buffer's indirect buffers that are dead. Do nothing if this buffer is already dead.
author Karl Heuer <kwzh@gnu.org>
date Mon, 05 Jun 1995 17:32:51 +0000
parents b841b238f556
children f42795956a18
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1597
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
1 /* systty.h - System-dependent definitions for terminals.
7307
cd81dba38a49 Update copyright.
Karl Heuer <kwzh@gnu.org>
parents: 6819
diff changeset
2 Copyright (C) 1993, 1994 Free Software Foundation, Inc.
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
2095
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
20 #ifdef HAVE_TERMIOS
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
21 #define HAVE_TCATTR
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
22 #endif
5026
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
23
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
24 /* If we defined these before and we are about to redefine them,
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
25 prevent alarming warnings. */
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
26 #ifdef BSD_TERMIOS
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
27 #undef NL0
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
28 #undef NL1
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
29 #undef CR0
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
30 #undef CR1
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
31 #undef CR2
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
32 #undef CR3
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
33 #undef TAB0
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
34 #undef TAB1
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
35 #undef TAB2
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
36 #undef XTABS
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
37 #undef BS0
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
38 #undef BS1
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
39 #undef FF0
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
40 #undef FF1
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
41 #undef ECHO
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
42 #undef NOFLSH
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
43 #undef TOSTOP
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
44 #undef FLUSHO
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
45 #undef PENDIN
6a3e9555cee3 [BSD_TERMIOS]: Under NL0, NL1..., ECHO, NOFLSH, TOSTOP,
Richard M. Stallman <rms@gnu.org>
parents: 4959
diff changeset
46 #endif
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 /* Include the proper files. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 #ifdef HAVE_TERMIO
2912
32106dbf6d01 Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2873
diff changeset
50 #ifdef __DGUX
32106dbf6d01 Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2873
diff changeset
51 #include <sys/ioctl.h>
32106dbf6d01 Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2873
diff changeset
52 #endif
3557
009b22e07a63 Add NO_TERMIO conditional.
Richard M. Stallman <rms@gnu.org>
parents: 3319
diff changeset
53 #ifndef NO_TERMIO
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 #include <termio.h>
3557
009b22e07a63 Add NO_TERMIO conditional.
Richard M. Stallman <rms@gnu.org>
parents: 3319
diff changeset
55 #endif /* not NO_TERMIO */
6819
0d592cff389f Check for INCLUDED_FCNTL already defined.
Richard M. Stallman <rms@gnu.org>
parents: 6599
diff changeset
56 #ifndef INCLUDED_FCNTL
6599
43fffc5a7dd8 (INCLUDED_FCNTL): Define, if include fcntl.h.
Richard M. Stallman <rms@gnu.org>
parents: 5968
diff changeset
57 #define INCLUDED_FCNTL
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 #include <fcntl.h>
6819
0d592cff389f Check for INCLUDED_FCNTL already defined.
Richard M. Stallman <rms@gnu.org>
parents: 6599
diff changeset
59 #endif
0d592cff389f Check for INCLUDED_FCNTL already defined.
Richard M. Stallman <rms@gnu.org>
parents: 6599
diff changeset
60 #else /* not HAVE_TERMIO */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 #ifdef HAVE_TERMIOS
3319
e177111a0442 [HAVE_TERMIOS _AIX _I386]: Include termios before termio.
Richard M. Stallman <rms@gnu.org>
parents: 3306
diff changeset
62 #if defined(_AIX) && defined(_I386)
e177111a0442 [HAVE_TERMIOS _AIX _I386]: Include termios before termio.
Richard M. Stallman <rms@gnu.org>
parents: 3306
diff changeset
63 #include <termios.h> /* termios.h needs to be before termio.h */
e177111a0442 [HAVE_TERMIOS _AIX _I386]: Include termios before termio.
Richard M. Stallman <rms@gnu.org>
parents: 3306
diff changeset
64 #include <termio.h>
6819
0d592cff389f Check for INCLUDED_FCNTL already defined.
Richard M. Stallman <rms@gnu.org>
parents: 6599
diff changeset
65 #else /* not HAVE_TERMIOS */
4539
3541cdf85881 Handle NO_TERMIO in principal HAVE_TERMIOS case.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
66 #ifndef NO_TERMIO
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 #include <termio.h>
4539
3541cdf85881 Handle NO_TERMIO in principal HAVE_TERMIOS case.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
68 #endif
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 #include <termios.h>
3319
e177111a0442 [HAVE_TERMIOS _AIX _I386]: Include termios before termio.
Richard M. Stallman <rms@gnu.org>
parents: 3306
diff changeset
70 #endif /* _AIX && _I386 */
6599
43fffc5a7dd8 (INCLUDED_FCNTL): Define, if include fcntl.h.
Richard M. Stallman <rms@gnu.org>
parents: 5968
diff changeset
71 #define INCLUDED_FCNTL
1929
8ca19160362b * systty.h [HAVE_TERMIOS]: Include fcntl.h.
Jim Blandy <jimb@redhat.com>
parents: 1597
diff changeset
72 #include <fcntl.h>
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 #else /* neither HAVE_TERMIO nor HAVE_TERMIOS */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 #ifndef VMS
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
75 #ifndef DOS_NT
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 #include <sgtty.h>
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
77 #endif /* not DOS_NT */
1597
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
78 #else /* VMS */
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
79 #include <descrip.h>
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
80 static struct iosb
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
81 {
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
82 short status;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
83 short offset;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
84 short termlen;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
85 short term;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
86 } input_iosb;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
87
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
88 extern int waiting_for_ast;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
89 extern int stop_input;
2264
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2095
diff changeset
90 extern int input_ef;
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2095
diff changeset
91 extern int timer_ef;
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2095
diff changeset
92 extern int process_ef;
1597
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
93 extern int input_eflist;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
94 extern int timer_eflist;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
95
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
96 static $DESCRIPTOR (input_dsc, "TT");
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
97 static int terminator_mask[2] = { 0, 0 };
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
98
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
99 static struct sensemode {
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
100 short status;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
101 unsigned char xmit_baud;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
102 unsigned char rcv_baud;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
103 unsigned char crfill;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
104 unsigned char lffill;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
105 unsigned char parity;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
106 unsigned char unused;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
107 char class;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
108 char type;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
109 short scr_wid;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
110 unsigned long tt_char : 24, scr_len : 8;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
111 unsigned long tt2_char;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
112 } sensemode_iosb;
60566fdb3a25 * systty.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1101
diff changeset
113 #endif /* VMS */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 #endif /* not HAVE_TERMIOS */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 #endif /* not HAVE_TERMIO */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116
7460
dc5c72c57c70 [__GNU_LIBRARY__]: Include <termios.h>.
Roland McGrath <roland@gnu.org>
parents: 7307
diff changeset
117 #ifdef __GNU_LIBRARY__
dc5c72c57c70 [__GNU_LIBRARY__]: Include <termios.h>.
Roland McGrath <roland@gnu.org>
parents: 7307
diff changeset
118 #include <termios.h>
dc5c72c57c70 [__GNU_LIBRARY__]: Include <termios.h>.
Roland McGrath <roland@gnu.org>
parents: 7307
diff changeset
119 #endif
dc5c72c57c70 [__GNU_LIBRARY__]: Include <termios.h>.
Roland McGrath <roland@gnu.org>
parents: 7307
diff changeset
120
10137
b841b238f556 Change AIX conditional around HFNKEYS to AIXHFT.
Richard M. Stallman <rms@gnu.org>
parents: 10076
diff changeset
121 #ifdef AIXHFT
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
122 /* Get files for keyboard remapping */
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
123 #define HFNKEYS 2
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
124 #include <sys/hft.h>
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
125 #include <sys/devinfo.h>
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
126 #endif
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
127
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
128 /* Get rid of LLITOUT in 4.1, since it is said to stimulate kernel bugs. */
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
129 #ifdef BSD4_1
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
130 #undef LLITOUT
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
131 #define LLITOUT 0
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
132 #endif /* 4.1 */
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
133
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
134 #ifdef NEED_BSDTTY
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
135 #include <sys/bsdtty.h>
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
136 #endif
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
137
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
138 #if defined (HPUX) && defined (HAVE_PTYS)
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
139 #include <sys/ptyio.h>
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
140 #endif
10076
a7308fb078c9 Have just one conditional to include unistd.h.
Richard M. Stallman <rms@gnu.org>
parents: 9795
diff changeset
141
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
142 #ifdef AIX
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
143 #include <sys/pty.h>
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
144 #endif /* AIX */
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
145
10076
a7308fb078c9 Have just one conditional to include unistd.h.
Richard M. Stallman <rms@gnu.org>
parents: 9795
diff changeset
146 #if (defined (POSIX) || defined (NEED_UNISTD_H)) && defined (HAVE_UNISTD_H)
3306
6dfbd809ae8c [IRIX4]: Include unistd.h.
Richard M. Stallman <rms@gnu.org>
parents: 3269
diff changeset
147 #include <unistd.h>
6dfbd809ae8c [IRIX4]: Include unistd.h.
Richard M. Stallman <rms@gnu.org>
parents: 3269
diff changeset
148 #endif
6dfbd809ae8c [IRIX4]: Include unistd.h.
Richard M. Stallman <rms@gnu.org>
parents: 3269
diff changeset
149
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
150 #ifdef SYSV_PTYS
2943
be86b41a0661 * systty.h [SYSV_PTYS]: #include <sys/types.h>. Francesco
Jim Blandy <jimb@redhat.com>
parents: 2917
diff changeset
151 #include <sys/types.h>
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
152 #include <sys/tty.h>
648
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
153 #ifdef titan
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
154 #include <sys/ttyhw.h>
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
155 #include <sys/stream.h>
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
156 #endif
2414
9994dd2e75c9 [NO_PTY_H]: Don't include pty.h.
Richard M. Stallman <rms@gnu.org>
parents: 2264
diff changeset
157 #ifndef NO_PTY_H
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
158 #include <sys/pty.h>
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
159 #endif
2414
9994dd2e75c9 [NO_PTY_H]: Don't include pty.h.
Richard M. Stallman <rms@gnu.org>
parents: 2264
diff changeset
160 #endif
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
161
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
162 /* saka@pfu.fujitsu.co.JP writes:
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
163 FASYNC defined in this file. But, FASYNC don't working.
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
164 so no problem, because unrequest_sigio only need. */
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
165 #if defined (pfa)
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
166 #include <sys/file.h>
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
167 #endif
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 578
diff changeset
168
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
170 /* Special cases - inhibiting the use of certain features. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
172 #ifdef APOLLO
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
173 #undef TIOCSTART
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
174 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175
648
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
176 #ifdef XENIX
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
177 #undef TIOCGETC /* Avoid confusing some conditionals that test this. */
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
178 #endif
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
179
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180 #ifdef BROKEN_TIOCGETC
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 #undef TIOCGETC /* Avoid confusing some conditionals that test this. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 /* UNIPLUS systems may have FIONREAD. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 #ifdef UNIPLUS
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 #include <sys.ioctl.h>
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 /* Allow m- file to inhibit use of FIONREAD. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 #ifdef BROKEN_FIONREAD
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 #undef FIONREAD
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
192 #undef ASYNC
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
194
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 3557
diff changeset
195 /* Interrupt input is not used if there is no FIONREAD. */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
196 #ifndef FIONREAD
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
197 #undef SIGIO
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
198 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
199
3157
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
200 /* On TERMIOS systems, the tcmumbleattr calls take care of these
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
201 parameters, and it's a bad idea to use them (on AIX, it makes the
3171
f26d9c469926 * systty.h: Always terminate comments, to avoid confusion.
Jim Blandy <jimb@redhat.com>
parents: 3157
diff changeset
202 tty hang for a long time). */
3157
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
203 #if defined (TIOCGLTC) && !defined (HAVE_TERMIOS)
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
204 #define HAVE_LTCHARS
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
205 #endif
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
206
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
207 #if defined (TIOCGETC) && !defined (HAVE_TERMIOS)
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
208 #define HAVE_TCHARS
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
209 #endif
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
210
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211
1101
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
212 /* Try to establish the correct character to disable terminal functions
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
213 in a system-independent manner. Note that USG (at least) define
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
214 _POSIX_VDISABLE as 0! */
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
215
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
216 #ifdef _POSIX_VDISABLE
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
217 #define CDISABLE _POSIX_VDISABLE
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
218 #else /* not _POSIX_VDISABLE */
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
219 #ifdef CDEL
3269
3e44fc755c00 * systty.h (CDISABLE): #undef it before re-#defining it.
Jim Blandy <jimb@redhat.com>
parents: 3171
diff changeset
220 #undef CDISABLE
1101
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
221 #define CDISABLE CDEL
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
222 #else /* not CDEL */
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
223 #define CDISABLE 255
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
224 #endif /* not CDEL */
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
225 #endif /* not _POSIX_VDISABLE */
3e06965680fd entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1039
diff changeset
226
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 /* Get the number of characters queued for output. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 /* EMACS_OUTQSIZE(FD, int *SIZE) stores the number of characters
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230 queued for output to the terminal FD in *SIZE, if FD is a tty.
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
231 Returns -1 if there was an error (i.e. FD is not a tty), 0
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
232 otherwise. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233 #ifdef TIOCOUTQ
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
234 #define EMACS_OUTQSIZE(fd, size) (ioctl ((fd), TIOCOUTQ, (size)))
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
235 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
237 #ifdef HAVE_TERMIO
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
238 #ifdef TCOUTQ
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
239 #undef EMACS_OUTQSIZE
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
240 #define EMACS_OUTQSIZE(fd, size) (ioctl ((fd), TCOUTQ, (size)))
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
241 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
242 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
243
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
244
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
245 /* Manipulate a terminal's current process group. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
246
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
247 /* EMACS_HAVE_TTY_PGRP is true if we can get and set the tty's current
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
248 controlling process group.
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
249
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
250 EMACS_GET_TTY_PGRP(int FD, int *PGID) sets *PGID the terminal FD's
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
251 current process group. Return -1 if there is an error.
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
252
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
253 EMACS_SET_TTY_PGRP(int FD, int *PGID) sets the terminal FD's
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
254 current process group to *PGID. Return -1 if there is an error. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
255
648
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
256 #ifdef HPUX
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
257 /* HPUX tty process group stuff doesn't work, says the anonymous voice
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
258 from the past. */
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
259 #else
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
260 #ifdef TIOCGPGRP
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
261 #define EMACS_HAVE_TTY_PGRP
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
262 #else
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
263 #ifdef HAVE_TERMIOS
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
264 #define EMACS_HAVE_TTY_PGRP
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
265 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266 #endif
648
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
267 #endif
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
268
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
269 #ifdef EMACS_HAVE_TTY_PGRP
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
270
5132
de089ed6966f (EMACS_GET_TTY_PGRP, EMACS_SET_TTY_PGRP):
Richard M. Stallman <rms@gnu.org>
parents: 5026
diff changeset
271 #if defined (HAVE_TERMIOS) && ! defined (BSD_TERMIOS)
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
272
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
273 #define EMACS_GET_TTY_PGRP(fd, pgid) (*(pgid) = tcgetpgrp ((fd)))
2917
725698689fbd Some more changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2912
diff changeset
274 #define EMACS_SET_TTY_PGRP(fd, pgid) (tcsetpgrp ((fd), *(pgid)))
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
275
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
276 #else
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
277 #ifdef TIOCSPGRP
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
279 #define EMACS_GET_TTY_PGRP(fd, pgid) (ioctl ((fd), TIOCGPGRP, (pgid)))
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
280 #define EMACS_SET_TTY_PGRP(fd, pgid) (ioctl ((fd), TIOCSPGRP, (pgid)))
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
281
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
282 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
284
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285 #else
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287 /* Just ignore this for now and hope for the best */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
288 #define EMACS_GET_TTY_PGRP(fd, pgid) 0
999
d8d503897aa5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 648
diff changeset
289 #define EMACS_SET_TTY_PGRP(fd, pgif) 0
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
290
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292
4959
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
293 /* EMACS_GETPGRP (arg) returns the process group of the terminal. */
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
294
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
295 #if defined (USG) && !defined (GETPGRP_NEEDS_ARG)
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
296 # if !defined (GETPGRP_NO_ARG)
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
297 # define GETPGRP_NO_ARG
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
298 # endif
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
299 #endif
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
300
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
301 #if defined (GETPGRP_NO_ARG)
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
302 # define EMACS_GETPGRP(x) getpgrp()
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
303 #else
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
304 # define EMACS_GETPGRP(x) getpgrp(x)
afa76fe24878 (EMACS_GETPGRP): New macro hides argument passing to
Richard M. Stallman <rms@gnu.org>
parents: 4822
diff changeset
305 #endif /* !GETPGRP_NO_ARG */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
307 /* Manipulate a TTY's input/output processing parameters. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
308
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
309 /* struct emacs_tty is a structure used to hold the current tty
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
310 parameters. If the terminal has several structures describing its
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
311 state, for example a struct tchars, a struct sgttyb, a struct
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
312 tchars, a struct ltchars, and a struct pagechars, struct
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 emacs_tty should contain an element for each parameter struct
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314 that Emacs may change.
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315
2873
f1cd54cf1b67 * sysdep.c (reset_sys_modes): Test the return value of
Jim Blandy <jimb@redhat.com>
parents: 2658
diff changeset
316 EMACS_GET_TTY (int FD, struct emacs_tty *P) stores the parameters
f1cd54cf1b67 * sysdep.c (reset_sys_modes): Test the return value of
Jim Blandy <jimb@redhat.com>
parents: 2658
diff changeset
317 of the tty on FD in *P. Return zero if all's well, or -1 if we ran
f1cd54cf1b67 * sysdep.c (reset_sys_modes): Test the return value of
Jim Blandy <jimb@redhat.com>
parents: 2658
diff changeset
318 into an error we couldn't deal with.
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
320 EMACS_SET_TTY (int FD, struct emacs_tty *P, int waitp)
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
321 sets the parameters of the tty on FD according to the contents of
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
322 *P. If waitp is non-zero, we wait for all queued output to be
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
323 written before making the change; otherwise, we forget any queued
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
324 input and make the change immediately.
2873
f1cd54cf1b67 * sysdep.c (reset_sys_modes): Test the return value of
Jim Blandy <jimb@redhat.com>
parents: 2658
diff changeset
325 Return 0 if all went well, and -1 if anything failed.
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
326
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 EMACS_TTY_TABS_OK (struct emacs_tty *P) is false iff the kernel
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328 expands tabs to spaces upon output; in that case, there is no
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 advantage to using tabs over spaces. */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
331
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
332 /* For each tty parameter structure that Emacs might want to save and restore,
2873
f1cd54cf1b67 * sysdep.c (reset_sys_modes): Test the return value of
Jim Blandy <jimb@redhat.com>
parents: 2658
diff changeset
333 - include an element for it in this structure, and
f1cd54cf1b67 * sysdep.c (reset_sys_modes): Test the return value of
Jim Blandy <jimb@redhat.com>
parents: 2658
diff changeset
334 - extend the emacs_{get,set}_tty functions in sysdep.c to deal with the
f1cd54cf1b67 * sysdep.c (reset_sys_modes): Test the return value of
Jim Blandy <jimb@redhat.com>
parents: 2658
diff changeset
335 new members. */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
336
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
337 struct emacs_tty {
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 /* There is always one of the following elements, so there is no need
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340 for dummy get and set definitions. */
2095
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
341 #ifdef HAVE_TCATTR
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
342 struct termios main;
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
343 #else
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
344 #ifdef HAVE_TERMIO
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
345 struct termio main;
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
346 #else
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
347 #ifdef VMS
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
348 struct sensemode main;
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
349 #else
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
350 #ifdef DOS_NT
5499
da0a6ed995bd [MSDOS]: don't #include <sgtty.h>. We haven't got it.
Richard M. Stallman <rms@gnu.org>
parents: 5132
diff changeset
351 int main;
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
352 #else /* not DOS_NT */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
353 struct sgttyb main;
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
354 #endif /* not DOS_NT */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
355 #endif
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
356 #endif
5499
da0a6ed995bd [MSDOS]: don't #include <sgtty.h>. We haven't got it.
Richard M. Stallman <rms@gnu.org>
parents: 5132
diff changeset
357 #endif
3157
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
358
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
359 /* If we have TERMIOS, we don't need to do this - they're taken care of
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
360 by the tc*attr calls. */
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
361 #ifndef HAVE_TERMIOS
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
362 #ifdef HAVE_LTCHARS
2095
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
363 struct ltchars ltchars;
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
364 #endif
3157
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
365
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
366 #ifdef HAVE_TCHARS
2095
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
367 struct tchars tchars;
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
368 int lmode;
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
369 #endif
3157
84825e357019 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
370 #endif
2095
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
371 };
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
372
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
373 /* Define EMACS_GET_TTY and EMACS_SET_TTY,
2658
8be0a57686cb * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
Jim Blandy <jimb@redhat.com>
parents: 2414
diff changeset
374 the macros for reading and setting parts of `struct emacs_tty'.
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
375
2658
8be0a57686cb * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
Jim Blandy <jimb@redhat.com>
parents: 2414
diff changeset
376 These got pretty unmanageable (huge macros are hard to debug), and
8be0a57686cb * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
Jim Blandy <jimb@redhat.com>
parents: 2414
diff changeset
377 finally needed some code which couldn't be done as part of an
8be0a57686cb * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
Jim Blandy <jimb@redhat.com>
parents: 2414
diff changeset
378 expression, so we moved them out to their own functions in sysdep.c. */
8be0a57686cb * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
Jim Blandy <jimb@redhat.com>
parents: 2414
diff changeset
379 #define EMACS_GET_TTY(fd, p) (emacs_get_tty ((fd), (p)))
8be0a57686cb * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
Jim Blandy <jimb@redhat.com>
parents: 2414
diff changeset
380 #define EMACS_SET_TTY(fd, p, waitp) (emacs_set_tty ((fd), (p), (waitp)))
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
381
2095
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
382
139f87bcbaf1 Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
Richard M. Stallman <rms@gnu.org>
parents: 1929
diff changeset
383 /* Define EMACS_TTY_TABS_OK. */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
384
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
385 #ifdef HAVE_TERMIOS
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386
5968
2c31582df670 (EMACS_TTY_TABS_OK): Alternate definition if no TABDLY.
Richard M. Stallman <rms@gnu.org>
parents: 5499
diff changeset
387 #ifdef TABDLY
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
388 #define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3)
5968
2c31582df670 (EMACS_TTY_TABS_OK): Alternate definition if no TABDLY.
Richard M. Stallman <rms@gnu.org>
parents: 5499
diff changeset
389 #else
2c31582df670 (EMACS_TTY_TABS_OK): Alternate definition if no TABDLY.
Richard M. Stallman <rms@gnu.org>
parents: 5499
diff changeset
390 #define EMACS_TTY_TABS_OK(p) 1
2c31582df670 (EMACS_TTY_TABS_OK): Alternate definition if no TABDLY.
Richard M. Stallman <rms@gnu.org>
parents: 5499
diff changeset
391 #endif
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
392
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
393 #else /* not def HAVE_TERMIOS */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394 #ifdef HAVE_TERMIO
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
395
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
396 #define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3)
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
397
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
398 #else /* neither HAVE_TERMIO nor HAVE_TERMIOS */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 #ifdef VMS
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
400
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
401 #define EMACS_TTY_TABS_OK(p) (((p)->main.tt_char & TT$M_MECHTAB) != 0)
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
402
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 #else
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
404
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
405 #ifdef DOS_NT
5499
da0a6ed995bd [MSDOS]: don't #include <sgtty.h>. We haven't got it.
Richard M. Stallman <rms@gnu.org>
parents: 5132
diff changeset
406 #define EMACS_TTY_TABS_OK(p) 0
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
407 #else /* not DOS_NT */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
408 #define EMACS_TTY_TABS_OK(p) (((p)->main.sg_flags & XTABS) != XTABS)
9795
7993d4ffd674 Test DOS_NT, not MSDOS.
Richard M. Stallman <rms@gnu.org>
parents: 7460
diff changeset
409 #endif /* not DOS_NT */
578
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
411 #endif /* not def VMS */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
412 #endif /* not def HAVE_TERMIO */
a4591b4d5435 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
413 #endif /* not def HAVE_TERMIOS */