[WINDOWSNT]: Don't include sysselect.h
[bpt/emacs.git] / src / ChangeLog
index 3962c17..87e7618 100644 (file)
@@ -1,3 +1,858 @@
+2007-09-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * sysdep.c [WINDOWSNT]: Don't include sysselect.h
+
+2007-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * s/cygwin.h (GC_MARK_STACK): Enable conservative stack marking.
+
+       * frame.c (x_set_frame_parameters): Check number is positive before
+       using XFASTINT.
+
+       * window.c (freeze_window_start): Don't presume selected_window holds
+       a window object.
+       (Fdisplay_buffer): Remove `register' since `buffer' needs to be gcpro'd.
+
+2007-09-07  Angelo Graziosi <Angelo.Graziosi@roma1.infn.it>  (tiny change)
+
+       * term.c (dissociate_if_controlling_tty): Call setsid on CYGWIN.
+
+2007-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * window.c (Vsplit_window_preferred_function): New var.
+       (Fdisplay_buffer): Use it.
+       (syms_of_window): Export, and initialize it.
+
+2007-09-06  Pixel  <pixel@mandriva.com>  (tiny change)
+
+       * image.c (gif_load): Fix bug: Handle nonexistent colormap.
+
+2007-09-06  Glenn Morris  <rgm@gnu.org>
+
+       * gtkutil.c (menu_grab_callback) <cnt>:
+       * xselect.c (x_reply_selection_request) <cnt>: Move static
+       variable to file scope.
+
+2007-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xdisp.c (redisplay_internal): Make sure Elisp code always sees
+       consistent values of selected_frame and selected_window.
+
+2007-09-04  Jason Rumney  <jasonr@gnu.org>
+
+       * w32console.c (initialize_w32_display): Zero unused hooks.
+
+2007-09-04  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * term.c (Vsuspend_tty_functions, Vresume_tty_functions)
+       (syms_of_term, Fsuspend_tty, Fresume_tty): Undo previous change.
+
+2007-09-04  Jason Rumney  <jasonr@gnu.org>
+
+       * term.c (init_tty) [WINDOWSNT]: Add hooks that are not accessible
+       in w32console.c.  Set up input.  Remove XXX comments that have been
+       confirmed as correct.
+
+       * s/ms-w32.h (MULTI_KBOARD): Define.
+
+       * w32console.c (one_and_only_w32cons): Remove.
+       (initialize_w32_display): Take terminal argument.
+
+       * term.c (init_tty) [WINDOWSNT]: Pass terminal to
+       initialize_w32_display.
+       (init_tty) [MULTI_KBOARD]: Include this code on WINDOWSNT too.
+
+       * termhooks.h (enum event_kind) <HORIZ_WHEEL_EVENT>: New event.
+
+       * keyboard.c (discard_mouse_events): Discard it.
+       (make_lispy_event): Translate it to a lisp event.
+       (lispy_wheel_names): Add wheel-left and right events.
+       (syms_of_keyboard): Enlarge wheel_syms.
+
+       * w32fns.c (w32_wnd_proc) <WM_DROPFILES>: Merge with WM_MOUSEWHEEL.
+       <WM_MOUSEHWHEEL>: Pass new system message to lisp.
+
+       * w32term.h (WM_MOUSEHWHEEL): Define if system headers don't.
+
+       * w32term.c (construct_mouse_wheel): Make HORIZ_WHEEL_EVENT
+       from WM_MOUSEHWHEEL.
+       (w32_read_socket) <WM_MOUSEHWHEEL>: Treat as WM_MOUSEWHEEL.
+
+       * w32fns.c (x_create_tip_frame) [MULTI_KBOARD]: Get keyboard from
+       terminal.
+
+       * w32term.c (w32_create_terminal) [MULTI_KBOARD]: Create a new
+       keyboard for the terminal.
+
+2007-09-04  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * term.c (Vsuspend_tty_hook): Rename from Vsuspend_tty_functions.
+       (Vresume_tty_hook): Rename from Vresume_tty_functions.
+       (syms_of_term): Rename suspend-tty-functions to suspend-tty-hook
+       and resume-tty-function to resume-tty-hook.
+       (Fsuspend_tty, Fresume_tty): Use new names.
+
+2007-09-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (update_frame_tool_bar): Handle stock name as a named icon
+       if it starts with "n:".
+
+2007-08-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (update_frame_tool_bar): Initialize wbutton to NULL.
+
+2007-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * frame.h:
+       * frame.c (Qterm_environment_variable): Remove.
+       (syms_of_frame): Don't init and staticpro it.
+
+
+       * callproc.c (getenv_internal): Remove special case for $TERM.
+
+       * callproc.c (Vinitial_environment): New variable.
+       (set_initial_environment): Initialize it.
+       (syms_of_callproc): Declare it.
+       (child_setup): Don't mess with TERM via Qterm_environment_variable; the
+       TERM under which a process runs is never related to the TERM in which
+       Emacs is running.
+
+2007-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * config.in (HAVE_WINDOW_SYSTEM): Don't undef MULTI_KBOARD here...
+       * s/darwin.h: ... do it here.
+
+2007-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (set_initial_environment): Rename from set_global_environment.
+
+       * Makefile.in (${etc}DOC): Re-add a ${EXEEXT} which seems to have been
+       removed by mistake on the multi-tty branch.
+
+       * frame.c (make_terminal_frame): Yet Another Int/Lisp_Object Mixup.
+       (Fmodify_frame_parameters): Return a value.
+
+       * image.c (png_load): Comment-out var only used in commented-out code.
+
+       * term.c (mark_ttys): Don't bother checking top_frame (incorrectly)
+       before passing it to mark_object.
+
+       * xfaces.c (internal_resolve_face_name): Return a value.
+       (internal_resolve_face_name, resolve_face_name_error): Comment out.
+
+       * xfns.c (check_x_display_info): Yet Another Int/Lisp_Object Mixup.
+       (x_icon): Comment-out var only used in commented-out code.
+
+2007-08-29  Romain Francoise  <romain@orebokech.com>
+
+       * keyboard.c (Fset_input_mode): Don't call `Fset_quit_char' if
+       QUIT hasn't been provided.
+
+2007-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * 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.
+       (mac_initialize): Delete declaration.
+
+       * puresize.h (BASE_PURESIZE): Increase base value to 1164000.
+
+       * 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  <jasonr@gnu.org>
+
+       * 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  <kon@iki.fi>  (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  <ari@mbf.ocn.ne.jp>  (tiny change)
+
+       * term.c (dissociate_if_controlling_tty)[USG]: Fix parse error.
+
+2007-08-29  Yoshiaki Kasahara  <kasahara@nc.kyushu-u.ac.jp>  (tiny change)
+
+       * term.c (tty_insert_glyphs): Add missing first parameter.
+
+2007-08-29  Karoly Lorentey  <karoly@lorentey.hu>
+
+       * 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, and 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) <terminal>: 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 vars.
+       (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) <Vsuspend_tty_functions, Vresume_tty_functions>:
+       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\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * 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  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle
+       for nonexistent or zero-width glyph in composition glyph.
+
+2007-08-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * m/amdx86-64.h: Redirect to intel386.h if compiling for i386.
+
+       * xdisp.c (Finvisible_p): New function.
+       (syms_of_xdisp): defsubr it.
+
+2007-08-24  Juanma Barranquero  <lekktu@gmail.com>
+
+       * image.c (syms_of_image) <image-library-alist, cross-disabled-images>:
+       Doc fixes.
+
+2007-08-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * mac.c [MAC_OSX] (select_and_poll_event, sys_select): Fix last changes.
+
+2007-08-24  Martin Rudalics  <rudalics@gmx.at>
+
+       * fileio.c (Finsert_file_contents): Consult CHARS_MODIFF to tell
+       whether decoding has modified buffer contents.
+
+2007-08-24  Jason Rumney  <jasonr@gnu.org>
+
+       * image.c [HAVE_NTGUI]: Define dynamic loaded functions for SVG.
+       (Qgdk_pixbuf, Qglib) [HAVE_NTGUI]: New symbols.
+       (syms_of_image) [HAVE_NTGUI]: Intern and staticpro them.
+       (init_svg_functions) [HAVE_NTGUI]: New function.
+       (fn_g_type_init, fn_g_object_unref, fn_g_error_free): New #defines.
+       (svg_load_image): Use them.
+       (svg_load_image) [HAVE_NTGUI]: Implement background.
+
+2007-08-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * Makefile.in (RSVG_LIBS, RSVG_CFLAGS): New variables.
+       (ALL_CFLAGS): Use ${RSVG_CFLAGS} instead of @RSVG_CFLAGS@.
+       (LIBX): Remove @RSVG_LIBS@.
+       (LIBES): Add $(RSVG_LIBS).
+
+       * image.c (svg_load_image): Blend with specified background if exists.
+       Use IMAGE_BACKGROUND.  Add Mac OS Support.
+
+       * mac.c (wakeup_from_rne_enabled_p) [MAC_OSX]: Remove variable.
+       (ENABLE_WAKEUP_FROM_RNE, DISABLE_WAKEUP_FROM_RNE) [MAC_OSX]:
+       Remove macros.
+       [MAC_OSX] (socket_callback): Do nothing.
+       [MAC_OSX] (select_and_poll_event): Use CFRunLoopRunInMode instead of
+       ReceiveNextEvent.
+       [MAC_OSX] (sys_select): Likewise.  Don't set context as argument to
+       socket_callback.
+       (mac_wakeup_from_rne) [MAC_OSX]: Do nothing.
+
+2007-08-22  Glenn Morris  <rgm@gnu.org>
+
+       * image.c (x_find_image_file): Search in etc/images/ rather than etc/.
+
+2007-08-22  Paul Pogonyshev  <pogonyshev@gmx.net>
+
+       * Makefile.in (ALL_CFLAGS, LIBX): Add RSVG_LIBS.
+
+       * image.c: Add support for SVG images.  Some additional comments
+       by Joakim Verona <joakim@verona.se>.  When HAVE_RSVG is defined:
+       (svg_image_p): New function to test for SVG image.
+       (svg_load): New function to load SVG image.
+       (svg_load_image): New function, helper for svg_load.
+       (Qsvg): New Lisp_object.
+       (svg_keyword_index): New enum.
+       (svg_format): New static `image_keyword' struct.
+       (svg_type): New static `image_type' struct.
+       (librsvg/rsvg.h): Include it.
+
+2007-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c (load_warn_old_style_backquotes): Fix up array size typo.
+
+2007-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c (Qold_style_backquotes): New var.
+       (syms_of_lread): Init and staticpro it.
+       (load_warn_old_style_backquotes): New fun.
+       (Fload): Use them to warn about old style backquotes.
+       (end_of_file_error, Fload): Remove unused vars.
+
+       * lisp.h (Fclear_face_cache, Fx_send_client_event): Declare.
+
+       * lread.c (Vold_style_backquotes): New var.
+       (syms_of_lread): Init and export it to Elisp.
+       (read1): Set it when we find an old-style (back)quote.
+
+2007-08-22  Jason Rumney  <jasonr@gnu.org>
+
+       * w32reg.c (SYSTEM_DEFAULT_RESOURCES): Add missing NULL terminator.
+
+2007-08-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * puresize.h (BASE_PURESIZE): Increase to 1140000.
+
 2007-08-19  Richard Stallman  <rms@gnu.org>
 
        * eval.c (Ffunction, Fquote): Signal error if not 1 argument.
        For consistency, run after_insert_file_functions iff something
        got inserted.  Move signal_after_change and update_compositions
        after code running after_insert_file_functions.  Make sure that
-       undo_list doesn't record intermediate steps of the decoding
-       process.
+       undo_list doesn't record intermediate steps of the decoding process.
 
 2007-08-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        (mac_valid_selection_target_p): Rename from valid_scrap_target_type_p.
        (mac_clear_selection): Rename from clear_scrap.
        (get_flavor_type_from_symbol): New argument SEL and subsume function of
-       scrap_has_target_type.   All uses changed.
+       scrap_has_target_type.  All uses changed.
        (mac_get_selection_ownership_info, mac_valid_selection_value_p)
        (mac_selection_has_target_p): New functions.
        (mac_put_selection_value): Rename from put_scrap_string.
 2007-07-17  Glenn Morris  <rgm@gnu.org>
 
        * abbrev.c (abbrev_check_chars): New function.
-       (Fdefine_global_abbrev, Fdefine_mode_abbrev): Call
-       abbrev_check_chars to check abbrev characters are word
+       (Fdefine_global_abbrev, Fdefine_mode_abbrev):
+       Call abbrev_check_chars to check abbrev characters are word
        constituents.  Doc fix.
 
 2007-07-17  Stefan Monnier  <monnier@iro.umontreal.ca>