2007-09-25  Jason Rumney  <jasonr@gnu.org>

	* frame.c (make_terminal_frame): Remove special case for WINDOWSNT.

	* w32console.c (create_w32cons_output): Remove.

	* term.c (init_tty): Call init_sys_modes on WINDOWSNT also.

	* sysdep.c (init_sys_modes): Use set_terminal_modes_hook.
	(reset_sys_modes): Use reset_terminal_modes_hook.

2007-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* eval.c (do_autoload): Don't output any message.

2007-09-24  Juri Linkov  <juri@jurta.org>

	* emacs.c (standard_args): Change priority of "--no-splash"
	from 40 to 3.  Add "--no-desktop" with the same priority.

2007-09-23  Dmitry Antipov  <dmantipov@yandex.ru>

	* alloc.c (gc_sweep): Check cons cell mark bits word by word
	and optimize the case where they are all 1.

2007-09-23  Johannes Weiner  <hannes@saeurebad.de>

	* lisp.h (abs): Define if not defined.
	* keyboard.c, sound.c, w32term.c, xfaces.c, xterm.c:
	Don't define `abs', since it's defined in lisp.h.

2007-09-22  Eli Zaretskii  <eliz@gnu.org>

	* term.c (DEV_TTY): New macro.  Provide a definition for
	MS-Windows.
	(FRAME_TERMCAP_P) [WINDOWSNT]: Don't define to zero.
	(Fcontrolling_tty_p, Fresume_tty, dissociate_if_controlling_tty)
	(init_tty): Use DEV_TTY instead of "/dev/tty".
	[WINDOWSNT]: No need to protect from NAME arg being null.

2007-09-21  Dan Nicolaescu  <dann@ics.uci.edu>

	* term.c (Fsuspend_tty): Run suspend-tty-functions before cleaning
	up the tty state.

2007-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* termhooks.h (term_gpm): Delete.  Use gpm_tty's NULLness instead.
	(gpm_tty): Change its type.
	* term.c (term_gpm): Delete.  Use gpm_tty's NULLness instead.
	(gpm_tty): Change its type and initialize it.
	(Fterm_open_connection): Check the frame is indeed a tty.
	Use the new gpm_tty.
	(Fterm_close_connection): Use the new gpm_tty.
	* keyboard.c (tty_read_avail_input): Use the new gpm_tty.
	* sysdep.c (init_sys_modes): term_gpm -> gpm_tty.

2007-09-21  Juanma Barranquero  <lekktu@gmail.com>

	* w32term.c (x_draw_glyph_string): Use strike_through_color, not
	underline_color, to draw strike-through.

