aboutsummaryrefslogtreecommitdiffstats
path: root/README.multi-tty
diff options
context:
space:
mode:
authorKaroly Lorentey2003-12-30 19:27:57 +0000
committerKaroly Lorentey2003-12-30 19:27:57 +0000
commit16c290d8c16fb0fdb574c837c6b1badbc655efe2 (patch)
tree26e7915477ebe5b8c3847e70b9230a6efa134e6c /README.multi-tty
parent9d9f18127ffc1bc26358a5d48917ef4e4bafbddc (diff)
downloademacs-16c290d8c16fb0fdb574c837c6b1badbc655efe2.tar.gz
emacs-16c290d8c16fb0fdb574c837c6b1badbc655efe2.zip
Major bugfixes and slight enhancements.
src/dispextern.h (get_tty_size, tabs_safe_p, init_baud_rate): Update prototypes. src/dispnew.c (window_change_signal): Update call to get_tty_size. src/frame.c (Fmake_terminal_frame): Ditto. src/keyboard.c (Fsuspend_emacs): Ditto. src/sysdep.c: Eliminate tty_outputs, wherever possible. (The exceptions are init_sys_modes and reset_sys_modes, which need access to tty-local parameters). (init_baud_rate): Change tty_output parameter to a simple file descriptor. (narrow_foreground_group, widen_foreground_group): Ditto. (tabs_safe_p, get_tty_size): Ditto. (init_sys_modes): Update narrow_foreground_group invocation. (reset_sys_modes): Update widen_foreground_group invocation. (request_sigio)[!FASYNC && STRIDE]: Fix function signature. src/term.c (delete_tty): Only close output file handle if it is different from input. Re-enable freeing of Wcm. (term_init): Update get_tty_size, tabs_safe_p and init_baud_rate invocations. lib-src/emacsclient.c (here): Renamed to frame. (longopts): Change --here to --frame. The -h short option may be confused with --help. (decode_options, print_help_and_exit): Update to reflect above changes. (main): Ditto. lisp/server.el (server-start): Fix frame-live-p call syntax. (server-process-filter): Handle 'emacsclient -f' without file arguments. Don't return any values to emacsclient when 'emacsclient -f -e'. (server-switch-buffer): Prevent infinite recursion when there are no files to edit. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-27
Diffstat (limited to 'README.multi-tty')
-rw-r--r--README.multi-tty44
1 files changed, 28 insertions, 16 deletions
diff --git a/README.multi-tty b/README.multi-tty
index 862a287fb9e..2ee943b6ed5 100644
--- a/README.multi-tty
+++ b/README.multi-tty
@@ -39,7 +39,7 @@ commands:
39then start up the emacs server (src/emacs, M-x server-start), and then 39then start up the emacs server (src/emacs, M-x server-start), and then
40(from a shell prompt on another terminal) start emacsclient with 40(from a shell prompt on another terminal) start emacsclient with
41 41
42 lib-src/emacsclient -h /optional/file/names... 42 lib-src/emacsclient -f /optional/file/names...
43 43
44You'll hopefully have two fully working, independent frames on 44You'll hopefully have two fully working, independent frames on
45separate terminals. (This seems to be very useful, emacsclient starts 45separate terminals. (This seems to be very useful, emacsclient starts
@@ -213,13 +213,7 @@ DIARY OF CHANGES
213 213
214 (Seems to be working OK.) 214 (Seems to be working OK.)
215 215
216THINGS TO DO 216-- Fix mysterious memory corruption error with tty deletion. To
217------------
218
219** Understand Emacs's low-level input system. It seems
220 complicated. :-)
221
222** Fix mysterious memory corruption error with tty deletion. To
223 trigger it, try the following shell command: 217 trigger it, try the following shell command:
224 218
225 while true; do TERM=no-such-terminal-definition emacsclient -h; done 219 while true; do TERM=no-such-terminal-definition emacsclient -h; done
@@ -230,17 +224,23 @@ THINGS TO DO
230 Why were these vars collected into a struct before multi-tty 224 Why were these vars collected into a struct before multi-tty
231 support?) 225 support?)
232 226
233 The bug does not seem to happen if the error occurs before terminal 227 (Done. Whew. It turned out that the problem had nothing to do
234 initialization or if I comment out all xfree()s in delete_frame. 228 with hypothetical external references to Wcm, or any other
235 Update: yes it does, although it is much rarer. Or maybe it's 229 tty_output component; it was simply that delete_tty closed the
236 another bug. 230 filehandles of secondary ttys twice, resulting in fclose doubly
231 free()ing memory. Utterly trivial matter. I love the C's memory
232 management, it puts hair on your chest.)
233
234THINGS TO DO
235------------
237 236
238 Idea: Some of these errors may have been caused by having more 237** Understand Emacs's low-level input system (it seems complicated) :-)
239 file handles than FD_SETSIZE. 238 and maybe rewrite multi-tty input in terms of MULTIKBOARD.
240 239
241** Find out why does Emacs abort when it wants to close its 240** Find out why does Emacs abort when it wants to close its
242 controlling tty. Hint: chan_process[] array. Hey, maybe 241 controlling tty. Hint: chan_process[] array. Hey, maybe
243 noninterrupt-IO would work, too? 242 noninterrupt-IO would work, too? Update: no, there is no process
243 for stdin/out.
244 244
245** Support raw secondary terminals. (Note that SIGIO works only on 245** Support raw secondary terminals. (Note that SIGIO works only on
246 the controlling terminal.) Hint: extend read_input_waiting() for 246 the controlling terminal.) Hint: extend read_input_waiting() for
@@ -252,9 +252,21 @@ THINGS TO DO
252** Issue with SIGIO: it needs to be disabled during redisplay. See if 252** Issue with SIGIO: it needs to be disabled during redisplay. See if
253 fcntl() kernel behaviour could be emulated by emacsclient. 253 fcntl() kernel behaviour could be emulated by emacsclient.
254 254
255** Get rid of the accessor macros in termchar.h, or define macros for
256 all members.
257
255** Make parts of struct tty_output accessible from Lisp. The device 258** Make parts of struct tty_output accessible from Lisp. The device
256 name and the type is sufficient. 259 name and the type is sufficient.
257 260
261** server.el: There are issues with saving files in buffers of closed
262 clients. Try editing a file with emacsclient -f, and (without
263 saving it) do a delete-frame. The frame is closed without
264 question, and a surprising confirmation prompt appears in another
265 frame.
266
267** emacsclient.el, server.el: Handle eval or file open errors when
268 doing -f.
269
258** Export delete_tty to the Lisp environment, for emacsclient. 270** Export delete_tty to the Lisp environment, for emacsclient.
259 271
260** Make sure C-g goes to the right frame. This is hard, as SIGINT 272** Make sure C-g goes to the right frame. This is hard, as SIGINT
@@ -283,6 +295,6 @@ THINGS TO DO
283 295
284** Fix DOS support (I can't do this myself). 296** Fix DOS support (I can't do this myself).
285 297
286 298** Do a grep on XXX and ?? for more issues.
287 299
288;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d 300;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d