Implemented suspending of emacsclient frames.
authorKaroly Lorentey <lorentey@elte.hu>
Sat, 28 Feb 2004 01:23:39 +0000 (01:23 +0000)
committerKaroly Lorentey <lorentey@elte.hu>
Sat, 28 Feb 2004 01:23:39 +0000 (01:23 +0000)
commit0b0d3e0bcefdde298893aaad2e816e1503cef222
tree439342044857514ad784de0470f5546eb9c3ef9a
parent2fc0cf2aefa777e5fe48596e2d43774b28051931
Implemented suspending of emacsclient frames.

lib-src/emacsclient.c (quote_file_name): Renamed to quote_argument.
(unquote_argument, handle_sigcont, handle_sigtstp): New functions.
(out, in): New global variables for communicating with the Emacs process.
(init_signals): Set up handlers for SIGCONT, SIGTSTP and SIGTTOU.
(main): Changed out and in to global variables.  Prepend `-eval' or
'-file' to each argument.  Use fsync to force sending the strings to Emacs.
Removed obsolete -bad-version code.  Support the -suspend command.
Cleaned up newline handling.

lisp/frame.el (suspend-frame): New function.
Substitute key definition of suspend-emacs with suspend-frame.

lisp/server.el (server-log): Cosmetic change in log format.
(server-handle-delete-tty, server-handle-delete-frame): Added logging.
(server-handle-suspend-tty, server-quote-arg): New functions.
(server-start): Install server-handle-suspend-tty.
(server-process-filter): Reorganized source code for clarity.
Implemented -resume, -suspend and -ignore commands.

lisp/term/x-win.el (x-initialize-window-system): Don't change the
binding of C-z.

src/cm.c: Replaced TTY_INPUT, TTY_OUTPUT, TTY_TERMSCRIPT calls with
their macro expansion.
src/dispnew.c: Ditto.
src/frame.c: Ditto.
src/keyboard.c: Ditto.
src/sysdep.c: Ditto.

src/keyboard.c (tty_read_avail_input): Don't read if the terminal is
suspended.
src/sysdep.c (discard_tty_input, init_sys_modes, reset_sys_modes): Ditto.
src/term.c (tty_set_terminal_modes, tty_reset_terminal_modes): Ditto.

src/term.c (Vsuspend_tty_functions, Vresume_tty_functions): New hooks.
(syms_of_term): Defvar them.
(term_init): Don't allow opening a new frame on a suspended tty device.
(Fsuspend_tty, Fresume_tty): New functions.
(syms_of_term): Defsubr them.

src/termchar.c (struct tty_display_info): Update documentation of
input and output.
(TTY_INPUT, TTY_OUTPUT, TTY_TERMSCRIPT): Removed.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-105
13 files changed:
README.multi-tty
lib-src/emacsclient.c
lisp/frame.el
lisp/server.el
lisp/term/x-win.el
src/cm.c
src/dispnew.c
src/frame.c
src/keyboard.c
src/sysdep.c
src/term.c
src/termchar.h
src/termhooks.h