summaryrefslogtreecommitdiff
path: root/README.multi-tty
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2003-12-30 19:27:57 +0000
committerKaroly Lorentey <lorentey@elte.hu>2003-12-30 19:27:57 +0000
commit16c290d8c16fb0fdb574c837c6b1badbc655efe2 (patch)
tree26e7915477ebe5b8c3847e70b9230a6efa134e6c /README.multi-tty
parent9d9f18127ffc1bc26358a5d48917ef4e4bafbddc (diff)
downloademacs-16c290d8c16fb0fdb574c837c6b1badbc655efe2.tar.gz
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:
then start up the emacs server (src/emacs, M-x server-start), and then
(from a shell prompt on another terminal) start emacsclient with
- lib-src/emacsclient -h /optional/file/names...
+ lib-src/emacsclient -f /optional/file/names...
You'll hopefully have two fully working, independent frames on
separate terminals. (This seems to be very useful, emacsclient starts
@@ -213,13 +213,7 @@ DIARY OF CHANGES
(Seems to be working OK.)
-THINGS TO DO
-------------
-
-** Understand Emacs's low-level input system. It seems
- complicated. :-)
-
-** Fix mysterious memory corruption error with tty deletion. To
+-- Fix mysterious memory corruption error with tty deletion. To
trigger it, try the following shell command:
while true; do TERM=no-such-terminal-definition emacsclient -h; done
@@ -230,17 +224,23 @@ THINGS TO DO
Why were these vars collected into a struct before multi-tty
support?)
- The bug does not seem to happen if the error occurs before terminal
- initialization or if I comment out all xfree()s in delete_frame.
- Update: yes it does, although it is much rarer. Or maybe it's
- another bug.
+ (Done. Whew. It turned out that the problem had nothing to do
+ with hypothetical external references to Wcm, or any other
+ tty_output component; it was simply that delete_tty closed the
+ filehandles of secondary ttys twice, resulting in fclose doubly
+ free()ing memory. Utterly trivial matter. I love the C's memory
+ management, it puts hair on your chest.)
+
+THINGS TO DO
+------------
- Idea: Some of these errors may have been caused by having more
- file handles than FD_SETSIZE.
+** Understand Emacs's low-level input system (it seems complicated) :-)
+ and maybe rewrite multi-tty input in terms of MULTIKBOARD.
** Find out why does Emacs abort when it wants to close its
controlling tty. Hint: chan_process[] array. Hey, maybe
- noninterrupt-IO would work, too?
+ noninterrupt-IO would work, too? Update: no, there is no process
+ for stdin/out.
** Support raw secondary terminals. (Note that SIGIO works only on
the controlling terminal.) Hint: extend read_input_waiting() for
@@ -252,9 +252,21 @@ THINGS TO DO
** Issue with SIGIO: it needs to be disabled during redisplay. See if
fcntl() kernel behaviour could be emulated by emacsclient.
+** Get rid of the accessor macros in termchar.h, or define macros for
+ all members.
+
** Make parts of struct tty_output accessible from Lisp. The device
name and the type is sufficient.
+** server.el: There are issues with saving files in buffers of closed
+ clients. Try editing a file with emacsclient -f, and (without
+ saving it) do a delete-frame. The frame is closed without
+ question, and a surprising confirmation prompt appears in another
+ frame.
+
+** emacsclient.el, server.el: Handle eval or file open errors when
+ doing -f.
+
** Export delete_tty to the Lisp environment, for emacsclient.
** Make sure C-g goes to the right frame. This is hard, as SIGINT
@@ -283,6 +295,6 @@ THINGS TO DO
** Fix DOS support (I can't do this myself).
-
+** Do a grep on XXX and ?? for more issues.
;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d