* lisp/bindings.el (mode-line-client): Don't set the local-map and
mouse-face properties.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-578
* src/callproc.c (Vglobal_environment, Vlocal_environment_variables): Remove.
(getenv_internal, child_setup): Don't look at global-environment or
local-environment-variables.
(Fgetenv_internal): Update docs.
(set_initial_environment): Rename from set_global_environment. Store
Emacs environment in initial frame parameter.
(syms_of_callproc): Remove obsolete defvars. Update docs.
* lisp/env.el (read-envvar-name): Remove reference to global-environment.
(setenv-internal): New function.
(setenv): Use it. Always set process-environment. Update docs.
(getenv): Update docs.
(environment): Rewrite for the new environment design. Update docs.
* lisp/frame.el (frame-initialize): Copy the environment from the initial frame.
* src/emacs.c (main): Call set_initial_environment, not set_global_environment.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-569
* lisp/faces.el (tty-create-frame-with-faces): Set up faces and
background mode only after the terminal has been initialized.
(frame-set-background-mode): Handle the 'background-mode terminal
parameter.
(tty-run-terminal-initialization): Add type option.
* lisp/term/README: Update.
* lisp/term/rxvt.el: Simplify.
* lisp/term/xterm.el: Simplify and fix.
* lisp/term/*.el: Simplify and fix.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-564
* lisp/vc.el (vc-annotate-color-map): Call `tty-display-color-p' only on
ttys.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-551
* lib-src/emacsclient.c (get_current_dir_name): New function, copied here
from sysdep.c.
(main): Use it to send over the current directory.
* lisp/server.el (server-process-filter): Accept `-dir' command. Set
`default-directory' of the *scratch* buffer on connect, if applicable.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-539
* lisp/tool-bar.el (toggle-tool-bar-mode-from-frame): New function.
* lisp/menu-bar.el (toggle-menu-bar-mode-from-frame): New function.
(menu-bar-showhide-menu): Use them to change "Menu-bar" and
"Tool-bar" toggles to reflect the state of the current frame.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-537
* lisp/faces.el (x-create-frame-with-faces): Remove bogus check for first
frame. Call `tool-bar-setup'.
* lisp/frame.el (window-system-default-frame-alist): Enhance doc string.
* lisp/frame.el (frame-notice-user-settings): Don't put 'tool-bar-lines
in `default-frame-alist' when initial frame is on a tty.
* lisp/frame.el (modify-all-frames-parameters): Simplify using
`assq-delete-all'. Remove specified parameters from
`window-system-default-frame-alist'.
* lisp/fringe.el (set-fringe-mode): Simplify and fix using
`modify-all-frames-parameters'.
* lisp/menu-bar.el (menu-bar-mode): Ditto.
* lisp/scroll-bar.el (set-scroll-bar-mode): Ditto.
* lisp/tool-bar.el (tool-bar-mode): Ditto. Remove 'tool-bar-map length
check before calling `tool-bar-setup'.
* lisp/tool-bar.el (tool-bar-setup): New variable.
* lisp/tool-bar.el (tool-bar-setup): Use it to guard against multiple
calls. Add optional frame parameter, and select that frame before
adding items.
* src/frame.c (syms_of_frame): Enhance doc string of `default-frame-alist'.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-536
* lisp/server.el (server-buffer-clients): Doc update.
(server-delete-client): Handle quits in kill-buffer. Don't kill modified
buffers. Add extra logging.
(server-visit-files): Don't set `server-existing-buffer' if the buffer
already has other clients.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-517
* src/keyboard.c (Fset_quit_char): Don't leave tty state uninitialized
after an error.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-512
* src/process.c (Fmake_network_process): Don't unrequest_sigio on modern
systems.
* src/keyboard.c (Fset_input_interrupt_mode): Cosmetic change.
* src/sysdep.c (request_sigio): Make it a no-op if noninteractive.
(unrequest_sigio): Make it a no-op if noninteractive.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-494
* lisp/server.el (server-process-filter): Protect `display-splash-screen'
call in a condition-case. Explain why.
* src/callint.c (Fcall_interactively): Update call to
`temporarily_switch_to_single_kboard'.
* src/fns.c (Fy_or_n_p): Ditto.
* src/frame.c (Fdelete_frame): Remove unused variable `count'.
* src/keyboard.c (wrong_kboard_jmpbuf): Remove global variable.
* src/keyboard.c (read_char): Add wrong_kboard_jmpbuf parameter to allow
for recursive calls. Update longjmp invocations. Remember the
original current_kboard, and longjmp to `wrong_kboard_jmpbuf' when a
filter, timer or sentinel changes it. Comment out unnecessary calls to
`record_single_kboard_state' and `any_kboard_state'. Update recursive
calls.
* src/keyboard.c (read_key_sequence): Add `wrong_kboard_jmpbuf' local
variable. Update setjmp and read_char calls. Abort if
interrupted_kboard died in read_char.
* src/keyboard.c (any_kboard_state, single_kboard_state)
(record_single_kboard_state): Comment out obsolete functions.
(push_frame_kboard): Remove function.
(pop_kboard): Switch out of single_kboard mode if the
kboard has been deleted.
(temporarily_switch_to_single_kboard): Change first
parameter to a frame pointer. Throw an error when caller wants to
change kboards while in single_kboard mode.
(restore_kboard_configuration): Abort if pop_kboard changed
the kboard in single_kboard mode.
(Frecursive_edit): Switch to single_kboard mode only in
nested command loops.
(cmd_error, command_loop, command_loop_1, timer_check):
Comment out unnecessary call to `any_kboard_state' and
`record_single_kboard_state'.
* src/keyboard.c (delete_kboard): Exit single_kboard mode if we have just
deleted that kboard.
* src/keyboard.c (interrupt_signal): Use `Fkill_emacs' to exit Emacs, not
`fatal_error_signal'.
* src/keyboard.h (read_char, single_kboard_state)
(record_single_kboard_state): Remove.
(temporarily_switch_to_single_kboard): Update.
* src/lread.c: Include setjmp.h. Update declaration of `read_char'.
(read_filtered_event): Call `read_char' with a local
`wrong_kboard_jmpbuf'.
* src/minibuf.c (read_minibuf): Update call to
`temporarily_switch_to_single_kboard'.
* src/termchar.h (tty_display_info): Rename `previous_terminal_frame'
member to `previous_frame'.
* src/xdisp.c (redisplay_internal): Update references to
`previous_terminal_frame'.
(display_mode_line, Fformat_mode_line): Replace calls to
`push_frame_kboard' with `push_kboard'.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-489
* 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