From: Miles Bader Date: Wed, 29 Aug 2007 05:28:10 +0000 (+0000) Subject: Merge multi-tty branch X-Git-Tag: emacs-pretest-23.0.90~11236 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8d9cc0b7ea1893059df8788129998e9a71ec07f3;p=emacs.git Merge multi-tty branch Revision: emacs@sv.gnu.org/emacs--devo--0--patch-866 --- 8d9cc0b7ea1893059df8788129998e9a71ec07f3 diff --cc lib-src/ChangeLog index 9d7d076ca46,9d7d076ca46..266453ae975 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@@ -1,3 -1,3 +1,57 @@@ ++2007-08-29 Dan Nicolaescu ++ ++ * emacsclient.c (w32_execvp): Move definition before use. ++ (decode_options): Don't use a tty on mac carbon or windows. ++ ++2007-08-29 Jason Rumney ++ ++ * emacsclient.c (SEND_STRING, SEND_QUOTED): Remove obfuscation ++ macros. ++ (quote_argument, set_tcp_socket, handle_sigcont, handle_sigtstp): ++ (main): Expand removed macros inline. ++ (main) [WINDOWSNT]: Don't call ttyname. Don't recognize -suspend ++ option. ++ (main) [NO_SOCKETS_IN_FILE_SYSTEM]: Don't call init_signals. ++ ++2007-08-29 Karoly Lorentey ++ ++ * emacsclient.c (signal.h): New include. ++ (sys/stat.h, errno.h): Always include, even on WINDOWSNT. ++ (DIRECTORY_SEP, IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP): Copy ++ definitions here from src/lisp.h. ++ (main_argc, main_argv, current_frame, window_system, tty): New ++ variables. ++ (longopts): Add tty, current-frame. ++ (xmalloc, xstrdup): New functions. ++ (get_current_dir_name): New function, copied from src/sysdep.c. ++ (decode_options): Set display from environment. Add tty and ++ current_frame 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. ++ (print_help_and_exit): Document tty and current-frame options. ++ (fail): Change arguments to void. ++ (main): When sockets are not defined, set main_argc, main_argv, ++ and call fail() with no arguments. ++ (emacs_socket): New variable (moved out from main `s'). ++ (quote_file_name): Rename to quote_argument. ++ (quote_argument): New name for old quote_file_name. ++ (unquote_argument, strprefix, pass_signal_to_emacs) ++ (handle_sigcont, handle_sigtstp, init_signals): New functions. ++ (set_local_socket): Initialize saved_errno to 0. If socket-name ++ is too long, call `fail' rather than `exit'. ++ (main): Doc update. Set main_argc, main_argv. New var `str'. ++ Don't need a filename or argument if tty or window_system set. ++ Call fail with no arguments. Use get_current_dir_name to send ++ over the current directory. Send version number to Emacs for ++ verification. If tty is set, check TERM, and pass name and type ++ to Emacs. Pass window_system to Emacs. Move sending of eval to ++ optind loop. Send -position, -file to Emacs. Call fsync after ++ fflush. Check for a client/server version match. Handle ++ -emacs-pid, -window-system-unsupported, -print, -error, -suspend ++ commands. Don't exit prematurely on --no-wait, let Emacs close ++ the connection for us. When creating a new frame, send ++ environment and pwd to Emacs. Send current-frame to Emacs. ++ 2007-08-25 Eli Zaretskii * Makefile.in (rcs2log, rcs-checkin, grep-changelog, vcdiff): diff --cc lisp/ChangeLog index 06ceba6a157,3ae13538fd5..df84a752678 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,58 -1,3 +1,367 @@@ ++2007-08-29 Juri Linkov ++ ++ * loadup.el: Add "button" loading after "faces" and move "startup" ++ to load after "button". ++ ++2007-08-29 Dan Nicolaescu ++ ++ * loadup.el: Load term/mac-win on a Mac using Carbon. ++ ++ * term/mac-win.el: Provide mac-win. ++ (mac-initialized): New variable. ++ (mac-initialize-window-system): New function. Move global setup ++ here. ++ (handle-args-function-alist, frame-creation-function-alist): ++ (window-system-initialization-alist): Add mac entries. ++ (x-setup-function-keys): New function containing all the ++ top level function key definitions. ++ ++ * term/x-win.el (x-menu-bar-open): Use accelerate-menu. ++ ++ * env.el (read-envvar-name): Don't consider the environment frame ++ param. ++ ++ * env.el (setenv): ++ * frame.el (frame-initialize, make-frame): ++ * faces.el (tty-set-up-initial-frame-faces): ++ * server.el (server-process-filter): Set ++ display-environment-variable and term-environment-variable. ++ ++ * server.el (server-process-filter): Set COLORFGBG and COLORTERM. ++ ++2007-08-29 Jason Rumney ++ ++ * loadup.el: Only load term/x-win when X is compiled in. ++ Load term/w32-win and dependencies on windows-nt. ++ ++ * term/w32-win.el: Reorder to match x-win.el more closely. ++ Provide w32-win. Don't throw error when global window-system not ++ w32. ++ (internal-face-interactive): Remove obsolete function. ++ (x-setup-function-keys): Use local-function-key-map. ++ (w32-initialized): New variable. ++ (w32-initialize-window-system): Set it. ++ Move more global setup here. ++ (x-setup-function-keys): New function. ++ (w32-initialize-window-system): Move non function key global setup ++ here. ++ (x-cut-buffer-max): Remove. ++ (w32-initialize-window-system): New function. ++ (handle-args-function-alist, frame-creation-function-alist): ++ (window-system-initialization-alist): Add w32 entries. ++ ++2007-08-29 David Kastrup ++ ++ * env.el (getenv): Pass frame to getenv-internal. ++ ++2007-08-29 Karoly Lorentey ++ ++ * loadup.el: Delay loading env; mule-conf gets confused by cl ++ during bootstrap. Also load termdev and term/x-win. ++ ++ * bindings.el (mode-line-client): New variable. ++ (help-echo): Add it to the default mode-line format. ++ ++ * cus-start.el: Remove bogus window-system reference from GTK test. ++ ++ * ebrowse.el (ebrowse-electric-list-mode-map) ++ (ebrowse-electric-position-mode-map): ++ * ebuff-menu.el (electric-buffer-menu-mode-map): ++ * echistory.el (electric-history-map): Bind C-z to `suspend-frame', ++ not `suspend-emacs'. ++ ++ * ediff-wind.el (ediff-setup-windows-automatic): New function. ++ (ediff-window-setup-function): Use it as default. ++ ++ * files.el (save-buffers-kill-terminal): New function. ++ (ctl-x-map): Change binding of C-x C-c to save-buffers-kill-terminal. ++ ++ * font-lock.el (lisp-font-lock-keywords-2): Add `let-environment' ++ and `with-selected-frame'. ++ ++ * help-fns.el (describe-variable): Describe frame-local variables ++ correctly. ++ ++ * simple.el (normal-erase-is-backspace-mode): Rewrite for multiple ++ display support. ++ (normal-erase-is-backspace-setup-frame): New function. ++ ++ * subr.el (with-selected-frame): New function. ++ (read-quoted-char): Use terminal-local binding of ++ local-function-key-map instead of function-key-map. ++ ++ * talk.el (talk): New function. ++ (talk-handle-delete-frame): New function. ++ (talk-add-display): Open a new frame only if FRAME was not a frame. ++ ++ * termdev.el: New file. ++ ++ * menu-bar.el (menu-bar-open): New function. Bind it to f10. ++ * term/x-win.el: Don't bind f10. ++ * tmm.el: Remove autoload binding for f10. ++ ++ * international/encoded-kb.el (encoded-kbd-setup-display): Use ++ `set-input-meta-mode'. Fix broken condition before set-input-mode. ++ Store the saved input method as a terminal parameter. Add keymap ++ parameter. Use it instead of changing key-translation-map directly. ++ (saved-key-translation-map, encoded-kbd-mode, saved-input-mode): ++ Remove. ++ (encoded-kbd-setup-display): New function. ++ ++ * international/mule-cmds.el (set-locale-environment): Fix getenv ++ call. Use save-buffers-kill-terminal. Ignore window-system; always ++ set the keyboard coding system. Add DISPLAY parameter. ++ (set-display-table-and-terminal-coding-system): Add DISPLAY ++ parameter. Pass it to set-terminal-coding-system. ++ ++ * international/mule.el (keyboard-coding-system): Test for ++ encoded-kbd-setup-display, not encoded-kbd-mode. ++ (set-terminal-coding-system, set-keyboard-coding-system): Add ++ DISPLAY parameter. ++ (set-keyboard-coding-system): Use encoded-kbd-setup-display. ++ ++ * term/README: Update. ++ ++ * term/linux.el (terminal-init-linux): Use `set-input-meta-mode'. ++ ++ * term/x-win.el (x-setup-function-keys): New function. Move ++ function-key-map tweaks here. Protect against multiple calls on ++ the same terminal. Use terminal-local binding of ++ local-function-key-map instead of function-key-map. ++ (x-initialize-window-system): Make a copy of pure list. Pass a ++ frame getenv. ++ ++ * term/vt200.el, term/vt201.el, term/vt220.el, term/vt240.el: ++ * term/vt300.el, term/vt320.el, term/vt400.el, term/vt420.el: ++ * term/AT386.el, term/internal.el, term/iris-ansi.el, term/lk201.el: ++ * term/mac-win.el, term/news.el, term/rxvt.el, term/sun.el: ++ * term/tvi970.el, term/wyse50.el: Use terminal-local binding of ++ local-function-key-map instead of function-key-map. ++ ++ * term/rxvt.el, term/xterm.el: Speed up load time by protecting ++ `substitute-key-definition' and `define-key' calls against ++ multiple execution. Use terminal-local binding of ++ local-function-key-map instead of function-key-map. Pass a frame ++ to getenv. ++ ++ * edmacro.el (edmacro-format-keys): ++ * emulation/cua-base.el (cua--pre-command-handler): ++ * isearch.el (isearch-other-meta-char): ++ * xt-mouse.el: Use terminal-local binding of ++ local-function-key-map instead of function-key-map. ++ ++ * fringe.el (set-fringe-mode): Simplify and fix using ++ `modify-all-frames-parameters'. ++ * scroll-bar.el (set-scroll-bar-mode): Ditto. ++ * tool-bar.el (tool-bar-mode): Ditto. Remove 'tool-bar-map length ++ check before calling `tool-bar-setup'. ++ (tool-bar-setup): New variable. ++ (tool-bar-setup): Use it to guard against multiple calls. Add ++ optional frame parameter, and select that frame before adding items. ++ (toggle-tool-bar-mode-from-frame): New function. ++ ++ * menu-bar.el (toggle-menu-bar-mode-from-frame): New function. ++ (menu-bar-showhide-menu): Use toggle-menu-bar-mode-from-frame and ++ toggle-tool-bar-mode-from-frame to change "Menu-bar" and ++ "Tool-bar" toggles to reflect the state of the current frame. ++ (menu-bar-mode): Simplify and fix using `modify-all-frames-parameters'. ++ ++ * env.el Require cl for byte compilation (for `block' and `return'). ++ (environment, setenv-internal): New functions. ++ (let-environment): New macro. ++ (setenv, getenv): Add optional terminal parameter. Update docs. ++ (setenv): Use setenv-internal. Always set process-environment. ++ Handle `local-environment-variables'. ++ (read-envvar-name, setenv, getenv): Use frame parameters ++ to store the local environment, not terminal parameters. Include ++ `process-environment' as well. ++ ++ * faces.el (tty-run-terminal-initialization): New function. ++ (tty-create-frame-with-faces): Use it. Set up faces and ++ background mode only after the terminal has been initialized. ++ Call terminal-init-*. Don't load the initialization file more ++ than once. Call set-locale-environment. ++ (frame-set-background-mode): Handle the 'background-mode terminal ++ parameter. ++ (tty-find-type): New function. ++ (x-create-frame-with-faces): Remove bogus check for ++ first frame. Call `tool-bar-setup'. Don't make frame visible ++ until we are done setting up all its parameters. Call ++ x-setup-function-keys. ++ ++ * frame.el (make-frame): Always inherit 'environment and 'client ++ parameters. Set up the 'environment frame parameter, when needed. ++ Also inherit 'client parameter. Don't override explicitly ++ specified values with inherited ones. Add 'terminal frame ++ parameter. Append window-system-default-frame-alist to parameters ++ before calling frame-creation-function. ++ (frame-initialize): Copy the environment from the initial frame. ++ (window-system-default-frame-alist): Enhance doc string. ++ (frame-notice-user-settings): Don't put 'tool-bar-lines in ++ `default-frame-alist' when initial frame is on a tty. ++ (modify-all-frames-parameters): Simplify using `assq-delete-all'. ++ Remove specified parameters from `window-system-default-frame-alist'. ++ (make-frame-on-tty, framep-on-display, suspend-frame): ++ Extend doc string, update parameter names. ++ (frames-on-display-list): Use terminal-id to get the display id. ++ (frame-notice-user-settings): Extend to apply ++ settings in `window-system-default-frame-alist' as well. ++ (terminal-id, terminal-parameters, terminal-parameter) ++ (set-terminal-parameter, terminal-handle-delete-frame): New functions. ++ (delete-frame-functions): Add to `delete-frame-functions' hook. ++ (blink-cursor-mode): Adapt blink-cursor-mode default ++ value from startup.el. ++ (make-frame-on-display): Protect condition on x-initialized when ++ x-win.el is not loaded. Update doc. ++ (suspend-frame): Use display-controlling-tty-p to decide between ++ suspend-emacs and suspend-tty. ++ (frames-on-display-list): Update for display ids. ++ (framep-on-display): Ditto. ++ (suspend-frame): Use display-name, not frame-tty-name. ++ (selected-terminal): New function. ++ ++ * server.el: Use `device' instead of `display' or `display-id' in ++ variable and client parameter names. ++ (server-select-display): Remove (unused). ++ (server-tty-live-p, server-handle-delete-tty): Remove. ++ (server-unquote-arg, server-quote-arg, server-buffer-clients): ++ Update docs. ++ (server-getenv-from, server-with-environment, server-send-string) ++ (server-save-buffers-kill-terminal): New functions. ++ (server-delete-client): Handle quits in kill-buffer. Don't kill ++ modified buffers. Add extra logging. Delete frames after ++ deleting the tty. Clear 'client parameter before deleting a frame. ++ Use delete-display, not delete-tty. ++ (server-visit-files): Don't set `server-existing-buffer' if the ++ buffer already has other clients. Return list of buffers ++ created. Update doc. Don't set client-record when nowait. ++ (server-handle-delete-frame): Delete the client if this was its ++ last frame. Check that the frame is alive. Remove bogus comment. ++ Add note on possible race condition. Delete tty clients, if needed. ++ (server-handle-suspend-tty): Use server-send-string. Kill the ++ client in case of errors from process-send-string. Use the display ++ parameter. ++ (server-unload-hook): Remove obsolete delete-tty hook. ++ (server-start): Ask before restarting if the old server still has ++ clients. Add feedback messages. Remove obsolete delete-tty hook. ++ (server-process-filter): Use server-send-string. Accept `-dir' ++ command. Switch to *scratch* immediately after creating the frame, ++ before evaluating any -evals. Protect `display-splash-screen' ++ call in a condition-case. Explain why. Call ++ `display-startup-echo-area-message' before ++ `display-splash-screen'. Don't display the splash screen when no ++ frame was created. Show the Emacs splash screen and startup echo ++ area message. Display the *scratch* buffer by default. Store the ++ local environment in a frame (not terminal) parameter. Do not try ++ to decode environment strings. Fix reference to the 'display ++ frame parameter. Change syntax of environment variables. Put ++ environment into terminal parameters, not client parameters. Use ++ a dummy client with --no-wait's X frames. In `-position LINE' ++ handler, don't ruin the request string until the line number is ++ extracted. Log opened files. 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. Set locale environment ++ variables from client while creating tty frames. Disable call to ++ configure-display-for-locale. When processing -position command, ++ don't change the request string until the parameters are ++ extracted. Don't try to create an X frame when Emacs does not ++ support it. Improve logging. Temporarily set ncurses-related ++ environment variables to those of the client while creating a new ++ tty frame. Select buffers opened by nowait clients, don't leave ++ them buried under others. Set the display parameter, and use it ++ when appropriate. ++ ++ * startup.el (display-startup-echo-area-message): Handle ++ `inhibit-startup-echo-area-message' here. ++ (command-line-1): Moved from here. ++ (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. 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. Restore previous buffer, even ++ if it's *scratch*. ++ (normal-splash-screen): Don't let-bind `mode-line-format'; it ++ changes the global binding - setq it instead. Use ++ `save-buffers-kill-terminal'. ++ (display-splash-screen): Don't do anything if the splash screen is ++ already displayed elsewhere. ++ (fancy-splash-exit, fancy-splash-delete-frame): New functions. ++ (command-line): Replace duplicated code with a call to ++ tty-run-terminal-initialization. Don't load the terminal ++ initialization file more than once. Remove call to nonexistent ++ function `set-locale-translation-file-name'. ++ ++ * 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. ++ +2007-08-29 Stefan Monnier + + * simple.el (invisible-p): Remove: implemented in C now. + (line-move-invisible-p): Remove obsolete alias. + +2007-08-28 Juri Linkov + + * image-mode.el (image-type): New variable. + (image-mode): Set default major mode name to "Image[text]". + (image-minor-mode): Change LIGHTER to display image-type in the + mode line. + (image-minor-mode): Set default image-type to "text". + (image-toggle-display): After switching to text mode, set + image-type to "text" and major mode name to "Image[text]". + After switching to image mode, set image-type to actual image + type, and add image type to major mode name. Let-bind the same + variable names as arguments of `image-type' and `create-image'. + Bind `type' to the result of `image-type' and use it as arg + of `create-image' to not determine the image type twice. + +2007-08-28 Michael Albinus + + * net/tramp.el (tramp-handle-set-file-times): Flush the file + properties. + (tramp-set-file-uid-gid, tramp-get-local-uid) + (tramp-get-local-gid): New defuns. + (tramp-handle-copy-file): Handle new parameter PRESERVE-UID-GID. + (tramp-do-copy-or-rename-file): New parameter PRESERVE-UID-GID. + Improve fast track. + (tramp-do-copy-or-rename-file-directly): Sync parameter list with + the other tramp-do-copy-or-rename-file-* functions. Major rewrite. + (tramp-handle-file-local-copy, tramp-handle-insert-file-contents) + (tramp-handle-write-region): Improve fast track. + (tramp-handle-file-remote-p): IDENTIFICATION can also be `localname'. + (tramp-maybe-open-connection): Let `process-adaptive-read-buffering' + be nil. + +2007-08-28 Ivan Kanis + + * time.el: New feature to display several time zones in a buffer. + (display-time-world-mode, display-time-world-display) + (display-time-world, display-time-world-timer): New functions. + (display-time-world-list, display-time-world-time-format) + (display-time-world-buffer-name, display-time-world-timer-enable) + (display-time-world-timer-second, display-time-world-mode-map): + New variables. + +2007-08-28 Jan Dj,Ad(Brv + + * term/x-win.el (x-gtk-stock-map): New variable. + (x-gtk-map-stock): New function. + + * info.el (info-tool-bar-map): Add :rtl keyword to right/left-arrow and + prev/next-node. + 2007-08-28 Johan Bockg,Ae(Brd (tiny change) * play/gamegrid.el (gamegrid-init): Set line-spacing to 0. diff --cc lispref/ChangeLog index 7816c993e2e,8e6c8abd3ef..7abc1e0b9bb --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@@ -1,13 -1,3 +1,18 @@@ ++2007-08-29 Dan Nicolaescu ++ ++ * frames.texi (Basic Parameters): Add display-environment-variable ++ and term-environment-variable. ++ +2007-08-28 Juri Linkov + + * display.texi (Image Formats, Other Image Types): Add SVG. + +2007-08-28 Juri Linkov + + * display.texi (Images): Move formats-related text to new node + "Image Formats". + (Image Formats): New node. + 2007-08-25 Richard Stallman * display.texi (Images): Delete redundant @findex. diff --cc lwlib/ChangeLog index 6079a3af84a,6079a3af84a..75597a9549e --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@@ -1,3 -1,3 +1,8 @@@ ++2007-08-29 Karoly Lorentey ++ ++ * xlwmenu.c (XlwMenuRealize): Ignore X errors while setting up ++ cursor shape. ++ 2007-07-25 Glenn Morris * Relicense all FSF files to GPLv3 or later. diff --cc mac/ChangeLog index c25d89a83ba,c25d89a83ba..8b00774471e --- a/mac/ChangeLog +++ b/mac/ChangeLog @@@ -1,3 -1,3 +1,10 @@@ ++2007-08-29 Karoly Lorentey ++ ++ * makefile.MPW (EmacsObjects): Add terminal.c.x. ++ (callproc.c.x): Add dependencies frame.h, termhooks.h. ++ ({Src}terminal.c.x): New. ++ (shortlisp): Add server.elc and termdev.elc. ++ 2007-07-25 Glenn Morris * Relicense all FSF files to GPLv3 or later. diff --cc src/ChangeLog index 231f18dd312,b402b1c7646..029f84945d5 --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,18 -1,3 +1,624 @@@ ++2007-08-29 Dan Nicolaescu ++ ++ * callproc.c (child_setup, getenv_internal): Use the ++ display-environment-variable and term-environment-variable frame ++ params. ++ (set_initial_environment): Initialise Vprocess_environment. ++ ++ * config.in: Disable multi-keyboard support on a mac. ++ ++ * frame.c (Qterm_environment_variable) ++ (Qdisplay_environment_variable): New variables. ++ (syms_of_frame): Intern and staticpro them. ++ (Fmake_terminal_frame): Disable output method test. ++ ++ * frame.h: Declare them here. ++ ++ * macfns.c (x_set_mouse_color): Get rif from the frame. ++ (x_set_tool_bar_lines): Don't use updating_frame. ++ (mac_window): Add 2 new parameters for consistency with other systems. ++ (Fx_create_frame): Fix doc string. Rename the parameter. Set the ++ frame parameters following what is done in X11 and w32. Don't use ++ FRAME_MAC_DISPLAY_INFO. ++ (Fx_open_connection, start_hourglass): Remove window-system check. ++ (x_create_tip_frame): Get the keyboard from the terminal. ++ ++ * macmenu.c: Reorder includes. ++ (Fx_popup_menu): Use terminal specific mouse_position_hook. ++ ++ * macterm.c (XTset_terminal_modes, XTreset_terminal_modes): Add a ++ terminal parameter. ++ (x_clear_frame): Add a frame parameter. ++ (note_mouse_movement): Get rif from the frame. ++ (mac_term_init): Initialize the terminal. ++ (mac_initialize): Make static and move terminal initialization ... ++ (mac_create_terminal): ... to this new function. ++ ++ * macterm.h (struct mac_display_info): Add terminal. ++ ++ * puresize.h (BASE_PURESIZE): Increase base value to 1158000. ++ ++ * sysdep.c: Comment out text after #endif. ++ ++ * term.c (init_tty): Only use terminal->kboard when MULTI_KBOARD ++ is defined. Better initialize ttys in windows. Use terminal ++ specific mouse_position_hook. ++ ++ * termhooks.h (union display_info): Add mac_display_info. ++ ++ * w32fns.c (Fx_create_frame): Use kboard from the terminal. Set ++ the default minibuffer frame, window_system and the rest of the ++ frame parameters following what is done in X11. ++ ++ * w32term.c (w32_initialize): Make static. ++ ++ * xselect.c (x_handle_selection_clear): Only access ++ terminal->kboard when MULTI_KBOARD is defined. ++ ++ * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here. ++ (SYSTEM_PURESIZE_EXTRA): Only define on Carbon. ++ ++2007-08-29 Jason Rumney ++ ++ * frame.c (Fdelete_frame): Only get kboard when MULTI_KBOARD defined. ++ (make_terminal_frame) [WINDOWSNT]: Initialize terminal. ++ ++ * fringe.c (w32_init_fringe w32_reset_fringes) [HAVE_NTGUI]: ++ (mac_init_fringe) [MAC_OS]: Get rif from selected_frame. ++ ++ * keyboard.c (restore_kboard_configuration): Only define when ++ MULTI_KBOARD defined. ++ ++ * makefile.w32-in: Update dependancies from Makefile.in ++ (OBJ1): Add terminal.$(O) ++ ++ * term.c (dissociate_if_controlling_tty) [WINDOWSNT]: Don't ++ define function body. ++ (init_tty) [WINDOWSNT]: Use selected_frame for initializing. ++ ++ * termhooks.h (display_info) [WINDOWSNT]: Add w32. ++ ++ * w32.c (request_sigio, unrequest_sigio): Remove. ++ ++ * w32console.c (w32con_move_cursor, w32con_clear_to_end) ++ (w32con_clear_frame, w32con_clear_end_of_line) ++ (w32con_ins_del_lines, w32con_insert_glyphs, w32con_write_glyphs) ++ (w32con_delete_glyphs, w32con_set_terminal_window) ++ (scroll_line, w32_sys_ring_bell): Add frame arg. ++ (w32con_set_terminal_modes, w32con_reset_terminal_modes): Add ++ terminal arg. ++ (PICK_FRAME): Remove. ++ (w32con_write_glyphs): Use frame specific terminal coding. ++ (one_and_only_w32cons): New global variable. ++ (initialize_w32_display): Use it for storing hooks. ++ (create_w32cons_output): New function. ++ ++ * w32inevt.c, w32inevt.h (w32_console_read_socket): Make first ++ arg a frame. ++ ++ * w32fns.c (x_create_tip_frame): Set terminal and ref count. Set ++ window_system. ++ (x_set_tool_bar_lines): Don't use updating_frame. ++ (Fx_create_frame): Set terminal and ref count. ++ (Fx_open_connection): Remove window-system check. ++ ++ * w32menu.c (Fx_popup_menu): Use terminal specific mouse_position_hook. ++ ++ * w32term.c (w32_term_init): Call add_keyboard_wait_descriptor. ++ (w32_set_terminal_modes, w32_reset_terminal_modes): Add terminal arg. ++ (x_clear_frame, x_delete_glyphs, w32_ring_bell, x_ins_del_lines): ++ Add frame arg. ++ (x_delete_terminal, w32_create_terminal): New functions. ++ (w32_term_init): Create a terminal. ++ (w32_initialize): Move terminal specific initialization to ++ w32_create_terminal. ++ ++ * w32term.h (x_output): Remove foreground_pixel and ++ background_pixel. ++ (w32_clear_rect, w32_clear_area): Use background from frame. ++ (w32_display_info): Add terminal. ++ (w32_sys_ring_bell, x_delete_display): Declare here. ++ ++ * xdisp.c (display_menu_bar) [HAVE_NTGUI]: Check frame type. ++ ++ * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Bump to 50k. ++ ++2007-08-29 Kalle Olavi Niemitalo (tiny change) ++ ++ * keyboard.c (interrupt_signal, handle_interrupt, Fset_quit_char): ++ Fix get_named_tty calls for the controlling tty. ++ ++2007-08-29 ARISAWA Akihiro (tiny change) ++ ++ * term.c (dissociate_if_controlling_tty)[USG]: Fix parse error. ++ ++2007-08-29 Yoshiaki Kasahara (tiny change) ++ ++ * term.c (tty_insert_glyphs): Add missing first parameter. ++ ++2007-08-29 Karoly Lorentey ++ ++ * buffer.c (Fbuffer_list, Fbury_buffer): Take ++ frame->buried_buffer_list into account. ++ ++ * cm.c (current_tty): New variable, for cmputc(). ++ (cmputc): Use it. ++ (cmcheckmagic): Add tty parameter, look up terminal streams there. ++ (calccost): Add tty parameter. Use emacs_tputs() instead of tputs(). ++ (cmgoto): Add tty parameter. Pass it on to calccost(). Use ++ emacs_tputs() instead of tputs(). ++ ++ * cm.h (emacs_tputs): New macro to set current_tty, and then call ++ tputs(). ++ (current_tty): New variable, for cmputc(). ++ (cmcheckmagic, cmputc, cmgoto): Add prototypes. ++ ++ * eval.c (unwind_to_catch): Don't call x_fully_uncatch_errors. ++ (internal_condition_case, internal_condition_case_1) ++ (internal_condition_case_2): Don't abort when x_catching_errors. ++ ++ * fns.c (Fyes_or_no_p): Don't try to open an X dialog on tty terminals. ++ (Fy_or_n_p): Likewise. Use temporarily_switch_to_single_kboard to ++ prevent crashes caused by bogus longjmps in read_char. ++ ++ * keymap.h (Fset_keymap_parent): Add EXFUN. ++ ++ * macterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL) ++ * w32term.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): ++ Remove redundant definition. ++ ++ * macfns.c (x_set_mouse_color,x_make_gc): Use ++ FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL. ++ ++ * w32term.c (x_free_frame_resources): Use ++ FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL. ++ (w32_initialize): Use the accessor macros for terminal characteristics. ++ ++ * macterm.c (mac_initialize): Use Fset_input_interrupt_mode. ++ Use the accessor macros for terminal characteristics. ++ * msdos.c (internal_terminal_init): Use the accessor macros for ++ terminal characteristics. ++ (ScreenVisualBell,internal_terminal_init): Use ++ FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL. ++ ++ * termopts.h (no_redraw_on_reenter): Declare. ++ ++ * alloc.c (emacs_blocked_malloc): Disable mallopt call. ++ (mark_terminals,mark_ttys): Declare. ++ (Fgarbage_collect): Call them. ++ (mark_object): Mark buried_buffer_list; ++ ++ * prefix-args.c: Include stdlib.h for exit. ++ ++ * syssignal.h: Add comment. ++ ++ * indent.c: Include stdio.h. ++ ++ * window.h (Vinitial_window_system): Declare. ++ (Vwindow_system): Delete declaration. ++ ++ * fontset.c (Finternal_char_font): Use FRAME_RIF. ++ ++ * image.c (lookup_image): Don't initialize `c' until the xasserts ++ have been run. ++ ++ * gtkutil.c (xg_create_frame_widgets): Use FRAME_BACKGROUND_PIXEL and ++ FRAME_FOREGROUND_PIXEL. ++ ++ * print.c (print_preprocess): Don't lose print_depth levels while ++ iterating. ++ ++ * widget.c (update_from_various_frame_slots): Use ++ FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL. ++ ++ * window.c (set_window_buffer): Don't call clear_mouse_face on tty ++ frames. ++ (window_internal_height): Remove bogus make_number call. ++ (init_window_once): Call make_terminal_frame with two zero ++ parameters. ++ ++ * fileio.c (Fread_file_name): Update comment. ++ ++ * callint.c (Fcall_interactively): Use ++ temporarily_switch_to_single_kboard instead of single_kboard_state. ++ Make sure it is correctly unwound. ++ ++ * xsmfns.c (x_session_close): New function. ++ ++ * coding.h (terminal_coding,safe_terminal_coding,keyboard_coding): ++ Delete declarations. ++ ++ * xterm.h: Remove declaration for x_fully_uncatch_errors. ++ (x_output): Remove background_pixel and foreground_pixel fields. ++ (x_display_info): Add new field TERMINAL. Remove KBOARD field. ++ (x_delete_device): ++ (x_session_close): Declare. ++ ++ * lread.c: Include setjmp.h. Update declaration of `read_char'. ++ (read_filtered_event): Call `read_char' with a local ++ `wrong_kboard_jmpbuf'. ++ ++ * minibuf.c (read_minibuf): Call ++ temporarily_switch_to_single_kboard. Don't call ++ single_kboard_state. Use FRAME_RIF. ++ ++ * process.c (Fmake_network_process): Don't unrequest_sigio on modern ++ systems. ++ ++ * lisp.h (set_process_environment): Rename to ++ `set_global_environment'. ++ (Fframe_with_environment,Fset_input_meta_mode) ++ (Fset_quit_char): EXFUN. ++ (x_create_device,tty_output,terminal,tty_display_info): Declare. ++ (init_sys_modes, reset_sys_modes): Update prototypes. ++ (init_all_sys_modes, reset_all_sys_modes): New prototypes. ++ ++ * keyboard.h (struct kboard): Add new fields: ++ Vlocal_function_key_map, Vlocal_key_translation_map, ++ Vkeyboard_translate_table. ++ (Vfunction_key_map,Vkeyboard_translate_table,single_kboard_state): ++ Delete declarations. ++ (Vfunction_key_map,Vkey_translation_map,push_kboard,pop_kboard) ++ (temporarily_switch_to_single_kboard,tty_read_avail_input): ++ New declarations. ++ ++ * emacs.c (main): Don't call init_sys_modes(), the new term_init() ++ already does that during init_display(). Call syms_of_keymap ++ before syms_of_keyboard. Call `syms_of_terminal'. Call ++ set_initial_environment, not set_process_environment. ++ (shut_down_emacs): Call reset_all_sys_modes() instead of ++ reset_sys_modes(). ++ ++ * xfaces.c (x_free_gc): Protect xassert with GLYPH_DEBUG. ++ (internal_resolve_face_name, resolve_face_name_error): New ++ functions. ++ (resolve_face_name): Protect against loops and errors thrown by ++ Fget. ++ (realize_default_face): Don't use FRAME_FONT unless frame is an X ++ frame. ++ (Ftty_supports_face_attributes_p): Update tty_capable_p call. ++ ++ * scroll.c: Replace CURTTY() with local variables throughout the ++ file (where applicable). ++ (calculate_scrolling, calculate_direct_scrolling) ++ (scrolling_1, scroll_cost): Use the accessor macros for terminal ++ characteristics. ++ ++ * keymap.c (Vfunction_key_map): Remove. ++ (Fdescribe_buffer_bindings): Update references to ++ Vfunction_key_map. ++ (syms_of_keymap): Remove DEFVAR for Vfunction_key_map. ++ (Vkey_translation_map): Remove. ++ (syms_of_keymap): Remove DEFVAR for key-translation-map. ++ (Fdescribe_buffer_bindings): ++ (read_key_sequence, init_kboard, syms_of_keyboard, mark_kboards): ++ Update for terminal-local key-translation-map. ++ ++ * Makefile.in (callproc.o): Update dependencies. ++ (lisp, shortlisp): Add termdev.elc. ++ (obj): Add terminal.o. ++ (terminal.o): Add dependencies. ++ [HAVE_CARBON]: Make terminal.o depend on macgui.h. ++ (data.o, fns.o): Add termhooks.h dependency. ++ (SOME_MACHINE_LISP): Add dnd.elc. ++ (minibuf.o): Fix typo. ++ Update dependencies. ++ ++ * data.c (do_symval_forwarding, store_symval_forwarding) ++ (find_symbol_value): Use the selected frame's keyboard, not ++ current_kboard. ++ ++ * .gdbinit (init_sys_modes): Use Vinitial_window_system instead of ++ Vwindow_system. ++ ++ * xmenu.c (Fx_menu_bar_open) [USE_X_TOOLKIT, USE_GTK]: Rename from ++ Fmenu_bar_open. ++ (syms_of_xmenu): Update defsubr. ++ (mouse_position_for_popup, Fx_popup_menu) ++ (Fx_popup_dialog, x_activate_menubar, update_frame_menubar) ++ (set_frame_menubar, free_frame_menubar) ++ (create_and_show_popup_menu, xmenu_show, ) ++ (create_and_show_dialog, xdialog_show, xmenu_show): Abort if not ++ an X frame. ++ ++ * xselect.c (x_own_selection): Abort if not an X frame. ++ (some_frame_on_display): Check if it is an X frame. ++ (x_handle_selection_clear): Deal with MULTI_KBOARD. ++ ++ * coding.c: Include frame.h and termhooks.h. ++ (terminal_coding,keyboard_coding): Delete. ++ (Fset_terminal_coding_system_internal): ++ (Fset_keyboard_coding_system_internal): ++ (Fkeyboard_coding_system): ++ (Fterminal_coding_system): Add a terminal parameter. Get ++ terminal_coding from the terminal. ++ (init_coding_once): Don't call setup_coding_system here. ++ ++ * dispextern.h (set_scroll_region, turn_off_insert) ++ (turn_off_highlight, background_highlight, clear_end_of_line_raw) ++ (tty_clear_end_of_line, tty_setup_colors) ++ (delete_tty,updating_frame) ++ (produce_special_glyphs, produce_glyphs, write_glyphs) ++ (insert_glyphs): Remove. ++ (raw_cursor_to, clear_to_end, tty_turn_off_insert) ++ (tty_turn_off_highlight,get_tty_size): Add declaration. ++ (tabs_safe_p, init_baud_rate, get_tty_terminal): Update ++ prototypes. ++ ++ * frame.h (enum output_method): Add output_initial. ++ (struct x_output): Delete. ++ (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Access ++ foreground_pixel and background_pixel directly from the frame. ++ (tty_display): Delete. ++ (struct frame): Add buried_buffer_list, foreground_pixel, ++ background_pixel and terminal. Delete kboard ++ (union output_data): Add tty. ++ (FRAME_KBOARD): Get the kboard from the terminal. ++ (FRAME_INITIAL_P): New macro. ++ (Qtty, Qtty_type, Qterminal, Qterminal_live_p, Qenvironment) ++ (Qterm_environment_variable, Qdisplay_environment_variable) ++ (make_terminal_frame, Qburied_buffer_list, Qwindow_system): New ++ declarations. ++ ++ * termchar.h (tty_output, tty_display_info): New structures. ++ (tty_list): Declare. ++ (FRAME_TTY, CURTTY): New macros. ++ (must_write_spaces, min_padding_speed, fast_clear_end_of_line) ++ (line_ins_del_ok, char_ins_del_ok, scroll_region_ok) ++ (scroll_region_cost, memory_below_frame, fast_clear_end_of_line) ++ (dont_calculate_costs, no_redraw_on_reenter): Remove declarations. ++ ++ * callproc.c: Include frame.h and termhooks.h, for terminal ++ parameters. ++ (add_env): New function. ++ (child_setup): Use it. ++ (child_setup, getenv_internal): Handle the new ++ Vprocess_environment. ++ (getenv_internal): Fix get_terminal_param call. ++ (Fgetenv_internal, egetenv): Update doc. ++ (syms_of_callproc): Initialize Vprocess_environment to nil. ++ Register and initialize them. Remove obsolete defvars. Update doc ++ strings. ++ (child_setup): Handle Vlocal_environment_variables. ++ (getenv_internal): Add terminal parameter. Handle ++ Vlocal_environment_variables. ++ (Fgetenv_internal): Add terminal parameter. ++ (child_setup, getenv_internal, Fgetenv_internal): Store the local ++ environment in a frame (not terminal) parameter. Update doc ++ strings. ++ (set_initial_environment): Rename from set_global_environment. ++ Store Emacs environment in initial frame parameter. ++ ++ * 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'. ++ (get_glyph_string_clip_rects): Add extra parentheses and ++ braces to prevent compiler warnings. ++ (calc_pixel_width_or_height): Add xassert to check that the ++ frame is alive. Don't call `lookup_image' on a termcap frame. ++ (message2_nolog, message3_nolog, redisplay_internal) ++ (set_vertical_scroll_bar, redisplay_window, check_x_display_info) ++ (x_set_scroll_bar_foreground, x_set_scroll_bar_background) ++ (Fx_create_frame, Fxw_display_color_p, Fx_display_grayscale_p) ++ (Fx_display_pixel_width, Fx_display_pixel_height) ++ (Fx_display_planes, Fx_display_color_cells) ++ (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version) ++ (Fx_display_screens, Fx_display_mm_height, Fx_display_mm_width) ++ (Fx_display_backing_store, Fx_display_visual_class) ++ (Fx_display_save_under, Fx_close_connection, x_create_tip_frame): ++ Use FRAME_TERMINAL_P, FRAME_WINDOW_P, FRAME_TTY and FRAME_RIF. ++ ++ * xfns.c (x_set_foreground_color x_set_background_color) ++ (x_set_mouse_color, x_set_cursor_color, x_make_gc): Use ++ FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL. ++ (Fx_create_frame, x_create_tip_frame, build_string, x_window) ++ (Fx_create_frame, x_create_tip_frame): Don't create frames on a ++ terminal that is being deleted. ++ (Fx_create_frame): Use `store_frame_param' to set `window-system' ++ frame parameter, and make sure it overrides any user-supplied ++ setting. ++ (Fx_close_connection, Fx_synchronize): Unify argument names with ++ the rest of the DEFUNs. ++ ++ * dispnew.c (Fsend_string_to_terminal): Update call to ++ `get_tty_terminal'. ++ (Fredraw_frame, Fsend_string_to_terminal) ++ (Fsend_string_to_terminal, init_display): User FRAME_RIF, ++ FRAME_TERMCAP_P and FRAME_TTY. ++ (window_change_signal): Don't believe width/height values that are ++ impossibly small. ++ (Vinitial_window_system): Rename from Vwindow_system. ++ (termscript, Wcm, rif): Delete. ++ ++ * termhooks.h (struct terminal): New struct containing the ++ previously global text display hooks and new members NAME, ++ DELETED and PARAM_ALIST. ++ (FRAME_TERMINAL, TERMINAL_TERMINAL_CODING) ++ (TERMINAL_KEYBOARD_CODING, TERMINAL_ACTIVE_P, FRAME_WINDOW_P) ++ (FRAME_RIF): New macros. ++ (get_terminal_param, get_device): New declarations. ++ (termscript): Delete declaration. ++ ++ * xterm.c (x_initialize): Use Fset_input_interrupt_mode. ++ (XTflash, x_free_frame_resources, x_scroll_bar_create) ++ (x_scroll_bar_set_handle): Use FRAME_BACKGROUND_PIXEL and ++ FRAME_FOREGROUND_PIXEL. ++ (x_fully_uncatch_errors): Disable definition. ++ (x_scroll_bar_expose): Fix reference to foreground pixel. ++ (XTread_socket): Disable loop on all X displays. ++ (x_delete_terminal): Don't set terminal->deleted and let ++ delete_terminal delete the frames on the terminal. ++ (x_delete_display): Doc update to reflect changes in ++ delete_terminal. ++ (x_display_info) : Move member earlier in the struct. ++ (x_delete_terminal): Use terminal->deleted. Delete all frames on ++ the display explicitly. ++ (deleting_tty): Remove old variable. ++ (Fsuspend_tty): Call clear_tty_hooks. ++ (Fresume_tty, init_tty): Call set_tty_hooks. ++ (clear_tty_hooks, set_tty_hooks): New functions. ++ (Ftty_display_color_p, Ftty_display_color_cells): Don't throw ++ errors on X frames. ++ (x_catch_errors_unwind): Abort if x_error_message is NULL. ++ (handle_one_xevent): Initialize `f' to NULL. ++ (x_delete_device, x_create_device): New functions. ++ (XTset_terminal_modes, XTreset_terminal_modes) ++ (XTread_socket, x_connection_closed, x_term_init) ++ (x_term_init, x_delete_display): Add terminal parameter. ++ (x_term_init) [!HAVE_GTK_MULTIDISPLAY]: Refuse to create secondary ++ X connections. ++ ++ * frame.c (Fframep): Deal with output_initial. ++ (Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list, Qtty) ++ (Qtty_type, Qwindow_system, Qenvironment) ++ (Qterm_environment_variable, Qdisplay_environment_variable): New ++ variables. ++ (x_set_screen_gamma, store_frame_param): Fix compilation errors. ++ (make_terminal_frame): Don't create frames on a terminal that is ++ being deleted. ++ (make_terminal_frame): Use FRAME_BACKGROUND_PIXEL and ++ FRAME_FOREGROUND_PIXEL. ++ (store_frame_param): Check for found_for_frame before calling ++ XFRAME. ++ (Fmake_terminal_frame): Handle NULL tty names correctly. ++ (syms_of_frame): Enhance doc string of `default-frame-alist'. ++ (Fdelete_frame): Remove unused variable `count'. ++ (Qenvironment): New variable. ++ (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. ++ (get_future_frame_param): New function. ++ (Fmake_terminal_frame): Use it. ++ ++ * sysdep.c (init_sys_modes, reset_sys_modes): Update for renames. ++ * sysdep.c (reset_sys_modes): Update for renames. ++ ++ * keyboard.c (tty_read_avail_input): New function. ++ (Fset_input_interrupt_mode,Fset_output_flow_control): New ++ functions. ++ (syms_of_keyboard): Defsubr them. ++ (Fset_input_meta_mode, Fset_quit_char): New functions. ++ (Fset_input_mode): Split to above functions. ++ ++ (read_char_minibuf_menu_prompt): Add wrong_kboard_jmpbuf ++ parameter. Use it in call to `read_char'. ++ (read_char): Declare. Update call to ++ `read_char_minibuf_menu_prompt'. Set wrong_kboard_jmpbuf ++ correctly in recursive calls. Use current_kboard to access ++ Vkeyboard_translate_table. Enhance comment before extra longjmp ++ to wrong_kboard_jmpbuf. 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. ++ (wrong_kboard_jmpbuf): Remove global variable. ++ (read_key_sequence): Remove unused variable wrong_kboard_jmpbuf. ++ Handle deleted interrupted_kboards correctly; that is a legal ++ case. Add `wrong_kboard_jmpbuf' local variable. Update setjmp ++ and read_char calls. Abort if interrupted_kboard died in ++ read_char. ++ (any_kboard_state, single_kboard_state) ++ (push_frame_kboard): Remove function. ++ (pop_kboard): Switch out of single_kboard mode if the kboard has ++ been deleted. Remove unused variable. Help debugging by not ++ changing current_kboard unnecessarily. Set current_kboard to the ++ kboard of the selected frame when the stored kboard object has ++ been deleted before pop_kboard. ++ (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. Don't push_kboard if we weren't in ++ single kboard state. Don't pop_kboard if we popped into any ++ kboard state. ++ (restore_kboard_configuration): Abort if pop_kboard changed the ++ kboard in single_kboard mode. Call pop_kboard only after setting ++ up 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'. ++ (delete_kboard): Exit single_kboard mode if we have just deleted ++ that kboard. Use FRAME_KBOARD. ++ (interrupt_signal): Use `Fkill_emacs' to exit Emacs, not ++ `fatal_error_signal'. ++ (record_single_kboard_state): Don't push_kboard if we weren't in ++ single kboard state. Don't pop_kboard if we popped into any ++ kboard state. ++ (push_frame_kboard): Rename to push_kboard. ++ (kbd_buffer_get_event): Use FRAME_TERMINAL. ++ (read_avail_input): Read input from all terminals. ++ (mark_kboards): Also mark Vkeyboard_translate_table. ++ (kbd_buffer_store_event_hold): Simplify condition. ++ (read_key_sequence): Reinitialize fkey and keytran at each replay. ++ (Vkeyboard_translate_table): Move to struct kboard. ++ (init_kboard): Initialize Vkeyboard_translate_table. ++ (syms_of_keyboard): Use DEFVAR_KBOARD to define ++ Vkeyboard_translate_table. Update doc strings. Update docs of ++ local-function-key-map and function-key-map. ++ ++ * terminal.c: New file. ++ ++ * term.c: Include errno.h. ++ (Vring_bell_function, device_list, initial_device) ++ (next_device_id, ring_bell, update_begin, update_end) ++ (set_terminal_window, cursor_to, raw_cursor_to) ++ (clear_to_end, clear_frame, clear_end_of_line) ++ (write_glyphs, insert_glyphs, delete_glyphs, ins_del_lines) ++ (Fdisplay_name, create_device, delete_device): Move to terminal.c. ++ (syms_of_term): Move their initialization to terminal.c. ++ (get_tty_terminal, Fdisplay_tty_type, Ftty_display_color_p) ++ (Ftty_display_color_cells) ++ (Ftty_no_underline, Fsuspend_tty, Fresume_tty, create_tty_output) ++ (init_tty, maybe_fatal): New functions. ++ (Ftty_type): Return nil if terminal is not on a tty instead of ++ throwing an error. Doc update. ++ (syms_of_term) : ++ Doc update. Initialize new subrs and variables. ++ (delete_tty): Use terminal->deleted. ++ (tty_set_terminal_modes): Rename from set_terminal_modes. ++ (tty_reset_terminal_modes): Rename from reset_terminal_modes. ++ (set_scroll_region): Rename to `tty_set_scroll_region'. ++ (turn_on_insert): Rename to `tty_turn_on_insert'. ++ (turn_off_insert): Rename to `tty_turn_off_insert'. ++ (turn_off_highlight): Rename to `tty_turn_off_highlight'. ++ (turn_on_highlight): Rename to `tty_turn_on_highlight'. ++ (toggle_highligh): Rename to `tty_toggle_highlight'. ++ (background_highlight): Rename to `tty_background_highlight'. ++ (highlight_if_desired): Rename to `tty_highlight_if_desired'. ++ (tty_ring_bell, tty_update_end, tty_set_terminal_window) ++ (tty_set_scroll_region, tty_background_highlight) ++ (tty_cursor_to, tty_raw_cursor_to, tty_clear_to_end) ++ (tty_clear_frame, tty_clear_end_of_line, tty_write_glyphs) ++ (tty_insert_glyphs, tty_delete_glyphs, tty_ins_del_lines) ++ (term_get_fkeys, tty_setup_colors, dissociate_if_controlling_tty): ++ Add static modifier. ++ (tty_reset_terminal_modes, tty_set_terminal_window) ++ (tty_set_scroll_region, tty_background_highlight) ++ (tty_highlight_if_desired, tty_cursor_to) ++ (tty_raw_cursor_to, tty_clear_to_end, tty_clear_frame) ++ (tty_clear_end_of_line, tty_write_glyphs, tty_insert_glyphs) ++ (tty_delete_glyphs, tty_ins_del_lines, turn_on_face): Update for ++ renames. ++ +2007-08-28 Jan Dj,Ad(Brv + + * keyboard.c: Qrtl is new. + (parse_tool_bar_item): Handle :rtl keyword. + (syms_of_keyboard): Intern :rtl keyword. + + * dispextern.h (enum tool_bar_item_idx): Add TOOL_BAR_ITEM_RTL_IMAGE. + + * gtkutil.c (xg_tool_bar_expose_callback): Just do SET_FRAME_GARBAGED + so no Lisp code is executed. + (file_for_image, find_rtl_image): New functions. + (xg_get_image_for_pixmap): Use file_for_image + (update_frame_tool_bar): If direction is RTL, use RTL image if + defined. Use Gtk stock images if defined. + 2007-08-27 YAMAMOTO Mitsuharu * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle