annotate src/sysdep.h @ 510:5bdbc721d46a

[xemacs-hg @ 2001-05-06 08:33:35 by ben] implement printing the selection when it's selected. force redisplay when set-charset-ccl-program called. if bytecomp or byte-optimize need recompiling, then load the .el version of them first, recompile them, and reload the .elc versions to recompile everything else (so we won't be waiting until the cows come home).
author ben
date Sun, 06 May 2001 08:33:41 +0000
parents abe6d1db359e
children 5fd7ba8b56e7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* System-dependent prototypes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 /* Synched up with: FSF 19.30. Split out of sysdep.c/emacs.c. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
23 #ifndef INCLUDED_sysdep_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
24 #define INCLUDED_sysdep_h_
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 #include <setjmp.h>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
28 #ifndef WIN32_NATIVE
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 extern char **environ;
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
30 #endif
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
32 #ifdef PDUMP
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
33 int pdump_read_file (char **pdump_start_pos, size_t *pdump_length);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
34 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
35
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 int eight_bit_tty (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 void stuff_char (struct console *con, int c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 void init_baud_rate (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 void set_exclusive_use (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 void set_descriptor_non_blocking (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 void wait_without_blocking (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 int get_pty_max_bytes (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 Bufbyte get_eof_char (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 /* Wait for subprocess with process id `pid' to terminate and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 make sure it will get eliminated (not remain forever as a zombie) */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
53 #ifndef WIN32_NATIVE
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 void wait_for_termination (int pid);
432
3a7e78e1142d Import from CVS: tag r21-2-24
cvs
parents: 430
diff changeset
55 #endif
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 /* flush any pending output
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 * (may flush input as well; it does not matter the way we use it)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 void flush_pending_output (int channel);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 void child_setup_tty (int out);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 /* Suspend the Emacs process; give terminal to its superior. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 void sys_suspend (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 /* Suspend a process if possible; give terminal to its superior. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 void sys_suspend_process (int process);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 void request_sigio (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 void unrequest_sigio (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 void stop_interrupts (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 void start_interrupts (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 void slow_down_interrupts (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 void speed_up_interrupts (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 void init_poll_for_quit (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 void reset_poll_for_quit (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 /* Used so that signals can break out of system calls that aren't
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 naturally interruptible. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 extern JMP_BUF break_system_call_jump;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 extern volatile int can_break_system_calls;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
85 ssize_t sys_write_1 (int fildes, const void *buf, size_t nbyte,
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
86 int allow_quit);
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
87 ssize_t sys_read_1 (int fildes, void *buf, size_t nbyte,
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
88 int allow_quit);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 /* Call these functions if you want to change some terminal parameter --
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 reset the console, change the parameter, and init it again. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 void init_one_console (struct console *c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 void reset_one_console (struct console *c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 void init_one_device (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 void reset_one_device (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 /* Prepare all terminals for exiting Emacs; move the cursor to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 bottom of the frame, turn off special modes, etc. Called at exit.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 This calls reset_one_console() on all consoles and does some other
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 stuff (e.g. fix the foreground pgroup). */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 void reset_all_consoles (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 /* Call these functions if you are going to temporarily exit back to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 the shell (e.g. when suspending). This calls reset_one_console()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 on the initial console and does some other stuff (e.g. fix the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 foreground pgroup). */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 void reset_initial_console (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 void reinit_initial_console (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 /* We muck around with our process group. This function needs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 to be called at startup. The rest of the mucking is done as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 part of the functions reset_all_consoles(), reset_initial_console(),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115 and reinit_initial_console(). */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 void init_process_group (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 void munge_tty_process_group (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 void unmunge_tty_process_group (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 void disconnect_controlling_terminal (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 /* Return nonzero if safe to use tabs in output.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 At the time this is called, init_sys_modes has not been done yet. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 int tabs_safe_p (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 /* Get terminal size from system.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 If zero or a negative number is stored, the value is not valid. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 void get_tty_device_size (struct device *d, int *widthp, int *heightp);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 /* Set the logical window size associated with descriptor FD */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 int set_window_size (int fd, int height, int width);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 /* Set up the proper status flags for use of a pty. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 void setup_pty (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 /* Return the address of the start of the text segment prior to unexec. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137 char *start_of_text (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138 /* Return the address of the start of the data segment prior to unexec. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 void *start_of_data (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140 /* Return the address of the end of the text segment prior to unexec. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 char *end_of_text (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 /* Return the address of the end of the data segment prior to unexec. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 char *end_of_data (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 /* Get_system_name returns as its value a string for system-name to return. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 void init_system_name (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 #ifndef HAVE_GETCWD
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
149 char *getcwd (char *pathname, size_t size);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 #ifndef HAVE_RENAME
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
153 int rename (const char *from, const char *to);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 #ifndef HAVE_DUP2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 int dup2 (int oldd, int newd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 #ifndef HAVE_STRERROR
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 /* X11R6 defines strerror as a macro */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 # ifdef strerror
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 # undef strerror
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 # endif
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
165 const char *strerror (int);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
168 int interruptible_open (const char *path, int oflag, int mode);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 #ifndef HAVE_H_ERRNO
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 extern int h_errno;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 #ifdef HAVE_REALPATH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175 #define xrealpath realpath
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 #else
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
177 char *xrealpath(const char *path, char resolved_path []);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
180 #endif /* INCLUDED_sysdep_h_ */