2007-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp.h (allocate_terminal): Declare.

	* window.c (candidate_window_p): Consider frames that are being placed
	by the user as somewhere between visible and iconified.
	(window_loop): Prefer windows on the current frame.
	(Fselect_window): Move the use of select-frame to the beginning so we
	can just delegate all the work (it'll call us back anyway).

	* frame.c (Qdisplay_environment_variable):
	* frame.h (Qdisplay_environment_variable): Delete.

	* .gdbinit (xbacktrace): Print the arg's address rather than the value
	of the first arg, since that value may be a union.

	* callproc.c (child_setup, getenv_internal): Use the frame's `display'
	parameter rather than Qdisplay_environment_variable.  If all else
	fails, look for DISPLAY in initial-environment.

2007-09-21  Glenn Morris  <rgm@gnu.org>

	* Makefile.in (emacstool): Remove target.
	(lisp, shortlisp): Remove termdev.elc.

2007-09-21  Markus Triska  <markus.triska@gmx.at>

	* xterm.c (x_delete_display): Compile session management conditionally.

2007-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* callproc.c (getenv_internal_1): New function.
	(getenv_internal): Use it.
	(Fgetenv_internal): Use it.  Accept an env-list as optional arg.

	* terminal.c (get_terminal): Don't accept ints to represent terminals.
	(Fterminal_name, Fterminal_parameters, Fterminal_parameter)
	(Fset_terminal_parameter): Work with dead terminals as well.
	(Fmodify_terminal_parameters): Remove.

	* terminal.c (get_terminal): Handle terminals.
	Make sure the terminal returned is live.
	(create_terminal): Use allocate_terminal.
	(mark_terminals): Move to alloc.c.
	(delete_terminal): Use terminal->name as liveness status.
	NULL out fields after freeing their contents.
	Don't deallocate the object.
	(Fframe_terminal): Use FRAME_TERMINAL.  Return the terminal object
	rather than an int.
	(Fterminal_live_p): Accept non-integer arguments.
	(Fterminal_list): Return terminal objects rather than an ints.

	* alloc.c (enum mem_type): New member for `terminal' objects.
	(allocate_terminal): New function.
	(mark_maybe_pointer, valid_lisp_object_p, mark_object):
	Handle terminals.
	(mark_terminal): New fun.
	(mark_terminals): Move from terminal.c.

	* term.c (get_tty_terminal): Don't treat output_initial specially.
	(Fsuspend_tty, Fresume_tty): Use terminal objects rather than ints.
	(delete_tty): Use terminal->name as liveness status.

	* termhooks.h (struct terminal): Make it into a pseudovector.
	Remove `deleted' replaced by checking `name's nullness.

	* print.c (print_object): Handle terminals.

	* lisp.h (enum pvec_type): New `terminal' pseudovector.
	(XTERMINAL, XSETTERMINAL, TERMINALP, GC_TERMINALP): New macros.

	* frame.c (make_terminal_frame):
	* keyboard.c (tty_read_avail_input):
	* w32term.c (x_delete_terminal):
	* xfns.c (Fx_create_frame, x_create_tip_frame):
	* xterm.c (x_delete_terminal): Use terminal->name as liveness status.

2007-09-20  Glenn Morris  <rgm@gnu.org>

	* process.c (Fmake_network_process): Doc fix.

2007-09-19  Jason Rumney  <jasonr@gnu.org>

	* dispextern.h (w32_init_fringe, mac_init_fringe): Declare rif argument.

2007-09-19  Micha,Ak(Bl Cadilhac  <michael@cadilhac.name>

	* coding.c (detect_eol_type, detect_eol_type_in_2_octet_form):
	Fix a C warning regarding variable constness.

	* xterm.c (handle_one_xevent): Fix a C warning.

2007-09-18  Jason Rumney  <jasonr@gnu.org>

	* w32fns.c (Fx_focus_frame): Rename from Fw32_focus_frame.

2007-09-17  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* gtkutil.c (gdpy_def): New variable.
	(xg_initialize): Initialize gdpy_def.
	(xg_display_close): If no other display exists, set gdpy_def to a
	new connection.

2007-09-16  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf
	when we have no file name for the icon.
	(xg_tool_bar_expose_callback): Remove.
	(xg_create_tool_bar): Don't connect expose signal to
	xg_tool_bar_expose_callback.
	(xg_get_file_with_chooser): Move GCPRO1 after declarations.

2007-09-16  Andreas Schwab  <schwab@suse.de>

	* alloc.c (reset_malloc_hooks): Set the hooks to the previous
	values instead of zapping them.

2007-09-14  Glenn Morris  <rgm@gnu.org>

	* fringe.c (init_fringe_bitmap) <swap_nibble>: Move to file scope.
	* gtkutil.c (xg_separator_p) <separator_names>: Move to file scope.
	* image.c (our_memory_fill_input_buffer) <buffer>: Move to file
	scope and rename to omfib_buffer for clarity.
	(gif_load) <interlace_start, interlace_increment>: Move to file scope.

2007-09-14  Kenichi Handa  <handa@m17n.org>

	* xterm.c (handle_one_xevent): Skip decoding if nbytes is zero.

2007-09-13  Jason Rumney  <jasonr@gnu.org>

	* fringe.c (w32_init_fringe, mac_init_fringe): Add rif argument.

	* w32term.c (w32_term_init): Pass rif to w32_init_fringe.

	* macterm.c (mac_initialize): Don't call mac_init_fringe here.
	(mac_term_init): Call here instead, passing rif.

2007-09-13  Glenn Morris  <rgm@gnu.org>

	* s/hpux.h: No longer define `static' as nothing.

2007-09-13  Johan Bockg,Ae(Brd  <bojohan@gnu.org>

	* callint.c (Fcall_interactively): Remove unused var `fun'.

2007-09-12  Romain Francoise  <romain@orebokech.com>

	* window.c (prefer_window_split_horizontally, display_buffer):
	Revert 2007-09-08 change.

2007-09-12  Glenn Morris  <rgm@gnu.org>

	* alloca.c: Remove file.
	* Makefile.in (alloca): Do not undef.
	(allocaobj, alloca.o): Remove.
	(otherobj): Remove allocaobj.
	* keyboard.c (command_loop_1): Remove #ifdef C_ALLOCA block.
	* regex.c (C_ALLOCA): Remove all references and code that was only
	used when this was defined.
	* search.c (boyer_moore): Remove #ifdef C_ALLOCA block.
	* xmenu.c (xmenu_show): Remove #ifdef C_ALLOCA block.
	* m/ibms390x.h, m/sh3el.h (C_ALLOCA): Remove references to this.

	* Makefile.in (SOURCES, unlock, relock): Delete.

	* gtkutil.c (cnt): Rename to menu_grab_callback_cnt for clarity.
	(menu_grab_callback): All uses changed.

	* xselect.c (cnt): Rename to x_reply_selection_request_cnt for clarity.
	(x_reply_selection_request): All uses changed.

2007-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lread.c (load_warn_old_style_backquotes): Change message to look
	better when it appears in the middle of byte-compiler messages.

2007-09-10  Dan Nicolaescu  <dann@ics.uci.edu>

	* s/darwin.h (MULTI_KBOARD): Only define for Carbon.

	* xterm.c (x_create_terminal): Add comment.

	* term.c (clear_tty_hooks, set_tty_hooks): Add comments.

2007-09-10  Richard Stallman  <rms@gnu.org>

	* xterm.c (x_term_init): Give error if can't open DISPLAY_NAME.

2007-09-10  Micha,Ak(Bl Cadilhac  <michael@cadilhac.name>

	* lisp.h (struct Lisp_Subr): Rename `prompt' field to `intspec'.
	(DEFUN): Document `intspec', use it instead of `prompt'.

	* eval.c (Fcommandp): Change `->prompt' to `->intspec'.

	* data.c (Finteractive_form): If the interactive specification starts
	with a `(', use it as a Lisp form.

	* fileio.c (Fset_file_modes): Add an interactive spec that reads a file
	name and file modes.

	* callint.c (Fcall_interactively): Comment fixes.

2007-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* callint.c (Fcall_interactively): Use Finteractive_form also for subrs
	and compiled functions.

2007-09-08  Fredrik Axelsson  <f.axelsson@gmail.com>

	* window.c (prefer_window_split_horizontally): New variable.
	(display_buffer): Consider splitting window horizontally depending
	on prefer_window_split_horizontally.

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,Ad(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,Ad(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): Use 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.
	(deleting_tty): Remove old variable.
	(Fsuspend_tty): Call clear_tty_hooks.
	(Fresume_tty, init_tty): Call set_tty_hooks.
	(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_terminal, x_create_terminal): 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.
	(x_set_frame_parameters, x_set_screen_gamma): Use FRAME_RIF.

	* 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)
	(clear_tty_hooks, set_tty_hooks)
	(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,Ad(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.

2007-08-19  Andreas Schwab  <schwab@suse.de>

	* alloc.c (pure): Round PURESIZE up.

2007-08-17  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* xterm.c (handle_one_xevent): Remove check that mouse click is in
	active frame.

2007-08-16  Richard Stallman  <rms@gnu.org>

	* eval.c (Fcommandp): Add parens to clarify.

	* minibuf.c (Fall_completions): Use enum for type of table.

	* emacs.c (USAGE2): Improve text.

2007-08-15  Philippe Waroquiers  <philippe.waroquiers@eurocontrol.int>

	* term.c (tty_default_color_capabilities): Declare static
	variables in file scope, to avoid HPUX compiler problem.

2007-08-13  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* gtkutil.c (update_frame_tool_bar): Use -1 as index
	to gtk_toolbar_insert.

2007-08-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* fileio.c (Finsert_file_contents): Yet Another Int/Lisp_Object Mixup.

	* insdel.c (reset_var_on_error): New fun.
	(signal_before_change, signal_after_change):
	Use it to reset (after|before)-change-functions to nil in case of error.
	Bind inhibit-modification-hooks to t.
	Don't bind (after|before)-change-functions to nil while they run.

2007-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* xterm.c (x_draw_image_glyph_string): Adjust stipple origin when
	filling pixmap with stippled background.

2007-08-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macterm.c [TARGET_API_MAC_CARBON] (mac_handle_window_event):
	Don't use invisible frame as parent window for repositioning.

2007-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* print.c (new_backquote_output): Rename from old_backquote_output.
	(print): Inverse its logic (according to its name) so as to match the
	behavior of new_backquote_flag in lread.c.

2007-08-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* gmalloc.c (posix_memalign): New function.

	* macterm.c (frame_highlight, frame_unhighlight): Don't call
	ActivateControl/DeactivateControl here.
	[USE_MAC_TOOLBAR] (free_frame_tool_bar): Suppress animation when
	frame-notice-user-settings is non-nil.
	[USE_MAC_FONT_PANEL] (mac_handle_font_event): Also record parameter
	for kEventParamFMFontStyle.
	[TARGET_API_MAC_CARBON] (mac_handle_keyboard_event): Don't check
	mac_pass_command_to_system and mac_pass_control_to_system here.
	(XTread_socket): Call ActivateControl/DeactivateControl here.
	(XTread_socket) [TARGET_API_MAC_CARBON]:
	Check mac_pass_command_to_system and mac_pass_control_to_system here.
	(mac_handle_window_event) [USE_MAC_TOOLBAR]: Add further workaround
	for window repositioning.

2007-08-08  Glenn Morris  <rgm@gnu.org>

	* Replace `iff' in doc-strings and comments.

2007-08-07  Chong Yidong  <cyd@stupidchicken.com>

	* xdisp.c (move_it_by_lines): Remove incorrect optimization.

2007-08-07  Martin Rudalics  <rudalics@gmx.at>

	* fileio.c (Finsert_file_contents): Run format-decode and
	after_insert_file_functions on entire buffer when REPLACE is
	non-nil and inhibit modification_hooks and point_motion_hooks.
	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.

2007-08-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* emacs.c (main)
	[HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
	Call malloc_enable_thread on interactive startup.

	* gmalloc.c (_malloc_thread_enabled_p) [USE_PTHREAD]: New variable.
	(LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS)
	[USE_PTHREAD]: Conditionalize with it.
	(malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
	(malloc_atfork_handler_child, malloc_enable_thread) [USE_PTHREAD]:
	New functions.

2007-08-06  Chong Yidong  <cyd@stupidchicken.com>

	* xdisp.c (redisplay_window): When restoring original buffer
	position, make sure it is still valid.

	* image.c (png_load): Ignore png-supplied background color.

2007-08-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* mac.c [TARGET_API_MAC_CARBON] (cfdate_to_lisp): Obtain microsec value.
	Use kCFAbsoluteTimeIntervalSince1970.

	* macmenu.c (quit_dialog_event_loop) [TARGET_API_MAC_CARBON]:
	New variable.
	[TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Set it if dialog
	event loop should be quit.
	[TARGET_API_MAC_CARBON] (create_and_show_dialog) [!MAC_OSX]:
	Quit dialog event loop if quit_dialog_event_loop is set.

	* macselect.c [!TARGET_API_MAC_CARBON]: Include Scrap.h.
	(Selection): New typedef.  Use instead of ScrapRef.
	(mac_get_selection_from_symbol): Rename from get_scrap_from_symbol.
	(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.
	(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.
	(mac_get_selection_value): Rename from get_scrap_string.
	(mac_get_selection_target_list): Rename from get_scrap_target_type_list.
	(put_scrap_private_timestamp, scrap_has_target_type)
	(get_scrap_private_timestamp): Remove functions.
	(SCRAP_FLAVOR_TYPE_EMACS_TIMESTAMP): Remove define.
	(x_own_selection, x_get_local_selection):
	Use mac_valid_selection_value_p.
	(x_own_selection): Don't use put_scrap_private_timestamp.
	Record OWNERSHIP-INFO into Vselection_alist instead.
	(x_get_local_selection): Don't check type if request is local.
	(Fx_selection_owner_p): Don't use get_scrap_private_timestamp.
	Detect ownership change with OWNERSHIP-INFO in Vselection_alist instead.

2007-08-04  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* gtkutil.c (xg_tool_bar_callback): Generate two TOOL_BAR_EVENT:s,
	add comment explaining why.

2007-08-03  Richard Stallman  <rms@gnu.org>

	* fileio.c (Fvisited_file_modtime): Use make_time.

2007-08-01  Ryo Yoshitake  <ryo@shiftmode.net>  (tiny change)

	* mac.c (init_mac_osx_environment): Adjust load-path on self-contained
	build.

2007-07-31  Stefan Monnier  <monnier@iro.umontreal.ca>

	* gtkutil.c (xg_tool_bar_callback): Generate a single TOOL_BAR_EVENT.

2007-07-30  Katsumi Yamaoka  <yamaoka@jpl.org>

	* puresize.h (BASE_PURESIZE): Increase to 1130000.

2007-07-30  Richard Stallman  <rms@gnu.org>

	* lread.c (readevalloop, read1): Treat NBSP as whitespace.

2007-07-29  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* gmalloc.c (__malloc_initialize): Remove pthread_once.  Not needed.

2007-07-28  Nick Roberts  <nickrob@snap.net.nz>

	* xdisp.c (decode_mode_spec): Use '@' instead of 'R' to test for
	remote default-directory.

	* buffer.c (mode-line-format): Update doc string.

2007-07-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* w32term.c (w32_draw_fringe_bitmap): Extend fringe background to
	scroll bar gap.
	(x_scroll_bar_create): Set bar->fringe_extended_p.
	(w32_set_vertical_scroll_bar): Put leftmost/rightmost scroll bars
	on frame edge.  Check fringe background extension.  Don't clear
	extended fringe background area.

	* w32term.h (struct scroll_bar): New member fringe_extended_p.
	(w32_fill_area): Enclose multiple statements with do ... while (0).

	* xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
	Extend fringe background to scroll bar gap.
	(x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]:
	Set bar->fringe_extended_p.
	(XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
	Put leftmost/rightmost scroll bars on frame edge.  Check fringe
	background extension.  Don't clear extended fringe background area.

	* xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
	New member fringe_extended_p.

2007-07-25  Glenn Morris  <rgm@gnu.org>

	* Relicense all FSF files to GPLv3 or later.

	* COPYING: Switch to GPLv3.

2007-07-25  Stefan Monnier  <monnier@iro.umontreal.ca>

	* eval.c (Fcommandp): Pay attention to the `interactive-form' property.

	* data.c (Finteractive_form): Check for the presence of an
	`interactive-form' symbol property more thoroughly.

	* data.c (Finteractive_form): Use an `interactive-form' property if
	present, analogous to the function-documentation property.

2007-07-24  Jason Rumney  <jasonr@gnu.org>

	* w32fns.c (x_real_positions): Get real position from OS instead of
	calculating it.

2007-07-23  Jason Rumney  <jasonr@gnu.org>

	* filelock.c (current_lock_owner): Allow for @ sign in username.

2007-07-22  Nick Roberts  <nickrob@snap.net.nz>

	* xdisp.c (decode_mode_spec): Add case 'R' for to test for
	remote default-directory.

	* buffer.c (mode-line-format): Describe above case in doc string.

2007-07-20  Eli Zaretskii  <eliz@gnu.org>

	* w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32):
	Define if not defined.

2007-07-18  Jason Rumney  <jasonr@gnu.org>

	* w32proc.c (w32_executable_type): Handle 64 bit executables.

2007-07-18  Richard Stallman  <rms@gnu.org>

	* data.c (Fsetq_default): Doc fix.

	* eval.c (Fsetq): Doc fix.

2007-07-18  Juanma Barranquero  <lekktu@gmail.com>

	* coding.c (Ffind_operation_coding_system):
	* eval.c (For, Fand): Doc fixes.
	Reported by Johan Bockg,Ae(Brd.

2007-07-18  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* xfns.c (Fx_focus_frame): Call x_ewmh_activate_frame.

	* xterm.h: Declare x_ewmh_activate_frame.

	* xterm.c (x_ewmh_activate_frame): New function.
	(XTframe_raise_lower): Move code to x_ewmh_activate_frame.

2007-07-17  Martin Rudalics  <rudalics@gmx.at>

	* window.c (Fdisplay_buffer): If largest or LRU window is the
	only window, split it even if it is not eligible for splitting.
	This restores the original behavior broken by the 2007-07-15
	change.

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
	constituents.  Doc fix.

2007-07-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* process.c (Fstart_process, Fmake_network_process)
	(read_process_output): Fix up last changes.

2007-07-16  Eli Zaretskii  <eliz@gnu.org>

	* makefile.w32-in (clean): Don't delete *~.

2007-07-16  Andreas Schwab  <schwab@suse.de>

	* window.c (Fdisplay_buffer): Use NILP.
	(Fset_window_scroll_bars): Likewise.

2007-07-15  Martin Rudalics  <rudalics@gmx.at>

	* window.c (window_min_size_2): New function.
	(window_min_size_1, size_window, Fdisplay_buffer)
	(Fsplit_window, adjust_window_trailing_edge): Use it to avoid
	windows without mode- or header-lines when window-min-height is
	too small.
	(size_window): Reset nodelete_p after testing it, following an
	earlier note by Kim F. Storm.
	(display_buffer): Do not set split_height_threshold to twice the
	value of window_min_height to avoid changing the value of a
	customizable variable.  Rather explicitly check whether the
	height of the window that shall be splitted is at least as large
	as split_height_threshold.

2007-07-14  Jason Rumney  <jasonr@gnu.org>

	* process.c [WINDOWSNT]: Don't undefine AF_INET6.

2007-07-14  Richard Stallman  <rms@gnu.org>

	* eval.c (maybe_call_debugger): New function.
	(find_handler_clause): Use maybe_call_debugger.
	Call it when the handler says `debug'.
	Eliminate DEBUGGER_VALUE_PTR.
	(Fsignal): Eliminate debugger_value.
	(Qdebug): New variable.
	(syms_of_eval): Initialize it.

2007-07-14  Juanma Barranquero  <lekktu@gmail.com>

	* eval.c (Fprogn):
	* keyboard.c (Ftrack_mouse):
	* print.c (Fwith_output_to_temp_buffer):
	* window.c (Fsave_window_excursion): Doc fix.

2007-07-13  Stefan Monnier  <monnier@iro.umontreal.ca>

	* eval.c (init_eval_once): Bump max_lisp_eval_depth to 400.

2007-07-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* process.h (struct Lisp_Process): Turn slots infd, outfd,
	kill_without_query, pty_flag, tick, update_tick, decoding_carryover,
	inherit_coding_system_flag, filter_multibyte, adaptive_read_buffering,
	read_output_delay, and read_output_skip from Lisp_Objects to ints.
	Remove unused encoding_carryover.
	* process.c: Adjust all functions accordingly.

2007-07-12  Richard Stallman  <rms@gnu.org>

	* term.c: Include unistd.h only if HAVE_UNISTD_H.

2007-07-11  Jason Rumney  <jasonr@gnu.org>

	* makefile.w32-in (LIBS): Include OLE32.

	* w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
	(w32_msg_pump) <WM_DESTROY>: Uninitialize COM.

2007-07-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp.h (struct Lisp_Hash_Table): Turn next_weak into a bare pointer.
	* fns.c (weak_hash_tables): Rename from Vweak_hash_tables and turned
	from a Lisp_Object into a bare pointer.
	(make_hash_table, copy_hash_table, sweep_weak_hash_tables, init_fns):
	Adjust the code correspondingly.

	* alloc.c (emacs_blocked_free): Remove unused var `bytes_used_now'.

	* term.c: Include unistd.h for ttyname, used in handle_one_term_event.
	(term_show_mouse_face): Remove unused var `j'.
	(handle_one_term_event): Remove unused vars `i' and `j'.
	Don't cast return value of ttyname since it's not necessary.

2007-07-10  Stefan Monnier  <monnier@iro.umontreal.ca>

	* alloc.c (mark_maybe_pointer): Enforce mult-of-8 alignment when using
	USE_LSB_TAG.  Suggested by Dmitry Antipov <dmantipov@yandex.ru>.

	* fns.c (map_char_table): Use an array of int for `indices' rather than
	an array of Lisp_Objects (which are only ever integers anyway).
	(Fmap_char_table): Update caller.
	* lisp.h: Update prototype.
	* keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap):
	* fontset.c (Ffontset_info):
	* casetab.c (set_case_table): Update callers.

	* editfns.c (Ftranspose_regions): Use EMACS_INT for positions.

	* keymap.c (struct accessible_keymaps_data)
	(struct where_is_internal_data): New structures.
	(accessible_keymaps_1, where_is_internal_1): Use them to change
	interface to adhere to the one used by map_keymap.
	(Faccessible_keymaps, where_is_internal): Use map_keymap.
	(accessible_keymaps_char_table, where_is_internal_2): Remove.

	* keymap.h (map_keymap_function_t): More informative prototype.

2007-07-10  Guanpeng Xu  <herberteuler@hotmail.com>

	* search.c (Vinhibit_changing_match_data, search_regs_1): New vars.
	(looking_at_1): Don't change search_regs and last_thing_searched
	if `inhibit-changing-match-data' is non-nil.
	(string_match_1, search_buffer, set_search_regs): Likewise.
	(syms_of_search): Add Lisp level definition for
	`inhibit-changing-match-data' and set it to nil.
	(boyer_moore): If `inhibit-changing-match-data' is non-nil, compute
	start and end of the match, instead of using values in search_regs.

2007-07-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* minibuf.c (Fcompleting_read): New value `confirm-only'
	for `require-match'.

2007-06-28  Stefan Monnier  <monnier@iro.umontreal.ca>

	* fileio.c (Fdo_auto_save): Revert last patch installed unwillingly as
	part of the 2007-06-27 change to syms_of_fileio.

2007-06-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
	Check WINDOWP before using XWINDOW.  Consolidate return statements.

2007-06-27  Richard Stallman  <rms@gnu.org>

	* fileio.c (syms_of_fileio) <after-insert-file-functions>: Doc fix.

2007-06-27  Juanma Barranquero  <lekktu@gmail.com>

	* buffer.c (syms_of_buffer) <selective-display>: Fix typo in docstring.

2007-06-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* gmalloc.c [HAVE_GTK_AND_PTHREAD]: Check this after including config.h.
	(_aligned_blocks_mutex) [USE_PTHREAD]: New variable.
	(LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS): New macros.
	(_free_internal, memalign): Use them.
	(_malloc_mutex, _aligned_blocks_mutex) [USE_PTHREAD]:
	Initialize to PTHREAD_MUTEX_INITIALIZER.
	(malloc_initialize_1) [USE_PTHREAD]: Don't use recursive mutex.
	(morecore_nolock): Rename from morecore.  All uses changed.
	Use only nolock versions of internal allocation functions.
	(_malloc_internal_nolock, _realloc_internal_nolock)
	(_free_internal_nolock): New functions created from
	_malloc_internal, _realloc_internal, and _free_internal.
	(_malloc_internal, _realloc_internal, _free_internal): Use them.
	Copy hook value to automatic variable before its use.
	(memalign): Copy hook value to automatic variable before its use.

2007-06-26  Kenichi Handa  <handa@m17n.org>

	* coding.c (Ffind_operation_coding_system): Docstring improved.
	(syms_of_coding): Docstring of `file-coding-system-alist' improved.

2007-06-25  David Kastrup  <dak@gnu.org>

	* keymap.c (Fcurrent_active_maps): Add `position' argument.
	(Fwhere_is_internal): Adjust call to `current-active-maps' to
	cater for additional parameter.

	* keymap.h: Adjust number of parameters to `current-active-maps'.

	* doc.c (Fsubstitute_command_keys): Adjust call of
	`current-active-maps'.

2007-06-25  David Kastrup  <dak@gnu.org>

	* callint.c (Fcall_interactively): Make the parsing of interactive
	specs somewhat more readable.

2007-06-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macterm.c (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
	to scroll bar gap also when bitmap fills fringe.  Draw only foreground
	if extended background has already been filled.

2007-06-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macgui.h (USE_CG_DRAWING): Don't require USE_ATSUI.
	(USE_MAC_TOOLBAR): Require USE_CG_DRAWING.

	* macmenu.c (mac_dialog_modal_filter, Fx_popup_dialog) [MAC_OSX]:
	Put special treatment for Fmessage_box, Fyes_or_no_p, and Fy_or_n_p
	in #if 0 as it is not compatible with y-or-n-p-with-timeout.
	(timer_check) [TARGET_API_MAC_CARBON]: Add extern.
	[TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Use QuitEventLoop
	instead of QuitAppModalLoopForWindow.  Consolidate QuitEventLoop calls.
	(pop_down_dialog) [TARGET_API_MAC_CARBON]: New function.
	[TARGET_API_MAC_CARBON] (create_and_show_dialog): Use it for unwind.
	Run timers during dialog popup.
	(Fmenu_or_popup_active_p) [TARGET_API_MAC_CARBON]: Use popup_activated.

2007-06-21  Jason Rumney  <jasonr@gnu.org>

	* image.c (convert_mono_to_color_image): Swap fore and background.

2007-06-20  Jason Rumney  <jasonr@gnu.org>

	* w32bdf.c (w32_BDF_to_x_font): Unmap memory when finished.
	(w32_free_bdf_font): Unmap memory not handle.

2007-06-20  Sam Steingold  <sds@gnu.org>

	* gmalloc.c (__morecore): Fix the declaration to comply with the
	definition.

2007-06-20  Juanma Barranquero  <lekktu@gmail.com>

	* w32term.c (w32_delete_display): Remove leftover declaration.
	(w32_define_cursor, w32_initialize): Make static.

	* w32.c (_wsa_errlist): Fix typo in error message.
	(init_environment): Ignore any environment variable from the
	registry having a null value.

2007-06-20  Glenn Morris  <rgm@gnu.org>

	* Makefile.in (LIBGIF): Default to -lgif.

2007-06-17  Jason Rumney  <jasonr@gnu.org>

	* w32menu.c (add_menu_item): Don't use multibyte string functions on
	unicode strings.

2007-06-16  Juanma Barranquero  <lekktu@gmail.com>

	* xdisp.c (syms_of_xdisp) <auto-resize-tool-bars>:
	Fix typo in docstring.

2007-06-16  Eli Zaretskii  <eliz@gnu.org>

	* w32menu.c (add_menu_item): Escape `&' characters in menu items
	and their keybindings.

2007-06-15  Chong Yidong  <cyd@stupidchicken.com>

	* composite.c (update_compositions): Fix last fix.

2007-06-14  Jason Rumney  <jasonr@gnu.org>

	* w32.c (get_process_times_fn): New function pointer.
	(globals_of_w32): Intialize it if present in kernel32.dll.
	(w32_get_internal_run_time): New function.

	* editfns.c (Fget_internal_run_time) [WINDOWSNT]: Use it.

2007-06-14  Kenichi Handa  <handa@etlken.m17n.org>

	* composite.c (update_compositions): Check the validness of
	compositions.

2007-06-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* frame.h (struct frame) [MAC_OS]: New member external_tool_bar.
	(FRAME_EXTERNAL_TOOL_BAR) [MAC_OS]: Use it.

	* macfns.c (mac_window) [USE_MAC_TOOLBAR]: Set toolbar_win_gravity.
	(x_set_tool_bar_lines) [USE_MAC_TOOLBAR]: Set FRAME_EXTERNAL_TOOL_BAR.

	* macgui.h (USE_MAC_TOOLBAR): New define.

	* macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
	Return immediately unless popup is activated.

	* macterm.c (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
	background to scroll bar gap.
	(x_scroll_bar_create) [MAC_OSX]: Set bar->fringe_extended_p.
	(XTset_vertical_scroll_bar) [MAC_OSX]: Put leftmost/rightmost
	scroll bars on frame edge.  Check fringe background extension.
	Don't clear extended fringe background area.
	(TOOLBAR_IDENTIFIER, TOOLBAR_ICON_ITEM_IDENTIFIER)
	(TOOLBAR_ITEM_COMMAND_ID_OFFSET, TOOLBAR_ITEM_COMMAND_ID_P)
	(TOOLBAR_ITEM_COMMAND_ID_VALUE, TOOLBAR_ITEM_MAKE_COMMAND_ID):
	[USE_MAC_TOOLBAR]: New macros.
	(mac_move_window_with_gravity, mac_get_window_origin_with_gravity)
	(mac_handle_toolbar_event, mac_image_spec_to_cg_image)
	(mac_create_frame_tool_bar, update_frame_tool_bar, free_frame_tool_bar)
	(mac_tool_bar_note_mouse_movement, mac_handle_toolbar_command_event)
	[USE_MAC_TOOLBAR]: New functions.
	(mac_handle_window_event) [USE_MAC_TOOLBAR]: Reposition window
	manually if previous repositioning has failed.
	(mac_handle_keyboard_event): Use precomputed event kind.
	(XTread_socket) [USE_MAC_TOOLBAR]: Handle click in structure region
	as tool bar item click.  Handle mouse movement over tool bar items.

	* macterm.h (struct mac_output) [USE_MAC_TOOLBAR]: New member
	toolbar_win_gravity.
	(struct scroll_bar) [MAC_OSX]: New member fringe_extended_p.
	(update_frame_tool_bar, free_frame_tool_bar) [USE_MAC_TOOLBAR]:
	Add externs.

	* xdisp.c (update_tool_bar, redisplay_tool_bar, redisplay_window)
	[USE_MAC_TOOLBAR]: Sync with GTK+ tool bar display.

2007-06-14  Chong Yidong  <cyd@stupidchicken.com>

	* image.c (search_image_cache): Remove unused variable.

2007-06-13  Chong Yidong  <cyd@stupidchicken.com>

	* xfns.c, xmenu.c: Link to xaw3d if available.

2007-06-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* dispextern.h (struct image) [HAVE_WINDOW_SYSTEM]: New members
	frame_foreground and frame_background.

	* image.c (lookup_image): Save frame foreground and background colors.
	(search_image_cache): Check if saved and current frame colors match.

2007-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* regex.c (regex_compile): Remove the `regnum' counter.
	Use bufp->re_nsub instead.  Add support for \(?N:RE\).

2007-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>

	* term.c: Include intervals.h to declare Fget_text_property.

2007-06-10  Jason Rumney  <jasonr@gnu.org>

	* w32fns.c (Fx_file_dialog): Take size from struct not pointer.

2007-06-08  Juanma Barranquero  <lekktu@gmail.com>

	* callint.c (Fcall_interactively):
	* editfns.c (Fdelete_and_extract_region):
	* fileio.c (Fread_file_name):
	* fns.c (Fmapconcat):
	* keyboard.c (cmd_error_internal):
	* keymap.c (Fkey_description):
	* lread.c (openp):
	* minibuf.c (read_minibuf):
	* search.c (wordify):
	* sunfns.c (sel_read):
	* xdisp.c (Fformat_mode_line, syms_of_xdisp):
	* xfns.c (x_default_scroll_bar_color_parameter):
	* xmenu.c (menu_help_callback):
	* xselect.c (Fx_get_atom_name):
	* xterm.c (x_term_init): Use empty_unibyte_string.

2007-06-08  Dmitry Antipov  <dmantipov@yandex.ru>  (tiny change)

	* alloc.c (init_strings): Initialize canonical empty strings.
	(make_uninit_string, make_uninit_multibyte_string): Return appropriate
	canonical empty string when the requested size is 0.

	* emacs.c (empty_unibyte_string): Rename from empty_string.
	(empty_multibyte_string): New canonical empty string.
	(syms_of_emacs): Don't initialize empty_string.

	* lisp.h (STRING_SET_UNIBYTE): Return the canonical empty unibyte
	string, if appropriate.
	(empty_unibyte_string, empty_multibyte_string): New externs.
	(empty_string): Remove extern.

	* lread.c (syms_of_lread): Use empty_unibyte_string.

2007-06-07  Jason Rumney  <jasonr@gnu.org>

	* s/ms-w32.h: Don't define HAVE_TZNAME.

	* editfns.c (Fcurrent_time_zone): Remove hack for Japanese Windows.

2007-06-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* mac.c (xrm_get_preference_database): Remove BLOCK_INPUT.

	* macfns.c (mac_get_window_bounds): Move extern to macterm.h.
	(compute_tip_xy) [TARGET_API_MAC_CARBON]: Use GetGlobalMouse.

	* macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
	Don't call next handler.
	[TARGET_API_MAC_CARBON] (install_menu_target_item_handler):
	Remove argument.  Install handler to application.
	(set_frame_menubar): Don't change deep_p.
	(mac_menu_show): Use FRAME_OUTER_TO_INNER_DIFF_X and
	FRAME_OUTER_TO_INNER_DIFF_Y.
	(DIALOG_BUTTON_COMMAND_ID_OFFSET, DIALOG_BUTTON_COMMAND_ID_P)
	(DIALOG_BUTTON_COMMAND_ID_VALUE, DIALOG_BUTTON_MAKE_COMMAND_ID)
	[HAVE_DIALOGS]: New macros.
	[HAVE_DIALOGS] (mac_handle_dialog_event, create_and_show_dialog):
	Use them.
	(fill_menubar) [TARGET_API_MAC_CARBON]: Use CFString.

	* macselect.c [MAC_OSX] (install_service_handler): Rename from
	init_service_handler.  All callers changed.  Return OSStatus value.

	* macterm.c (mac_begin_cg_clip): New arg F.  Call SetPortWindowPort.
	All callers changed so as not to call SetPortWindowPort.
	(mac_begin_cg_clip) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
	(mac_draw_image_string_atsui) [USE_ATSUI]: New function created from
	mac_draw_string_common.
	(mac_draw_image_string_qd): Likewise.
	(mac_draw_string_common): Use them.  Add INLINE.
	(XTmouse_position, x_scroll_bar_report_motion) [TARGET_API_MAC_CARBON]:
	Use FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y, and
	GetGlobalMouse.
	(x_set_mouse_pixel_position) [MAC_OSX]: Use FRAME_OUTER_TO_INNER_DIFF_X
	and FRAME_OUTER_TO_INNER_DIFF_Y.
	[TARGET_API_MAC_CARBON] (mac_handle_mouse_event): Likewise.
	[USE_MAC_TSM] (mac_handle_text_input_event): Likewise.
	(x_make_frame_visible) [TARGET_API_MAC_CARBON]: Move code for
	repositioning window to mac_handle_window_event.
	(x_make_frame_invisible) [TARGET_API_MAC_CARBON]: Move code for
	saving window location to mac_handle_window_event
	[USE_MAC_FONT_PANEL] (mac_show_hide_font_panel): Install handler here.
	(install_menu_target_item_handler): Remove argument in extern.
	[TARGET_API_MAC_CARBON] (mac_event_to_emacs_modifiers):
	Also accept command events.
	(do_keystroke): New function created from XTread_socket.
	(init_command_handler): Remove functions.
	[TARGET_API_MAC_CARBON] (mac_handle_window_event): Reposition window
	and save window location by kEventWindowShowing and kEventWindowHiding
	handlers here.  Don't call next handler for window state change and
	focus events.
	(mac_handle_application_event, mac_handle_keyboard_event)
	[TARGET_API_MAC_CARBON]: New functions.
	(install_window_handler) [TARGET_API_MAC_CARBON]: Register handlers for
	kEventWindowShowing and kEventWindowHiding events.  Move installation
	of mouse, font, text input and menu target item handlers to
	install_application_handler.
	(install_application_handler) [TARGET_API_MAC_CARBON]: New function.
	(mac_handle_cg_display_reconfig) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
	New function.
	(init_dm_notification_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
	Register it.
	(XTread_socket) [TARGET_API_MAC_CARBON]:
	Consolidate SendEventToEventTarget calls.
	Use FRAME_OUTER_TO_INNER_DIFF_X and FRAME_OUTER_TO_INNER_DIFF_Y.
	Move application activation handler to mac_handle_application_event.
	Move keyboard handler to mac_handle_keyboard_event.
	(XTread_socket) [!TARGET_API_MAC_CARBON]: Use do_keystroke.
	(mac_initialize) [TARGET_API_MAC_CARBON]: Don't call
	init_command_handler.  Call install_application_handler.

	* macterm.h (mac_get_window_bounds): Move extern from macfns.c.
	(FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y): New macros.

2007-06-07  Glenn Morris  <rgm@gnu.org>

	* emacs.c (main): Use `emacs-copyright' in --version output.

2007-06-06  Chong Yidong  <cyd@stupidchicken.com>

	* image.c (xpm_load): Remove spurious call to xpm_init_color_cache.

2007-06-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macfns.c (mac_window): Replace WindowPtr with WindowRef.

	* macgui.h: Replace WindowPtr with WindowRef.

	* macmenu.c: Replace MenuHandle and GetMenuHandle with MenuRef and
	GetMenuRef, respectively.  Replace WindowPtr with WindowRef.
	Replace ControlHandle with ControlRef.
	(install_menu_quit_handler): Rename arg MENU_HANDLE to ROOT_MENU.

	* macterm.c: Replace MenuHandle and GetMenuHandle with MenuRef and
	GetMenuRef, respectively.  Replace WindowPtr with WindowRef.
	Replace ControlHandle with ControlRef.
	(USE_CARBON_EVENTS): Remove.  Use TARGET_API_MAC_CARBON instead.
	[MAC_OS8] (do_get_menus): Rename variable `menu_handle' to `menu'.

	* macterm.h (struct scroll_bar): Rename member control_handle_low
	and control_handle_high to control_ref_low and control_ref_high.
	All uses changed.
	(SCROLL_BAR_CONTROL_REF, SET_SCROLL_BAR_CONTROL_REF): Rename from
	SCROLL_BAR_CONTROL_HANDLE and SET_SCROLL_BAR_CONTROL_HANDLE,
	respectively.  All uses changed.
	(XCreatePixmap, XCreatePixmapFromBitmapData, XSetWindowBackground)
	(install_window_handler, remove_window_handler): Replace WindowPtr
	with WindowRef in externs.

2007-06-05  Juanma Barranquero  <lekktu@gmail.com>

	* xfaces.c (Finternal_lisp_face_p): Signal error for face alias loops.

2007-06-03  Nick Roberts  <nickrob@snap.net.nz>

	* keyboard.c (discard_mouse_events): Add GPM_CLICK_EVENT case.

	* frame.c (Fmouse_position, Fmouse_pixel_position):
	Condition on HAVE_GPM too.

	* term.c (term_mouse_highlight): Remove unused variables.
	(Fterm_open_connection): Set gpm_zerobased to 1.
	(term_mouse_movement, term_mouse_click, handle_one_term_event):
	Use zero based co-ordinates.
	(handle_one_term_event): Report a drag as mouse movement too.

	* Makefile.in (MOUSE_SUPPORT): Define for HAVE_GPM.

2007-06-03  Chong Yidong  <cyd@stupidchicken.com>

	* image.c (search_image_cache): New function.  Require background
	color match if background color is unspecified in the image spec.
	(uncache_image, lookup_image): Use it.

2007-06-01  Juanma Barranquero  <lekktu@gmail.com>

	* window.c (Fshrink_window): Reflow docstring.

2007-06-02  Chong Yidong  <cyd@stupidchicken.com>

	* Version 22.1 released.

2007-06-01  Richard Stallman  <rms@gnu.org>

	* xfns.c (x_encode_text): Add GCPRO.

2007-06-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* xfns.c (x_set_name_internal): Save encoded name before
	x_encode_text in case string data is relocated.

2007-05-31  Richard Stallman  <rms@gnu.org>

	* buffer.c (syms_of_buffer): Doc fix.

2007-05-30  Nick Roberts  <nickrob@snap.net.nz>

	* sysdep.c (init_sys_modes): Add rather than replace with
	O_NONBLOCK.

	* frame.c [HAVE_GPM] (Fset_mouse_pixel_position): Add call to
	term_mouse_moveto.

	* termhooks.h (term_mouse_moveto): New extern.

	* term.c (mouse_face_window): Rename...
	(Qmouse_face_window): ...to this.
	(term_show_mouse_face, term_clear_mouse_face)
	(term_mouse_highlight): Use Qmouse_face_window.
	(term_mouse_moveto): New function.
	(term_mouse_position): Make it work.
	(syms_of_term): Uncomment assignment to mouse_position_hook.
	Staticpro Qmouse_face_window.

2007-05-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
	around current_column call.

2007-05-26  Dan Nicolaescu  <dann@ics.uci.edu>

	* xfaces.c (syms_of_xfaces): Delete stray semicolon.
	* xdisp.c (next_element_from_buffer):
	* window.c (delete_window):
	* term.c (term_mouse_highlight):
	* msdos.c (getdefdir):
	* macterm.c (mac_create_bitmap_from_bitmap_data)
	(init_font_name_table):
	* fns.c (Fsxhash):
	* data.c (Fmake_local_variable):
	* ccl.c (ccl_driver): Likewise.

2007-05-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event):
	Call mac_wakeup_from_rne on window size change.

2007-05-25  Chong Yidong  <cyd@stupidchicken.com>

	* image.c (uncache_image): Fix typo.

2007-05-23  Johannes Weiner  <hannes@saeurebad.de>  (tiny change)

	* keyboard.c (make_lispy_movement): Condition on HAVE_GPM too.

2007-05-22  Richard Stallman  <rms@gnu.org>

	* xterm.c (x_connection_closed): Remove NO_RETURN.

2007-05-22  Martin Rudalics  <rudalics@gmx.at>

	* syntax.c (scan_words): Fix arg to UPDATE_SYNTAX_TABLE_BACKWARD.

2007-05-21  Chong Yidong  <cyd@stupidchicken.com>

	* image.c (uncache_image): New function.
	(Fimage_refresh): New function.

2007-05-20  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* Makefile.in: Move GPM check outside HAVE_X_WINDOWS.

2007-05-20  Nick Roberts  <nickrob@snap.net.nz>

	* config.in, keyboard.c, Makefile.in, sysdep.c, term.c,
	* termhooks.h: Use HAVE_GPM instead of HAVE_GPM_H.

2007-05-20  Nick Roberts  <nickrob@snap.net.nz>

	* keyboard.c (make_lispy_event): Make case GPM_CLICK_EVENT
	conditional on [HAVE_GPM_H].

2007-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* syntax.c (skip_chars): Update syntax-table only after we checked that
	the new location is valid.

2007-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macterm.c (x_calc_absolute_position): Add BLOCK_INPUT around
	mac_get_window_bounds.

2007-05-20  Nick Roberts  <nickrob@snap.net.nz>

	* Makefile.in (LIBGPM): Allow it to be set from configure.
	If set then link Emacs with it.

	* config.in: Regenerate.

	* lisp.h (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
	New externs.

	* termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT.
	Include gpm.h.
	(handle_one_term_event, term_gpm): New externs.

	* sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking
	and allow it to be interrupted by SIGIO.

	* process.c (gpm_wait_mask, max_gpm_desc): New variables.
	(wait_reading_process_output): Wait on gpm_fd too.
	(add_gpm_wait_descriptor, delete_gpm_wait_descriptor)): New functions.
	(add_gpm_wait_descriptor_called_flag): New variable.
	(delete_keyboard_wait_descriptor): Check gpm_wait_mask.

	* keyboard.c [HAVE_GPM_H] (Qmouse_fixup_help_message)
	(make_lispy_movement, tracking_off, Ftrack_mouse, some_mouse_moved)
	(show_help_echo, readable_events, kbd_buffer_get_event, init_keyboard):
	Extend HAVE_MOUSE ifdefs to HAVE_GPM_H.
	(make_lispy_event): Add case GPM_CLICK_EVENT.
	(read_avail_input): Handle mouse input.

	* term.c (write_glyphs_with_face): New function.
	[HAVE_GPM_H]: Include buffer.h, sys/fcntl.h.
	(mouse_face_beg_row, mouse_face_beg_col, mouse_face_end_row)
	(mouse_face_end_col, mouse_face_past_end, mouse_face_window)
	(mouse_face_face_id, term_gpm, pos_x, pos_y)
	(last_mouse_x, last_mouse_y): New variables.
	(term_show_mouse_face, term_clear_mouse_face, fast_find_position)
	(term_mouse_highlight, term_mouse_movement, term_mouse_position)
	(term_mouse_click, handle_one_term_event, Fterm_open_connection)
	(Fterm_close_connection): New functions.
	(term_init): Initialise mouse_face_window.

2007-05-19  Chong Yidong  <cyd@stupidchicken.com>

	* xdisp.c (redisplay_window): If first window line is a
	continuation line, recompute the new window start instead of
	recentering.

2007-05-18  Glenn Morris  <rgm@gnu.org>

	* m/alpha.h (ORDINARY_LINK): No longer define on OpenBSD.
	Suggested by Alfred M. Szmidt <ams@gnu.org>.

2007-05-17  Glenn Morris  <rgm@gnu.org>

	* m/macppc.h (ORDINARY_LINK): No longer define on OpenBSD.

2007-05-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
	dead key repeat and up events.

2007-05-14  Chong Yidong  <cyd@stupidchicken.com>

	* image.c (pbm_load): Check image size for monochrome pbm.

2007-05-13  Chong Yidong  <cyd@stupidchicken.com>

	* xterm.c (XTread_socket): Revert last change.

2007-05-12  Chong Yidong  <cyd@stupidchicken.com>

	* image.c (pbm_load): Correctly check image size for greyscale pbm.

	* xterm.c (XTread_socket): Yet Another Uncaught X Error Crash (YAUXEC).

2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* editfns.c (Ftranspose_regions): Yet another int/Lisp_Object
	mixup (YAILOM).

2007-05-07  Andreas Schwab  <schwab@suse.de>

	* keymap.c (Flookup_key): Fix typo in last change.

2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>

	* keymap.c (Fdefine_key, Flookup_key): Only do the 0x80->meta_modifier
	mapping for unibyte strings.

2007-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
	(Fx_popup_dialog) [MAC_OSX]: Likewise.

2007-04-29  Richard Stallman  <rms@gnu.org>

	* insdel.c (replace_range): For undo, record insertion first.

2007-04-29  Andreas Schwab  <schwab@suse.de>

	* lisp.h (VECSIZE): Use OFFSETOF.

2007-04-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* xdisp.c (try_window_reusing_current_matrix): Fix number of
	disabled lines.

2007-04-28  Richard Stallman  <rms@gnu.org>

	* lread.c (read_escape): In a string, \s is always space.

2007-04-27  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>

	* xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.

	* gtkutil.c (xg_update_menubar, create_menus): Create empty
	submenu for menu bar items.

See ChangeLog.10 for earlier changes.

;; Local Variables:
;; coding: iso-2022-7bit
;; add-log-time-zone-rule: t
;; End:

    Copyright (C) 2007 Free Software Foundation, Inc.

  This file is part of GNU Emacs.

  GNU Emacs is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 3, or (at your option)
  any later version.

  GNU Emacs is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with GNU Emacs; see the file COPYING.  If not, write to the
  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  Boston, MA 02110-1301, USA.

;; arch-tag: dfb6ad96-1550-4905-9e53-d2059ee84c40
