* lisp/startup.el (fancy-splash-screens): Use `overriding-local-map'
instead of `overriding-terminal-local-map' for now; the latter doesn't
work right, it looses keypresses to another terminal.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-478
* lisp/startup.el (fancy-splash-screens): Use
`overriding-terminal-local-map' to set up keymap. Install a
`delete-frame-functions' hook to catch `delete-frame' events. Ignore
`select-window' events to cope better with `focus-follows-mouse'.
Don't switch back to the original buffer if the splash frame has been
killed.
(normal-splash-screen): Don't let-bind `mode-line-format'; it changes
the global binding---setq it instead.
(display-splash-screen): Don't do anything if the splash screen is
already displayed elsewhere.
(fancy-splash-exit, fancy-splash-delete-frame): New functions.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-477
* src/callproc.c (child_setup, getenv_internal, Fgetenv_internal):
Store the local environment in a frame (not terminal) parameter.
Update doc strings.
(syms_of_callproc): Update doc strings.
(Qenvironment): Moved to frame.c.
* lisp/env.el (read-envvar-name, setenv, getenv, environment): Use frame
parameters to store the local environment, not terminal parameters.
* server.el (server-process-filter): Store the local environment in a
frame (not terminal) parameter. Do not try to decode environment
strings.
* lisp/frame.el (make-frame): Set up the 'environment frame parameter,
when needed.
* src/frame.c (Qenvironment): Move here from callproc.c.
(Fdelete_frame): Don't allow other frames to refer to a deleted frame
in their 'environment parameter.
(Fframe_with_environment): New function.
(syms_of_frame): Defsubr it. Initialize and staticpro Qenvironment.
* frame.h (Qenvironment): Declare.
* lisp.h (Fframe_with_environment): EXFUN it.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-467
* lisp/frame.el (frames-on-display-list): Use terminal-id to get the
display id.
(terminal-id): Also accept X display strings and tty device names.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-436
* lisp/frame.el (terminal-parameter-p): New function.
(terminal-parameter): Use it.
* lisp/simple.el (normal-erase-is-backspace): Add 'maybe option, set it as default.
(normal-erase-is-backspace-mode): Rewrite for multiple display support.
(normal-erase-is-backspace-setup-frame): New function.
* lisp/frame.el (make-frame): Call it.
* lisp/startup.el (command-line): Call it.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-427
* src/keyboard.c (pop_kboard): Set current_kboard to the kboard of the
selected frame when the stored kboard object has been deleted before
pop_kboard.
(restore_kboard_configuration): Call pop_kboard only after setting up
single_kboard mode.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-418
* src/keyboard.c (temporarily_switch_to_single_kboard)
(record_single_kboard_state, restore_kboard_configuration): New functions.
(timer_check): Use record_single_kboard_state instead of
naive single_kboard state management.
* src/fns.c: Include termhooks.h.
(Fy_or_n_p): Use temporarily_switch_to_single_kboard to prevent crashes
caused by bogus longjmps in read_char.
* src/callint.c (Fcall_interactively): Use
temporarily_switch_to_single_kboard instead of single_kboard_state.
Make sure it is correctly unwinded.
* src/keyboard.c (recursive_edit_unwind): Remove single_kboard stuff.
(Frecursive_edit): Use temporarily_switch_to_single_kboard for
single_kboard state management.
* src/minibuf.c (read_minibuf): Use temporarily_switch_to_single_kboard
instead of simply calling single_kboard_state.
* src/keyboard.c (push_device_kboard): Remove function.
(push_kboard): New function.
(push_frame_kboard): Use it.
(pop_frame_kboard): Rename to pop_kboard.
* src/xdisp.c (display_mode_line, Fformat_mode_line): Update uses.
* src/data.c: Include termhooks.h.
(Fterminal_local_value, Fset_terminal_local_value): Update.
* src/Makefile.in (data.o, fns.o): Add termhooks.h dependency.
* src/keyboard.h (push_device_kboard, pop_frame_kboard): Remove declarations.
(push_kboard, pop_kboard, temporarily_switch_to_single_kboard)
(record_single_kboard_state): New declarations.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-414
* README: Set Emacs version to 22.0.51.
* lispref/elisp.texi (EMACSVER): Set to 22.0.51.
* man/emacs.texi (EMACSVER): Set to 22.0.51.
* lisp/version.el (emacs-version): Set to 22.0.51.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-413
* lib-src/emacsclient.c (decode_options): Change --no-wait to imply
--current-frame only on ttys and only when there are extra arguments.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-411
* lisp/xt-mouse.el (xterm-mouse-x, xterm-mouse-y): Convert to terminal parameters.
(xterm-mouse-position-function, xterm-mouse-event): Update.
(xterm-mouse-mode): Don't depend on current value of window-system.
(turn-on-xterm-mouse-tracking, turn-off-xterm-mouse-tracking): Update
for multi-tty.
(turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal)
(xterm-mouse-handle-delete-frame): New functions.
(delete-frame-functions, after-make-frame-functions)
(suspend-tty-functions, resume-tty-functions): Install extra hooks for multi-tty.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-409
* lib-src/emacsclient.c (decode_options): Make --no-wait imply
--current-frame, except when it is the only option given. Make sure no
frame is opened when --current-frame is set.
(main): Pass --current-frame to server.el.
* lisp/server.el (server-process-filter): Handle -current-frame command.
Don't create frames when it is given. Don't bind X frames to the
client when we are in -no-wait mode.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-407
* term/lk201.el (terminal-init-lk201):
* term/iris-ansi.el (terminal-init-iris-ansi):
* term/rxvt.el (terminal-init-rxvt): Protect function-key-map
against multiple invocations from the same terminal.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-403
* src/dispnew.c (init_display): Set up `window-system' and `tty-type'
frame parameters in the initial tty frame.
* src/frame.c (Fmake_terminal_frame): Look up the `tty-type' frame
parameter, not `tty' when discovering the tty type of the new frame.
Initialize `tty' and `tty-type' frame parameters in the new frame.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-402
* lisp/term/xterm.el (terminal-init-xterm): Protect function-key-map
against multiple invocations on the same terminal.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-401
* lisp/faces.el (tty-run-terminal-initialization): New function.
(tty-create-frame-with-faces): Use it.
* lisp/startup.el (command-line): Replace duplicated code with a call to
tty-run-terminal-initialization.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-399
* src/xsmfns.c (x_session_close): New function.
* src/xterm.h: Declare it.
* src/xterm.c (XTread_socket): Don't call x_session_check_input for
secondary displays.
(x_term_init): Do not initialize X session management when the initial
display was a tty frame.
(x_delete_display): Close X session management when we close its display.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-390
* lisp/frame.el (terminal-id, terminal-parameters, terminal-parameter)
(set-terminal-parameter, terminal-handle-delete-frame): New functions.
(delete-frame-functions): Add to `delete-frame-functions' hook.
(terminal-parameter-alist): New variable.
* lisp/international/encoded-kb.el (saved-input-mode): Delete variable.
(encoded-kbd-setup-display): Store the saved input method as a terminal
parameter.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-373
* src/data.c (Fterminal_local_value, Fset_terminal_local_value): New functions.
(syms_of_data): Defsubr them.
* lisp/international/encoded-kb.el (encoded-kbd-setup-keymap): Add keymap
parameter. Use it instead of changing key-translation-map directly.
(encoded-kbd-setup-display): Use terminal-local-value and
set-terminal-local-value to access key-translation-map. Remove
debugging messages.
* lisp/international/mule.el (keyboard-coding-system): Test for
encoded-kbd-setup-display, not encoded-kbd-mode.
* src/keyboard.c (syms_of_keyboard): Expand docs of terminal-local
variables to warn about their random bindings.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-365
* src/keyboard.c (Fset_input_mode): Call reset_sys_modes and
init_sys_modes on the selected device only; do not use the bulk
functions reset_all_sys_modes and init_all_sys_modes.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-358
* src/xdisp.c (handle_single_display_prop): Use FRAME_WINDOW_P instead of
checking against specific frame types. Ignore images on non-window
frames.
(echo_area_display): Use FRAME_INITIAL_P to check for initial frame.
(redisplay_preserve_echo_area): Update for multi-tty support.
(redisplay_window): Don't bother with toolbars, fringe bitmaps or
vertical borders on tty frames.
(display_line): Remove superflous #ifdefs.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-260
* src/xterm.c (x_connection_closed): Inhibit redisplay while frames are
being deleted.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-243
* lisp/server.el ("\C-x#"): Fix typo. (Thanks Han Boetes, Ted Morse and
Ami Fischman.)
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-235