Merge from emacs-23; up to 2010-06-11T18:51:00Z!juri@jurta.org.
authorGlenn Morris <rgm@gnu.org>
Sat, 21 May 2011 02:15:34 +0000 (19:15 -0700)
committerGlenn Morris <rgm@gnu.org>
Sat, 21 May 2011 02:15:34 +0000 (19:15 -0700)
1  2 
src/ChangeLog
src/dispnew.c

diff --combined src/ChangeLog
 -2011-05-11  Drew Adams  <drew.adams@oracle.com>
+ 2011-05-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+       * dispnew.c (scrolling_window): Don't exclude the case that the
+       last enabled row in the desired matrix touches the bottom boundary.
 +2011-05-21  Glenn Morris  <rgm@gnu.org>
  
 -      * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
 -
 -2011-05-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
 -      `width' to `bar_area_x' and `bar_area_width', respectively.
 -      (x_scroll_run): Take account of fringe background extension.
 -
 -      * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: Rename
 -      local vars `left' and `width' to `bar_area_x' and
 -      `bar_area_width', respectively.
 -      (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
 -      background extension.
 -
 -2011-05-09  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * xmenu.c (set_frame_menubar): Fix submenu loops.
 -
 -2011-05-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      Backport revisions 103939.1.41..103939.1.44 (inclusive) from trunk.
 -      (bug#8623)
 -      The next log entry shows the actual changes by Paul Eggert.
 -
 -2011-05-08  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -      Fix a problem with aliasing and vector headers.
 -      GCC 4.6.0 optimizes based on type-based alias analysis.  For
 -      example, if b is of type struct buffer * and v of type struct
 -      Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
 -      != &v->size, and therefore "v->size = 1; b->size = 2; return
 -      v->size;" must therefore return 1.  This assumption is incorrect
 -      for Emacs, since it type-puns struct Lisp_Vector * with many other
 -      types.  To fix this problem, this patch adds a new type struct
 -      vector_header that documents the constraints on layout of vectors
 -      and pseudovectors, and helps optimizing compilers not get fooled
 -      by Emacs's type punning.  It also adds the macros XSETTYPED_PVECTYPE
 -      XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
 -      * lisp.h (XVECTOR_SIZE): New convenience macro.  All previous uses of
 -      XVECTOR (foo)->size replaced to use this macro, to avoid the hassle
 -      of writing XVECTOR (foo)->header.size.
 -      * lisp.h: Say "vectorlike header" rather than "vector header.
 -      (struct vectorlike_header): Rename from struct vector_header.
 -      (XVECTORLIKE_HEADER_SIZE): Renamed from XVECTOR_HEADER_SIZE.
 -      All uses changed.
 -      (XVECTOR_HEADER_SIZE): New macro, for use in XSETPSEUDOVECTOR.
 -      (XSETTYPED_PVECTYPE): New macro, specifying the name of the size
 -      member.
 -      (XSETPVECTYPE): Rewrite in terms of new macro.
 -      (XSETPVECTYPESIZE): New macro, specifying both type and size.
 -      This is a bit clearer, and further avoids the possibility of
 -      undesirable aliasing.
 -      (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
 -      (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR
 -      and XVECTOR_HEADER_SIZE.
 -      (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
 -      since Lisp_Subr is a special case (no "next" field).
 -      (ASIZE): Rewrite in terms of XVECTOR_SIZE.
 -      (struct vector_header): New type.
 -      (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
 -      object, to help avoid aliasing.
 -      (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
 -      (SUBRP): Likewise, since Lisp_Subr is a special case.
 -
 -      * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
 -      (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
 -      (struct Lisp_Hash_Table): Combine first two members into a single
 -      struct vector_header member.  All uses of "size" and "next" members
 -      changed to be "header.size" and "header.next".
 -      * buffer.h (struct buffer): Likewise.
 -      * font.h (struct font_spec, struct font_entity, struct font): Likewise.
 -      * frame.h (struct frame): Likewise.
 -      * process.h (struct Lisp_Process): Likewise.
 -      * termhooks.h (struct terminal): Likewise.
 -      * window.c (struct save_window_data, struct saved_window): Likewise.
 -      * window.h (struct window): Likewise.
 -      * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
 -      Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
 -      * buffer.c (init_buffer_once): Likewise.
 -      * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
 -      special case.
 -      * process.c (Fformat_network_address): Use local var for size,
 -      for brevity.
 -      * fns.c (vector): Remove; this old hack is no longer needed.
 -      * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
 -
 -2011-04-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
 -      New version that can reserve upto 2GB of heap space.
 -
 -2011-04-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
 -
 -2011-04-18  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * s/ms-w32.h (localtime): Redirect to sys_localtime.
 -
 -      * w32.c: Include <time.h>.
 -      (sys_localtime): New function.
 -
 -2011-04-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
 -
 -2011-04-10  Samuel Thibault  <sthibault@debian.org>  (tiny change)
 -
 -      * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
 -      zombies (Bug#8467).
 -
 -2011-04-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
 -
 -2011-04-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
 -      unsigned char, to match FcChar8 type definition.
 -
 -      * xterm.c (handle_one_xevent):
 -      * xmenu.c (create_and_show_popup_menu):
 -      * xselect.c (x_decline_selection_request)
 -      (x_reply_selection_request): Avoid type-punned deref of X events.
 -
 -2011-04-08  Samuel Thibault  <sthibault@debian.org>  (tiny change)
 -
 -      * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
 -
 -2011-03-19  Christoph Scholtes  <cschol2112@googlemail.com>
 -
 -      * process.c (Fformat_network_address): Doc fix.
 -
 -2011-03-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
 -      (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
 -      These macros can no longer be used for assignment.
 -
 -      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Assign
 -      struct members directly, instead of using BUF_BEGV etc.
 -      (record_buffer_markers, fetch_buffer_markers): New functions for
 -      recording and fetching special buffer markers.
 -      (set_buffer_internal_1, set_buffer_temp): Use them.
 -
 -      * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
 -
 -      * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
 -
 -      * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
 -      (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
 -
 -      * xdisp.c (hscroll_window_tree):
 -      (reconsider_clip_changes): Use PT instead of BUF_PT.
 -
 -2011-03-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xfaces.c (Fx_load_color_file):
 -      Read color file from absolute filename (bug#8250).
 -
 -2011-03-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      Backport revno:103582 from trunk.
 -      * w32xfns.c (select_palette): Check success of RealizePalette against
 -      GDI_ERROR, not zero.
 -
 -2011-03-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * fringe.c (update_window_fringes): Remove unused variables.
 -
 -      * unexmacosx.c (copy_data_segment): Also copy __got section.
 -      (Bug#8223)
 -
 -2011-03-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Version 23.3 released.
 -
 -2011-02-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_open_entity): Be sure to set scaled_pixel_size.
 -      (font_find_for_lface): Check if attrs[LFACE_HEIGHT_INDEX] is
 -      integer.
 -
 -2011-02-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Makefile.in (prefix-args${EXEEXT}): Compile with ALL_CFLAGS.
 -
 -2011-02-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xdisp.c (redisplay_internal): Resynchronize `w' if the selected
 -      window is changed inside calls to do_pending_window_change.
 -      (Bug#8020)
 -
 -2011-02-12  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * terminal.c (create_terminal): Use default-keyboard-coding-system
 -      and default-terminal-coding-system to initialize coding systems of
 -      the new terminal.  (Bug#7840)
 -
 -2011-02-09  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (select_window): Check inhibit_point_swap argument when
 -      deciding whether to return immediately.
 -
 -2011-02-08  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * nsterm.m (setFrame, initFrame): Make sure pixel_height doesn't become
 -      zero (Bug#7348).
 -
 -2011-02-03  Glenn Morris  <rgm@gnu.org>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute):
 -      Try to clarify some error messages.  (Bug#2659)
 -
 -2011-02-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (save_restriction_restore): Don't forget to invalidate the
 -      current_column cache (bug#7946).
 -
 -2011-02-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_open): Use FC_DUAL only when it is defined.
 -
 -      * xftfont.c (xftfont_open): Likewise.
 -
 -2011-02-01  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * window.c (Fselect_window): Add missing return value.
 -
 -2011-01-29  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * image.c (DEF_IMGLIB_FN): Add parameter rettype, use it instead
 -      of int.  All uses adjusted.
 -      (PNG_JMPBUF, png_load, jpeg_load, tiff_load, gif_load)
 -      (svg_load_image): Remove casts.
 -
 -2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (fn_png_longjmp, fn_png_set_longjmp_fn): New png
 -      function definitions for compiling with libpng-1.5.
 -      (PNG_LONGJMP, PNG_JMPBUF): New macros for libpng-1.5.
 -      (my_png_error, png_load): Use them.  Suggested by Thomas Klausner
 -      (Bug#7908).
 -
 -2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * m/intel386.h: Define NO_ARG_ARRAY.  Suggested by Dan Nicolaescu.
 -
 -2011-01-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Require GTK-style font sizes to
 -      occur at the end of the font string (Bug#7853).
 -
 -2011-01-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Fix typo in string length.
 -
 -2011-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (handle_fontified_prop): Be careful with font-lock changing
 -      the buffer's point-max (bug#7876).
 -
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * lisp.h (XPNTR): Obey DATA_SEG_BITS in all non-USE_LSB_TAG cases.
 -      Remove unused HAVE_SHM branch (Bug#6811).
 -
 -2011-01-23  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
 -
 -      * s/hpux11.h: Set CANNOT_DUMP on IA64 (Bug#6811).
 -
 -2011-01-22  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (select_window): New function.
 -      (Fselect_window): Call it.
 -      (inhibit_point_swap): Variable deleted.
 -      (Fset_window_configuration): Call select_window directly.
 -
 -2011-01-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * image.c (syms_of_image): Don't access XSYMBOL's internals directly.
 -
 -2011-01-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * image.c (syms_of_image): Don't use SET_SYMBOL_VALUE.  (Bug#7848)
 -
 -2011-01-15  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (inhibit_point_swap): New variable.
 -      (Fselect_window): If inhibit_point_swap is nonzero, avoid swapping
 -      point this time.
 -      (Fset_window_configuration): Set inhibit_point_swap to 1 instead
 -      of setting selected_window to nil (Bug#7728).
 -
 -2011-01-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * config.in (TERMINFO): New definition.
 -
 -      * s/netbsd.h: Use it to choose between terminfo and termcap
 -      (Bug#7642).
 -
 -2011-01-03  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * coding.h (ENCODE_UTF_8): Remove "Used by ..." comment.
 -
 -      * nsfns.m (ns_set_name_iconic): Remove.
 -      (ns_get_screen): Don't assign integer to f.
 -      (ns_set_name_internal): New function (Bug#7517).
 -      (Vicon_title_format): Extern declare.
 -      (ns_set_name): Call ns_set_name_internal.
 -      (x_explicitly_set_name): Remove call to ns_set_name_iconic.
 -      (x_implicitly_set_name): Ditto.
 -      (x_set_title): Remove commet about EXPLICIT.  Call ns_set_name_internal.
 -      (ns_set_name_as_filename): Encode name with ENCODE_UTF_8.
 -      Always use buffer name for title and buffer filename only for
 -      RepresentedFilename.  Handle bad UTF-8 in buffer name (Bug#7517).
 -
 -2011-01-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * image.c (png_jmpbuf): Remove definition.
 -      (my_png_error, png_load): Don't use png_jmpbuf.
 -
 -2010-12-31  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * image.c <Qlibpng_version>: New variable.
 -      (syms_of_image): Intern and staticpro it.  Set its value to the
 -      version of PNG library we were compiled with.
 -      (my_png_error, png_load): Avoid GCC warnings about direct access
 -      to png_ptr->jmpbuf.  (Bug#7716)
 -      (png_jmpbuf): New macro.
 -      (my_png_error, png_load): Use it instead of #ifdef'ing according
 -      to PNG_LIBPNG_VER_MAJOR and PNG_LIBPNG_VER_MINOR.
 -
 -2010-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * .gdbinit (xgetptr): Fix the union+lsb case.
 -      (xbacktrace): Fix the union case.
 -
 -2010-12-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fmove_to_window_line): Avoid abort when called in a buffer
 -      different from selected-window's.
 -
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * keyboard.c (parse_menu_item): Prepend "  " to the key sequence
 -      equivalent of a menu item when the key sequence is given by the
 -      `:keys' attribute.  (Bug#7662)
 -
 -      * xdisp.c (Fformat_mode_line): Doc fix: no need to state that only
 -      the basic faces are supported.
 -
 -2010-12-24  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_check_fullscreen): Fix pixel/character mixup.
 -
 -2010-12-17  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xdisp.c (Fformat_mode_line): Fix last change.
 -
 -2010-12-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (Fformat_mode_line): Restrict the FACE argument to basic
 -      faces (Bug#7587).
 -
 -2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fexpand_file_name): One more doc fix.
 -
 -2010-12-12  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fexpand_file_name): Doc fix.  (Bug#7617)
 -
 -2010-12-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (Fx_show_tip): Call try_window with last argument
 -      TRY_WINDOW_IGNORE_FONTS_CHANGE.  Delete the TODO ifdef: problem
 -      solved.  Round up the tip height to an integral multiple of the
 -      frame's line height.  Add FRAME_COLUMN_WIDTH to the tip width.
 -      (Bug#7398)
 -
 -      * xdisp.c (string_pos_nchars_ahead, c_string_pos)
 -      (face_before_or_after_it_pos, next_element_from_string)
 -      (next_element_from_c_string, produce_stretch_glyph): Remove unused
 -      calculations of maximum string length before calling
 -      string_char_and_length and STRING_CHAR_AND_LENGTH.
 -      (string_char_and_length): Update commentary: MAXLEN is no longer
 -      needed.
 -
 -2010-12-10  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (kbd_buffer_get_event): Construct SAVE_SESSION_EVENT
 -      as (Qsave_session arg).
 -
 -      * xsmfns.c (smc_interact_CB): Set arg to Qnil.
 -      (smc_die_CB): Make an event with arg Qt.
 -      (Fhandle_save_session): If event has Qt as argument,
 -      call Fkill_emacs (Bug#7552).
 -
 -2010-12-07  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xsmfns.c (smc_die_CB): Call Fkill_emacs (Bug#7552).
 -
 -2010-12-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispextern.h (struct it): New member overlay_strings_charpos.
 -
 -      * xdisp.c (next_overlay_string, load_overlay_strings): Record the
 -      charpos where we computed n_overlay_strings.
 -      (next_overlay_string): Load overlay strings at recorded position,
 -      which may not be the same as the iterator's charpos (Bug#7016).
 -
 -2010-12-05  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
 -      with cursor color and draw a rectangle around the image (Bug#7412).
 -
 -2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (try_scrolling): Avoid infloop if the first line is
 -      obscured due to a vscroll (Bug#7537).
 -
 -2010-12-02  Jan Djärv  <jhd@zeplinf.localdomain>
 -
 -      * nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.
 -
 -      * nsterm.m (x_set_window_size, windowWillResize, initFrameFromEmacs):
 -      Use FRAME_TOOLBAR_HEIGHT.
 -      (x_set_offset): Handle XNegative and YNegative in
 -      f->size_hint_flags (Bug#7510).
 -
 -2010-11-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (emacs_mule_charset): Make it an array of charset ID;
 -      i.e. integer.
 -      (Fdefine_charset_internal): Adjusted for the above change.
 -      (init_charset_once): Likewise.
 -
 -      * charset.h (emacs_mule_charset): Adjust the prototype.  Delete
 -      duplicated extern.
 -
 -      * coding.c (emacs_mule_char): Adjust for the change of
 -      emacs_mule_charset.
 -
 -      * lread.c (read_emacs_mule_char): Adjust for the change of
 -      emacs_mule_charset.
 -
 -2010-11-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (_PROCESS_MEMORY_COUNTERS_EX): Don't define with versions
 -      of w32api >= 3.15.  (Bug#6989)  (Bug#7452)
 -
 -2010-11-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * alloc.c (mark_terminals): Ensure that the image cache is marked
 -      even if the terminal object was marked earlier (Bug#6301).
 -
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Fbyte_to_string): Signal an error arg is not a byte.
 -
 -2010-11-20  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (menubar_map_cb): New function (Bug#7425).
 -      (xg_update_frame_menubar): Connect signal map to menubar_map_cb.
 -      Use 23 as menubar height if 0.  (Bug#7425).
 -
 -2010-11-14  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xsettings.c (init_gconf): Check HAVE_G_TYPE_INIT.
 -
 -      * config.in (HAVE_G_TYPE_INIT): New symbol.
 -
 -2010-11-12  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lread.c (Fload): Mention `load-in-progress' and
 -      `load-file-name'.  (Bug#7346)
 -
 -2010-11-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
 -      (kbd_buffer_store_event_hold, kbd_buffer_get_event)
 -      (tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
 -      subprocesses.  Use buffer_free only ifdef subprocesses.
 -
 -      * process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
 -      the subprocesses version, not in the non-subprocesses one.
 -
 -      * Makefile.in: Don't use ## comment, it breaks the MSDOS build.
 -
 -      * xfns.c (x_real_positions): Fix declaration-after-statement
 -      problem.
 -
 -2010-11-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (free_image): Don't garbage the frame here, since this
 -      function can be called while redisplaying (Bug#7210).
 -      (uncache_image): Garbage the frame here (Bug#6426).
 -
 -2010-11-04  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * process.c (Fmake_network_process): Don't apply Bug#5173 fix for
 -      Windows.
 -
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * process.c (Fmake_network_process): Don't call turn_on_atimers around
 -      `connect' (Bug#5723).
 -
 -2010-11-04  Helmut Eller  <eller.helmut@gmail.com>
 -
 -      * process.c (Fmake_network_process): Call `select' for interrupted
 -      `connect' rather than creating new socket (Bug#5173).
 -
 -2010-11-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_delete_unmatched): Check Vface_ignored_fonts.
 -      Don't sheck SPEC if it is nil.
 -      (font_list_entities): Call font_delete_unmatched if
 -      Vface_ignored_fonts is non-nil.
 -
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
 -      (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
 -
 -      * xdisp.c (try_window): Change arg from CHECK_MARGINS to FLAGS.
 -      Don't abort with fonts change if TRY_WINDOW_IGNORE_FONTS_CHANGE is
 -      set in FLAGS.  Callers with non-zero CHECK_MARGINS changed to use
 -      TRY_WINDOW_CHECK_MARGINS.
 -
 -      * xfns.c (Fx_show_tip): Undo last change.  Call try_window with
 -      TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423).
 -
 -2010-11-04  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
 -      parent is the root window.  Check this after traversing window tree.
 -
 -      * xterm.c (x_term_init): Initialize Xatom_net_frame_extents.
 -
 -      * xterm.h (struct x_display_info): Xatom_net_frame_extents is new.
 -
 -      * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
 -      before traversing window tree (Bug#5721).
 -
 -2010-11-03  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (CRT_DIR): New variable, set by configure.
 -      * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
 -      Use $CRT_DIR rather than HAVE_LIB64_DIR.  (Bug#5655)
 -
 -2010-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * process.c (kbd_is_on_hold): New variable.
 -      (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
 -      New functions.
 -      (wait_reading_process_output): If kbd_on_hold_p returns non-zero,
 -      select on empty input mask.
 -      (init_process): Initialize kbd_is_on_hold to 0.
 -
 -      * process.h (hold_keyboard_input, unhold_keyboard_input)
 -      (kbd_on_hold_p): Declare.
 -
 -      * keyboard.c (input_available_signal): Declare.
 -      (kbd_buffer_nr_stored): New function.
 -      (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
 -      more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
 -      (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
 -      returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
 -      (tty_read_avail_input): If input is on hold, return.
 -      Don't read more that free slots in kbd_buffer (Bug#6571).
 -
 -2010-10-31  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_connection_closed): Print informative error message
 -      when aborting on GTK.  This requires using shut_down_emacs
 -      directly instead of Fkill_emacs.
 -
 -2010-10-25  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_call_method_asynchronously)
 -      (Fdbus_register_signal, Fdbus_register_method): Check, whether
 -      `dbus-registered-objects-table' is initialized.
 -
 -2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_connection_closed): Kill Emacs unconditionally.
 -
 -2010-10-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.c (Fframep, Fwindow_system): Deprecate use as a predicate.
 -
 -      * dispnew.c (syms_of_display) <initial-window-system, window-system>:
 -      Deprecate use as a boolean flag.
 -
 -2010-10-18  Ken Brown  <kbrown@cornell.edu>
 -
 -      * s/cygwin.h (SIGNALS_VIA_CHARACTERS): New define (bug#7225).
 -
 -2010-10-15  Kenichi Handa  <handa@m17n.org>
 -
 -      Fix incorrect font metrics when the same font is opened with
 -      different pixelsizes.
 -
 -      * xftfont.c: Include composite.h.
 -      (xftfont_shape): New function.
 -      (syms_of_xftfont): Set xftfont_driver.shape.
 -
 -2010-10-13  Damyan Pepper  <damyanp@gmail.com>
 -
 -      Fix handling of font properties on Windows (bug#6303).
 -      * font.c (font_filter_properties): New function, refactored from
 -      ftfont_filter_properties.
 -      * font.h (font_filter_properties): Declare.
 -      * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
 -      * w32font.c (w32font_booleans, w32font_non_booleans): New variables.
 -      (w32font_filter_properties): New function.
 -      (w32font_driver): Add w32font_filter_properties.
 -
 -2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * font.c (Ffont_variation_glyphs):
 -      * ccl.c (Fccl_execute_on_string): Fix typo in docstring.
 -
 -2010-10-10  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * nsterm.m (Qleft): Declare.
 -      (ns_right_alternate_modifier): New variable
 -      (NSRightAlternateKeyMask): New define.
 -      (EV_MODIFIERS): Parse NSRightAlternateKeyMask if
 -      ns_right_alternate_modifier isn't Qleft.
 -      (keyDown): If ns_right_alternate_modifier isn't Qleft, use it
 -      as emacs modifier for NSRightAlternateKeyMask.
 -      (syms_of_nsterm): DEFVAR_LISP ns-right-alternate-modifier.
 -
 -2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_get_dispatch_status): Return a Lisp_Object.
 -      (xd_pending_messages): Catch xd_get_dispatch_status calls.
 -
 -2010-10-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (complement_process_encoding_system): Fix previous change.
 -
 -2010-10-03  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (syms_of_dbusbind): Move putenv call ...
 -      (Fdbus_init_bus): ... here.  (Bug#7113)
 -
 -2010-10-03  Glenn Morris  <rgm@gnu.org>
 -
 -      * buffer.c (before-change-functions, after-change-functions):
 -      Three-year overdue doc fix following 2007-08-13 change.
 -
 -2010-10-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_inherit_eol_type): If parent doesn't specify
 -      eol-format, inherit from the system's default.
 -      (complement_process_encoding_system): Make a new coding system
 -      inherit the original eol-format.
 -
 -2010-09-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (complement_process_encoding_system): New function.
 -
 -      * coding.h (complement_process_encoding_system): Extern it.
 -
 -      * callproc.c (Fcall_process): Complement the coding system for
 -      encoding arguments.
 -      (Fcall_process_region): Complement the coding system for encoding
 -      the input to the process.
 -
 -      * process.c (Fstart_process): Complement the coding system for
 -      encoding arguments.
 -      (send_process): Complement the coding system for encoding what
 -      sent to the process.
 -
 -2010-09-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_open): Fix setting of font->average_width from
 -      :avgwidth property (Bug#7123).
 -
 -2010-09-28  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it
 -      is more portable.
 -
 -      * keyboard.c (gobble_input): Move call of xd_read_queued_messages ...
 -      (kbd_buffer_get_event): ... here.  This is needed for cygwin, which
 -      has not defined SIGIO.
 -
 -2010-09-27  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0".
 -      (Bug#7113)
 -
 -2010-09-26  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xgselect.c (xg_select): Clear file descriptors not set from
 -      rfds and wfds.
 -
 -2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (back_comment): Detect the case where a 1-char comment
 -      starter is also the 2nd char of a 2-char comment ender.
 -
 -2010-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_menu_proxy): Set gtk-menu-items to TRUE.
 -
 -2010-09-12  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (get_current_vm_state): New function.
 -      (do_ewmh_fullscreen): Call get_current_vm_state and compare with
 -      want_fullscreen so set_wm_state calls are few (Bug#7013).
 -      (x_handle_net_wm_state): Move code to get_current_vm_state and
 -      call that function.
 -
 -2010-09-11  Courtney Bane  <emacs-bugs-7626@cbane.org>  (tiny change)
 -
 -      * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
 -
 -2010-09-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
 -      we may use designation or locking-shift.
 -
 -2010-09-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
 -      sequence when the source is multibyte.
 -
 -2010-08-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
 -      characters.
 -
 -      * term.c (encode_terminal_code): Fix the previous change.
 -      (produce_glyphs): Don't set it->char_to_display here.
 -      Don't handle unibyte-display-via-language-environment here.
 -      (produce_special_glyphs): Set temp_it.char_to_display before
 -      calling produce_glyphs.
 -
 -      * xdisp.c (get_next_display_element): Set it->char_to_display
 -      here.  Convert all 8-bit bytes from unibyte buffer/string to 8-bit
 -      characters.
 -      (get_overlay_arrow_glyph_row): Set it.char_to_display too before
 -      calling PRODUCE_GLYPHS.
 -      (append_space_for_newline): Save and store it->char_to_display.
 -      Set it->char_to_display before calling PRODUCE_GLYPHS.
 -      (extend_face_to_end_of_line): Set it->char_to_display before
 -      calling PRODUCE_GLYPHS.
 -      (get_glyph_face_and_encoding): Set the glyph code an 8-bit
 -      character to its byte value.
 -      (get_char_glyph_code): New function.
 -      (produce_stretch_glyph): Set it2.char_to_display too before
 -      calling x_produce_glyphs.
 -      (x_produce_glyphs): Simplify by using the same code for ASCII and
 -      non-ASCII characters.  Don't set it->char_to_display here.
 -      Don't handle unibyte-display-via-language-environment here.  For a
 -      character of no glyph, use font->space_width instead of FONT_WIDTH.
 -
 -2010-08-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c (encode_terminal_code): Encode byte chars to the
 -      correspnding bytes.
 -
 -2010-08-17  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
 -      instead of SAFE_ALLOCA.
 -
 -2010-08-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
 -      (Bug#6214).
 -
 -2010-08-14  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
 -
 -2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * doc.c (Fsnarf_documentation): Initialize skip_file before
 -      build-files test.
 -
 -2010-08-09  Peter O'Gorman <pogma@thewrittenword.com>  (tiny change)
 -
 -      * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
 -      New definitions.
 -      (HAVE_TERMIO): Remove.
 -
 -2010-08-06  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c: Include <stdlib.h>
 -      (struct charset_sort_data): New struct.
 -      (charset_compare): New function.
 -      (Fsort_charsets): New function.
 -      (syms_of_charset): Declare Fsort_charsets as a Lisp function.
 -
 -      * coding.c (decode_coding_iso_2022): Fix checking of dimension
 -      number in CTEXT extended segment.
 -
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (syms_of_w32fns) <x-max-tooltip-size>: Fix typo in docstring.
 -      * xfns.c (syms_of_xfns) <x-max-tooltip-size>: Reflow docstring.
 -
 -2010-07-30  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
 -      (Fhash_table_size): Fix typos in docstrings.
 -      (Fmake_hash_table): Doc fix.
 -
 -2010-07-28  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (syms_of_minibuf) <read-buffer-function>:
 -      Doc fix (bug#5625).
 -
 -2010-07-27  Ken Brown  <kbrown@cornell.edu>
 -
 -      * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
 -      the MSDOS definition.
 -
 -2010-07-25  Christoph Scholtes  <cschol2112@gmail.com>
 -
 -      * minibuf.c (Fread_buffer): Doc fix (bug#6528).
 -
 -2010-07-22  Christoph Scholtes  <cschol2112@gmail.com>
 -
 -      * window.c (Fwindow_height): Doc fix (bug#6518).
 -
 -2010-07-21  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
 -
 -2010-07-17  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_event_is_for_menubar): Also check that event window
 -      is related to the menu bar (Bug#6499).
 -
 -2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
 -
 -      * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
 -
 -      * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
 -      i.e. don't put back ButtonRelease (Bug#6608).
 -
 -      * xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
 -      instead of Window.  Call xg_event_is_for_menubar when
 -      USE_GTK (Bug#6499).
 -
 -      * gtkutil.h (xg_event_is_for_menubar): Declare.
 -
 -      * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
 -
 -2010-07-14  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (x_set_foreground_color): Fix setting the cursor color
 -      when it's the same as the old foreground.  (Bug#6609)
 -
 -2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (realize_face): Garbage the frame if a face is removed
 -      (Bug#6593).
 -
 -2010-07-05  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * keyboard.c: Remove duplicate <setjmp.h>.
 -      (read_key_sequence): Remove volatile qualifiers.
 -
 -2010-07-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispextern.h (FRINGE_HEIGHT_BITS): New define.
 -      (struct glyph_row): New members left_fringe_offset and
 -      right_fringe_offset.
 -
 -      * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
 -      specially.
 -      * w32term.c (w32_draw_fringe_bitmap): Likewise.
 -      * nsterm.m (ns_draw_fringe_bitmap): Likewise.
 -
 -      * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
 -      Take account of bitmap offset.
 -      (draw_window_fringes): Take account of window vscroll.
 -      (update_window_fringes): Likewise.  Extend top-aligned top indicator
 -      or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
 -      in one row.  Don't set redraw_fringe_bitmaps_p outside row comparison.
 -      Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
 -
 -2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (Qtooltip): Declare.
 -      Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
 -
 -2010-07-03  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
 -      grab on just Press (Bug#6499).
 -
 -2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (Qtooltip): New var.
 -      (delete_frame): Use it.  Fix faulty if statement.  Don't update
 -      mode line for tooltip frames.  Suggested by Martin Rudalics.
 -
 -      * xfns.c (x_create_tip_frame):
 -      * w32fns.c (x_create_tip_frame): Use it.
 -
 -2010-06-30  Naohiro Aota  <naota@elisp.net>  (tiny change)
 -
 -      * xftfont.c (xftfont_open): Check font width one by one also when
 -      spacing is dual.
 -
 -      * ftfont.c (ftfont_open): Ditto.
 -
 -2010-06-26  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * alloc.c (Fmake_byte_code): Don't access undefined argument
 -      (Bug#6517).
 -
 -2010-06-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (next_element_from_image): Ensure that after-strings are
 -      read the next time we hit handle_stop (Bug#1336).
 -
 -2010-06-23  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * lread.c (read1): Signal error if #s is not followed by paren.
 -
 -2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (free_image): Mark frame as garbaged (Bug#6426).
 -
 -      * keymap.c (Fdefine_key): Doc fix (Bug#6460).
 -
 -2010-06-15  Glenn Morris  <rgm@gnu.org>
 -
 -      * editfns.c (Fbyte_to_string): Pacify compiler.
 -
 -2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
 -      Check `object's type before accessing its guts.
 -
 -2010-06-08  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * minibuf.c (Fall_completions): Add more checks.
 -
 -2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
 -
 -2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4
 -      address.  (Bug#6346)
 -
 -2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * ccl.c (Fccl_program_p): Fix typo in docstring.
 -
 -2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
 -      of bug#6305).
 -
 -2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): After redisplay, check if point is
 -      still valid before setting it (Bug#6177).
 -
 -2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 -
 -      * s/netbsd.h: If terminfo is found, use it in preference to
 -      termcap.  (Bug#6190)  [Backport from trunk]
 -
 -2010-05-20  Kevin Ryde  <user42@zip.com.au>
 -
 -      * keyboard.c (Vlast_command, Vkeyboard_translate_table)
 -      (Voverriding_terminal_local_map, Vsystem_key_alist)
 -      (Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
 -
 -2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (Fbyte_to_string): New function.
 -
 -2010-05-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
 -      prevent stack overflow if number of arguments is too large
 -      (Bug#6214).
 -
 -2010-05-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(SRC)/w32.h.
 -
 -      * w32fns.c: Include w32.h.
 -      (Fw32_shell_execute): Decode the error message before passing it
 -      to `error'.  (Bug#6126)
 -
 -2010-05-11  Karel Klic  <kklic@redhat.com>
 -
 -      * ftfont.c: Fix incorrect parentheses of #if condition for
 -      definining M17N_FLT_USE_NEW_FEATURE.
 -
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Version 23.2 released.
 -
 -2010-04-30  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * composite.c (autocmp_chars): Save point as marker before calling
 -      auto-composition-function (Bug#5984).
 -
 -      * lisp.h (restore_point_unwind): Add prototype.
 -
 -      * fileio.c (restore_point_unwind): Remove static attribute.
 -
 -2010-04-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
 -      new feature of libotf and m17n-flt.
 -      (ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
 -      Call OTF_check_features even if no specific feature is given.
 -      (PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
 -      (ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
 -      that OUT is NULL.  Use OTF_drive_gsub_with_log and
 -      OTF_drive_gpos_with_log instead of OTF_drive_gsub and
 -      OTF_drive_gpos.
 -      (ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
 -      (ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
 -      Setup mflt_enable_new_feature and mflt_try_otf.
 -
 -2010-04-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * dired.c (Ffile_attributes): Fix typo in docstring.
 -
 -2010-04-13  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
 -      NSInteger (Bug#5811).
 -
 -2010-04-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
 -      (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
 -
 -2010-04-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
 -
 -2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
 -      FRAME_LINE_TO_PIXEL_Y.
 -
 -      * xterm.c (x_set_window_size_1): Don't add border_width/height to
 -      pixelwidth/height.
 -
 -2010-04-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
 -      terminal frames (Bug#5837).
 -
 -2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsfns.m (ns_set_doc_edited): Remove unused arg OLDVAL.
 -      * nsterm.h: Fix prototype.
 -
 -2010-03-31  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
 -      in this function.  (Bug#5703)
 -
 -2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.h: Fix last change.
 -
 -2010-03-30  Bernhard Herzog  <bh@intevation.de>  (tiny change)
 -
 -      * menu.c (Fx_popup_menu): Use last_event_timestamp (Bug#4930).
 -
 -2010-03-30  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xdisp.c (note_mouse_highlight): Don't do highlight if pointer is
 -      invisible (Bug#5766).
 -
 -2010-03-29  Adrian Robert  <adrian.b.robert@gmail.com>
 -
 -      * xdisp.c (x_consider_frame_title, update_window_cursor): Remove
 -      HAVE_NS conditionals.
 -      (prepare_menu_bars) [HAVE_NS]: Call ns_set_doc_edited.
 -
 -      * nsfns.m (x_implicitly_set_name): If frame-title-format is t, use
 -      filename for the title.
 -      (ns_set_doc_edited): Do nothing if the selected window is a
 -      minibuffer window.
 -
 -      * nsterm.h: Add prototypes for ns_set_name_as_filename and
 -      ns_set_doc_edited.
 -
 -      * nsterm.m: Remove unneeded prototype.
 -
 -2010-03-28  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (SOME_MACHINE_OBJECTS): Ensure dbus stuff is always
 -      in the DOC file.  (Bug#5336)
 -
 -2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (pos_visible_p): Revert 2008-01-25 change (Bug#5730).
 -
 -2010-03-20  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * frame.c (x_get_arg): Handle RES_TYPE_BOOLEAN_NUMBER (bug #5736).
 -
 -      * xfns.c (Fx_create_frame): Make menuBar a RES_TYPE_BOOLEAN_NUMBER.
 -
 -      * dispextern.h (resource_types): RES_TYPE_BOOLEAN_NUMBER is new.
 -
 -2010-03-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xfns.c (Fx_create_frame) [USE_LUCID]: Add BLOCK_INPUT around
 -      XLoadQueryFont.
 -
 -2010-03-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_ccl): Fix previous change for the
 -      multibyte case.
 -      (encode_coding_ccl): Don't setup ccl program here.  Fix for the
 -      case that the output buffer is fullfilled.
 -      (encode_coding): Setup ccl program here.
 -
 -2010-03-15  Andreas Politz  <politza@fh-trier.de>  (tiny change)
 -
 -      * editfns.c (Fformat): Account for string precision when computing
 -      field width (Bug#5710).
 -
 -2010-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Make it possible to C-g in a tight bytecode loop again (bug#5680).
 -      * lisp.h (ELSE_PENDING_SIGNALS): New macro.
 -      (QUIT): Use it to consolidate code and remove redundancy.
 -      * bytecode.c (BYTE_CODE_QUIT): Use it as well.
 -
 -      * regex.c (regex_compile): Setup gl_state as well.
 -
 -      * syntax.c (skip_chars): Setup gl_state (bug#3823).
 -      (in_classes): Use CONSP before XCAR/XCDR.
 -
 -2010-03-03  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keymap.c (Fwhere_is_internal): Use Fequal to compare
 -      definitions, so that keyboard macros are correctly handled
 -      (Bug#5481).
 -
 -2010-03-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (decode_coding_emacs_mule): Fixup pointers to buffer
 -      text that could be relocated inside the call to emacs_mule_char.
 -      (emacs_mule_char): Use CODING_DECODE_CHAR instead of DECODE_CHAR.
 -      (CODING_DECODE_CHAR): Add a comment describing its purpose.
 -
 -2010-03-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (parse_str_as_multibyte): Fix handling of the
 -      multibyte form of raw-bytes.
 -      (str_as_multibyte): Likewise.
 -
 -      * buffer.c (Fset_buffer_multibyte): Fix handling of the multibyte
 -      form of raw-bytes.
 -
 -2010-02-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * charset.c (load_charset_map_from_file)
 -      (load_charset_map_from_vector): Zero out allocated
 -      charset_map_entries before using them.
 -
 -2010-02-27  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * w32uniscribe.c (uniscribe_check_otf): Fix length check.
 -
 -2010-02-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Recognize "Book", "Condensed",
 -      "Medium", and "Semi-Condensed" keywords in GTK names (Bug#5646).
 -
 -2010-02-26  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_get_open_type_spec): Fix parsing of otf_spec.
 -
 -      * xdisp.c (reseat_to_string): Fix previous change.
 -
 -2010-02-26  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsfont.m (nsfont_draw): ns_antialias_text should be a
 -      Lisp_Object (Bug#4736).
 -
 -2010-02-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (reseat_to_string): Fix previous change (bug#5609).
 -
 -2010-02-24  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (XTflash): Move declarations before statements.
 -
 -      * gtkutil.c (xg_get_gdk_display): Remove (unused).
 -      (xg_get_pixbuf_from_pix_and_mask, xg_create_frame_widgets)
 -      (xg_toggle_notify_cb, xg_set_toolkit_scroll_bar_thumb)
 -      (xg_create_tool_bar): Remove unused variables.
 -      (x_wm_set_size_hint): Move declarations before statements.
 -      (xg_create_frame_widgets): Remove variable grav.
 -
 -2010-02-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * m/arm.h: Define the LIB_GCC flag to be -lgcc_s (Bug#5518).
 -
 -2010-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * term.c (fatal): Add a final \n if needed (bug#5596).
 -
 -2010-02-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.m (ns_ring_bell): Revert last change (Bug#5569).
 -
 -2010-02-18  Glenn Morris  <rgm@gnu.org>
 -
 -      * callint.c (Finteractive): Doc fix.
 -
 -2010-02-18  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>  (tiny change)
 -
 -      * coding.c (record_conversion_result):
 -      Handle CODING_RESULT_INSUFFICIENT_DST.
 -      (decode_coding_object): Record CODING_RESULT_INSUFFICIENT_MEM on
 -      memory allocation error.
 -
 -2010-02-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_ccl): Don't setup ccl program here.
 -      Fix for the case that the output buffer is fullfilled.
 -      (decode_coding): Setup ccl program here.  Keep looping when the
 -      decoder stopped because the output buffer is
 -      fullfilled (bug#5534).
 -
 -      * ccl.c (ccl_driver): Never reset ic to CCL_HEADER_MAIN.
 -
 -2010-02-13  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_clear_frame_area): Call gtk_widget_queue_draw if USE_GTK,
 -      bug #5571.
 -      (XTflash): Use Gdk-routines if USE_GTK so scroll bars don't get
 -      overdrawn.
 -
 -2010-02-10  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xsmfns.c (x_session_initialize): Move initialization of ice_fd and
 -      doing_interact here.
 -      (ice_connection_closed): New function.
 -      (x_session_check_input, smc_die_CB, ice_io_error_handler)
 -      (ice_conn_watch_CB, x_session_close): Call ice_connection_closed.
 -      (x_session_check_input): Call IceCloseConnection if IceProcessMessages
 -      returns I/O error.
 -      (ice_conn_watch_CB): Call add_keyboard_wait_descriptor on ice_fd,
 -      bug #5512.
 -
 -2010-02-08  Francis Devereux  <francis@devrx.org>  (tiny change)
 -
 -      * nsfont.m (nsfont_open): The system's value for the font descent
 -      is negative, so round it down to avoid clipping.
 -
 -2010-02-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * charset.c (load_charset_map_from_file)
 -      (load_charset_map_from_vector): Fix last change to use SAFE_ALLOCA
 -      instead of xmalloc (Bug#5526).  Suggested by Vivek Dasmohapatra.
 -
 -2010-02-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * charset.c (load_charset_map_from_file): Allocate large
 -      charset_map_entries structure on the heap rather than the stack.
 -      (Bug#5526).
 -
 -2010-01-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_parse_xlfd): If FONT is a font-entity and pixel
 -      size in NAME is invalid, return -1 (Bug#5396).
 -
 -2010-01-31  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.m (ns_defined_color): Block input.  Suggested by Mike
 -      <deactivated@gmail.com> (Bug#3605).
 -
 -2010-01-31  David De La Harpe Golden  <david@harpegolden.net>
 -
 -      * fileio.c (Frename_file): Correctly rename symlinks to
 -      directories (Bug#5496).
 -
 -2010-01-31  Filipe Cabecinhas  <filcab@gmail.com>  (tiny change)
 -
 -      * nsterm.m (ns_ring_bell): Handle visible bell like X.
 -
 -2010-01-30  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * character.h (CHAR_PRINTABLE_P): Reparenthesize to avoid warning.
 -
 -2010-01-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (DEFAULT_ROWS): Change default to 35.
 -
 -      * xfns.c (x_default_font_parameter): Change default XFT font to
 -      monospace-10 (Bug#3643).
 -
 -2010-01-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32inevt.c (key_event): Remove unnecessary comparison of
 -      event->uChar.AsciiChar with 128.
 -
 -2010-01-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fileio.c (Frename_file): Fix last change (Bug#5487).
 -
 -      * m/mips.h: Remove DATA_START.  Suggested by Dan Nicolaescu.
 -
 -      * m/alpha.h: Don't define DATA_START on NetBSD (Bug#4629).
 -
 -2010-01-28  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_create_frame): Remove window size matching code from
 -      2010-01-15.
 -      (x_get_current_desktop, x_get_desktop_workarea): Remove.
 -
 -2010-01-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32inevt.c (w32_kbd_patch_key): Save the unicode character.
 -      (key_event): Use unicode for characters 128 and higher (Bug#4567).
 -
 -2010-01-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * regex.c (analyse_first): Fix setting of fastmap for unibyte
 -      pattern string (Bug#4209).
 -
 -2010-01-27  David De La Harpe Golden  <david@harpegolden.net>
 -
 -      * fileio.c (Frename_file): Call copy-directory and
 -      delete-directory for directories, in order to handle cross-device
 -      renaming (Bug#3353).
 -
 -2010-01-25  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_create_frame): If frame height is too big, try
 -      sizes 24 and 10.  Bug #3643.
 -
 -2010-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Try and fix bug#788, hopefully for real this time.
 -      * keymap.c (shadow_lookup): Add `remap' arg.
 -      (describe_map, describe_vector): Update calls to shadow_lookup.
 -      (Fwhere_is_internal): Fix up handling of `remapped_sequences' and
 -      `remapped' so this flag is applicable to `sequence'.  Be careful to
 -      perform remapping during shadow_lookup check of remapped_sequences.
 -
 -2010-01-24  Eric Bélanger  <snowmaniscool@gmail.com>  (tiny change)
 -
 -      * image.c (png_load): Use png_sig_cmp instead of the obsolete
 -      png_check_sig, which has been removed in libpng 1.4.
 -
 -2010-01-23  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
 -
 -      * filelock.c: Include utmp.h only when HAVE_UTMP_H (FreeBSD 9.x
 -      lacks this header file).
 -
 -2010-01-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (draw_glyphs): Update `start' for left_overwritten case
 -      as in Emacs 22.
 -
 -2010-01-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * lisp.h (make_pure_string): String pointer arg now points to const.
 -
 -      * alloc.c (find_string_data_in_pure, make_pure_string): String pointer
 -      args now point to const.
 -
 -2010-01-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lread.c (Fload): Don't treat files without .elc extension as
 -      byte-compiled if they are ``magic'', i.e. `openp' returned -2 for
 -      them.  (bug#5303)
 -
 -2010-01-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (consume_chars): If ! multibyte and the encoder is ccl,
 -      treat the source as actual byte sequence.
 -
 -2010-01-19  Alan Mackenzie  <acm@muc.de>
 -
 -      Fix spurious before-change-functions invocation from (insert ?\n).
 -      * textprop.c (set_text_properties): Rename parameter
 -      `signal_after_change_p' to `coherent_change_p', and make the
 -      invocation of `modify_region' conditional on it.
 -
 -2010-01-19  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xsettings.c (apply_xft_settings): Save settings in Vxft_settings
 -      for debug purpose.
 -      (syms_of_xsettings): Declare xft-settings.
 -
 -2010-01-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Fcurrent_time_string): Doc fix (Bug#5408).
 -
 -2010-01-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (event_handler_gdk): Block input (Bug#5037).
 -
 -2010-01-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * emacs.c (standard_args): Adjust arg priorities to reflect how
 -      they are processed in startup.el.
 -
 -2010-01-16  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * Makefile.in (lisp, shortlisp): Update.
 -
 -2010-01-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (x_term_init): Instead of inhibiting GC while running Lisp
 -      code, link the new kboard into all_kboard before running Lisp code,
 -      and protect the new terminal with GCPRO (Bug#5365).
 -      (x_term_init): Remove unused var `atom'.
 -      (x_delete_display, x_delete_terminal): Remove unused var `i'.
 -
 -2010-01-15  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_get_current_desktop, x_get_desktop_workarea): New functions.
 -      (Fx_create_frame): Call x_get_current_desktop and x_get_desktop_workarea
 -      to find out usable size of the desktop.  Don't make frames larger than
 -      this.  Bug #3643.
 -
 -2010-01-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (CHAR_COMPOSED_P): New arg END_CHARPOS.  Callers changed.
 -
 -2010-01-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.m (Qnone): Define.
 -
 -      * nsfns.m (Qnone): Move definition to nsterm.m.
 -
 -2010-01-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_iso_2022): Fix handling of euc-xx coding
 -      systems.
 -
 -2010-01-14  Kenichi Handa  <handa@m17n.org>
 -
 -      Make auto-composition work on all buffers even if they are
 -      fundamental mode.
 -
 -      * composite.c (Vauto_composition_mode): New variable.
 -      (composition_compute_stop_pos): Check Vauto_composition_mode
 -      instead of Vauto_composition_function.
 -      (composition_adjust_point, Ffind_composition_internal): Likewise.
 -      (syms_of_composite): Declare Lisp variable
 -      "auto-composition-mode" here.
 -
 -2010-01-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_term_init): Avoid garbage-collecting the new terminal
 -      during call to vendor-specific-keysyms (Bug#5365).
 -
 -2010-01-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (input_available_signal) [SYNC_INPUT]:
 -      Call SIGNAL_THREAD_CHECK (Bug#5333).
 -
 -      * atimer.c (alarm_signal_handler) [!SYNC_INPUT]:
 -      Call SIGNAL_THREAD_CHECK.
 -
 -2010-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Try to fix bug#5314.  This is probably not the final word, tho.
 -      * buffer.c (Fset_buffer_modified_p): Try and be careful not to modify
 -      recent-auto-save-p as a side-effect.
 -      * buffer.h (BUF_AUTOSAVE_MODIFF): New macro.
 -      * buffer.c (Fkill_buffer, reset_buffer):
 -      * editfns.c (Fsubst_char_in_region):
 -      * fileio.c (Finsert_file_contents, Fdo_auto_save)
 -      (Fset_buffer_auto_saved, Frecent_auto_save_p): Use it.
 -
 -2010-01-13  Kenichi Handa  <handa@m17n.org>
 -
 -      Display buffer name, etc. in mode line by composing correctly.
 -
 -      * xdisp.c (reseat_to_string): Call composition_compute_stop_pos if
 -      STRING is not nil.
 -      (display_mode_element): Adjust for the change of
 -      decode_mode_spec and display_line.
 -      (decode_mode_spec): Change arg MULTIBYTE to STRING.
 -      (display_string): Handle the case that STRING is non-null and
 -      LISP_STRING is not nil.
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground):
 -      Pay attention to s->face->overstrike.
 -
 -      * composite.c (composition_reseat_it): Don't check PT if STRING is
 -      non nil.
 -
 -2010-01-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (read_char): Don't apply previous change when current
 -      buffer is unchanged by command execution.
 -
 -2010-01-12  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (read_char): Return after executing from special map.
 -
 -2010-01-12  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (REPORT_EMACS_BUG_PRETEST_ADDRESS): Set it to
 -      bug-gnu-emacs rather than emacs-pretest-bug.
 -
 -2010-01-11  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.m (syms_of_nsterm): Initialize Qcontrol etc. before
 -      initializing the Lisp variables that depend on them.
 -
 -2010-01-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xfns.c (x_set_menu_bar_lines) [!USE_X_TOOLKIT && !USE_GTK]:
 -      Clear areas that will not be updated after change of menu bar lines.
 -      Clear the menu bar window's current matrix when the window gets empty.
 -
 -2010-01-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * intervals.h, textprop.c (extend_property_ranges): Return value
 -      and args changed.  Discard properties that begin at or after the
 -      new end (Bug#5306).
 -
 -      * editfns.c (Fformat): Caller changed.
 -
 -      * nsterm.m (ns_set_default_prefs): Delete function.
 -      (syms_of_nsterm): Initialize ns_command_modifier,
 -      ns_control_modifier, ns_function_modifier, ns_antialias_text, and
 -      ns_antialias_threshold here, not in ns_term_init (Bug#4113).
 -
 -      * xdisp.c (pos_visible_p): Check for invisible text at the correct
 -      position (Bug#4040).
 -
 -2010-01-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * editfns.c (Ffloat_time): Doc fix.
 -
 -2010-01-09  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_create_frame): Don't create frame larger than display
 -      by default bug#3643.
 -
 -2010-01-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * frame.h (FRAME_TOP_MARGIN_HEIGHT): New macro.
 -      (FRAME_LINE_TO_PIXEL_Y, FRAME_PIXEL_Y_TO_LINE): Take account of pseudo
 -      windows above internal border.
 -
 -      * window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P): New macros.
 -      (WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y): Take account of pseudo
 -      windows above internal border.
 -
 -      * xdisp.c (get_glyph_string_clip_rects, init_glyph_string): Don't treat
 -      tool bar windows specially.
 -
 -      * xfns.c (x_set_tool_bar_lines): Take account of menu bar height.
 -
 -      * xterm.c (x_after_update_window_line): Don't treat tool bar windows
 -      specially.
 -      (XTflash): Take account of menu bar height.
 -
 -      * w32term.c (x_after_update_window_line): Don't treat tool bar windows
 -      specially.
 -
 -2010-01-08  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must
 -      also be true before we can return early (bug #5339).
 -
 -2010-01-06  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS.
 -      (Fns_display_usable_bounds): Rewrite, computing bounds properly
 -      (Bug#3233).
 -
 -2010-01-06  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * font.c (font_open_entity): Enable chache and call cached_font_ok
 -      for the driver if defined.
 -      (QCuser_spec): New symbol.
 -      (font_spec_from_name): Save name as user-spec.
 -      (font_load_for_lface): Keep user-spec instead of name.
 -      (font_open_by_name): Save name as user-spec.
 -      (syms_of_font): Initialize QCuser_spec.
 -      (font_clear_prop): Clear name if it exists in font (bug#5157).
 -
 -      * xftfont.c (xftfont_open): Call xftfont_add_rendering_parameters.
 -      (xftfont_add_rendering_parameters, xftfont_cached_font_ok): New.
 -      (syms_of_xftfont): Initialize xftfont_driver.cached_font_ok.
 -
 -      * font.h (struct font_driver): Add cached_font_ok.
 -
 -      * xterm.c (x_clear_frame): Queue draw for scroll bars.
 -
 -2010-01-05  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_new_font): Move code for setting rows/cols before
 -      resizing ...
 -      (x_set_window_size): ... to here.  Bug #2568.
 -
 -      * gtkutil.c (xg_clear_under_internal_border): New function.
 -      (xg_frame_resized, xg_frame_set_char_size):
 -      Call xg_clear_under_internal_border.
 -      (xg_update_scrollbar_pos): Clear under old scroll bar position.
 -
 -2010-01-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_key_sequence): Catch keyboard switch after
 -      making a new tty frame (Bug#5095).
 -
 -2010-01-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): Fix getting the frame pointer.
 -
 -2010-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dbusbind.c (xd_remove_watch): Avoid trying to convert a void* to
 -      Lisp_Object, preferring to convert a lisp_Object to a void* instead.
 -      (Fdbus_init_bus): Use XHASH to get a scalar value from a Lisp_Object.
 -
 -2010-01-03  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_add_watch): Improve debug message.
 -      (xd_remove_watch): Improve debug message.  If DATA is the session
 -      bus, unset D-Bus session environment.
 -      (Fdbus_init_bus): Pass the bus as argument to
 -      dbus_connection_set_watch_functions.  (Bug#5283)
 -
 -2010-01-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.m (ns_get_color): Fix buffer overflow (Bug#4763).
 -
 -      * lread.c (syms_of_lread): Make it clearer that these are the
 -      names of loaded files (Bug#5068).
 -
 -      * eval.c (run_hook_with_args): Handle the case where the global
 -      value has the obsolete single-function form (Bug#5026).
 -
 -2009-12-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * minibuf.c (Fall_completions): Minor optimization.
 -
 -2009-12-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit (pgx): Fix display of composite glyphs.
 -      Display cmp.from and cmp.to as well.
 -      (pitx): Fix last change.
 -
 -2009-12-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.h (composition_adjust_point): Update prototype.
 -
 -      * composite.c (composition_reseat_it): Don't make a composition
 -      spanning over point.
 -      (CHAR_COMPOSABLE_P): Treat U+200C (ZWNJ) and U+200D (ZWJ) as
 -      composable characters.
 -      (composition_adjust_point): New arg NEW_PT.  Callers changed.
 -
 -      * keyboard.c (command_loop_1): Force redisplay if the last point
 -      was within a composition.
 -      (adjust_point_for_property): Don't adjust point for automatic
 -      composition when called after buffer modification.
 -
 -2009-12-19  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit (pitx): Don't use enum names, use their values.
 -      Remove reference to non-existing value GET_FROM_COMPOSITION.
 -      (pgx): Don't use enum names, use their values.
 -      (pitmethod): New helper command.
 -      (pitx): Use it to display iteration method.
 -      (pgrowit): New command.
 -
 -      * makefile.w32-in ($(BLD)/cmds.$(O)): Depend on frame.h.
 -
 -      Update dependencies in Makefile.in.
 -
 -      * Makefile.in (alloc.o): Depend on termhooks.h.
 -      (atimer.o): Depend on blockinput.h.
 -      (buffer.o): Depend on indent.h, keyboard.h, coding.h, keymap.h,
 -      and frame.h.
 -      (callint.o): Depend on systime.h, coding.h, and composite.h.
 -      (callproc.o): Depend on buffer.h.
 -      (casefiddle.o): Don't depend on charset.h.
 -      (casetab.o): Depend on character.h.
 -      (ccl.o): Depend on composite.h.
 -      (chartab.o): Depend on ccl.h.
 -      (cm.o): Depend on dispextern.h.
 -      (cmds.o): Depend on systime.h, coding.h, frame.h, and composite.h.
 -      (coding.o): Don't depend on $(INTERVALS_H).
 -      (composite.o): Don't depend on dispextern.h explicitly (it's in
 -      $(INTERVALS_H)).  Depend on ccl.h.
 -      (data.o): Depend on systime.h, coding.h, composite.h,
 -      dispextern.h, font.h, and ccl.h.
 -      (dired.o): Depend on composite.h.
 -      (dispnew.o): Depend on coding.h.  Don't depend explicitly on
 -      composite.h (it's in $(INTERVALS_H)).
 -      (doc.o): Depend on systime.h, coding.h, and composite.h.
 -      (editfns.o): Don't depend explicitly on dispextern.h.
 -      (emacs.o): Depend on frame.h and coding.h.
 -      (eval.o): Depend on coding.h, composite.h, and xterm.h.
 -      (fileio.o): Depend on frame.h and commands.h.  Don't depend
 -      explicitly on dispextern.h.
 -      (filelock.o): Don't depend on epaths.h and charset.h.  Depend on
 -      composite.h.
 -      (fns.o): Don't depend on termhooks.h.
 -      (font.o): Depend on buffer.h, composite.h, fontset.h, and xterm.h.
 -      (fontset.o): Depend on blockinput.h, atimer.h, systime.h,
 -      coding.h, $(INTERVALS_H), window.h, xterm.h.
 -      (frame.o): Depend on coding.h, composite.h, termhooks.h, and ccl.h.
 -      (fringe.o): Depend on blockinput.h, atimer.h, and systime.h.
 -      (ftfont.o): Depend on blockinput.h, atimer.h, systime.h, coding.h,
 -      fontset.h, ccl.h, and ftfont.h.
 -      (ftxfont.o): Depend on atimer.h, systime.h, fontset.h, and ccl.h.
 -      (gtkutil.o): Depend on dispextern.h and composite.h.
 -      (image.o): Depend on epaths.h, character.h, coding.h, composite.h,
 -      termhooks.h, and ccl.h.
 -      (indent.o): Depend on systime.h, coding.h, and $(INTERVALS_H).
 -      (intervals.o): Depend on systime.h and coding.h.
 -      (keyboard.o): Depend on composite.h and coding.h.
 -      (keymap.o): Depend on coding.h and frame.h.
 -      (lread.o): Depend on systime.h, frame.h, blockinput.h, and atimer.h.
 -      (macros.o): Depend on systime.h, coding.h, and composite.h.
 -      (menu.o): Depend on systime.h, coding.h, composite.h, window.h,
 -      and atimer.h.
 -      (minibuf.o): Depend on systime.h and coding.h.  Don't depend on
 -      dispextern.h explicitly.
 -      (print.o): Depend on termhooks.h, coding.h, and ccl.h.
 -      Don't depend explicitly on dispextern.h and composite.h.
 -      (process.o): Depend on character.h, xgselect.h, and sysselect.h.
 -      (regex.o): Don't depend on charset.h.
 -      (scroll.o): Depend on systime.h, coding.h, composite.h, and window.h.
 -      (search.o): Don't depend explicitly on composite.h.
 -      (sound.o): Depend on atimer.h and systime.h.
 -      (syntax.o): Don't depend explicitly on composite.h.
 -      (sysdep.o): Depend on coding.h and composite.h.
 -      (term.o): Depend on xterm.h and buffer.h.
 -      (terminal.o): Depend on dispextern.h, composite.h, and systime.h.
 -      (textprop.o): Don't depend on dispextern.h explicitly.
 -      (undo.o): Depend on dispextern.h.
 -      (window.o): Depend on coding.h and termhooks.h.  Don't depend on
 -      dispextern.h and composite.h explicitly.
 -      (xdisp.o): Depend on ccl.h.
 -      (xfaces.o): Depend on coding.h and ccl.h.
 -      (xfns.o): Depend on $(INTERVALS_H) and ccl.h.
 -      (xfont.o): Depend on atimer.h, systime.h, fontset.h, and ccl.h.
 -      (xftfont.o): Depend on atimer.h, systime.h, fontset.h, ccl.h, and
 -      ftfont.h.
 -      (xgselect.o): New dependency.
 -      (xmenu.o): Depend on composite.h, keymap.h, and sysselect.h.
 -      (xselect.o): Depend on keyboard.h, coding.h, and composite.h.
 -      (xsettings.o): Depend on dispextern.h, keyboard.h, systime.h,
 -      coding.h, composite.h, blockinput.h, atimer.h, and termopts.h.
 -      (xsmfns.o): Depend on frame.h and dispextern.h.
 -      (xterm.o): Depend on intervals.h, keymap.h, xgselect.h, and
 -      sysselect.h.
 -
 -2009-12-19  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * font.c (Fclear_font_cache): Pass correct cache argument to
 -      font_clear_cache.
 -
 -2009-12-16  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * Makefile.in (prefix-args${EXEEXT}): Don't compile prefix-args.c
 -      twice.
 -
 -2009-12-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (decode_mode_spec): Inhibit garbage collection when
 -      calling file-remote-p.  Reported by Jim Meyering.
 -
 -2009-12-15  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_retrieve_arg): Reorder declarations in order to
 -      avoid compiler warnings.  (Bug #5217)
 -
 -2009-12-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_iso_2022): Ignore ISO_CODE_SS2_7 (0x19)
 -      in 8-bit encoding.
 -
 -2009-12-13  Pat Thoyts  <patthoyts@users.sourceforge.net>  (tiny change)
 -
 -      * xfns.c (x_create_tip_frame): Set the extended window manager hint for
 -      tooltip windows.
 -
 -2009-12-13  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (struct x_display_info): Add Xatom_net_window_type_tooltip and
 -      Xatom_net_window_type.
 -
 -      * xterm.c (x_term_init): Initialize Xatom_net_window_type_tooltip and
 -      Xatom_net_window_type.
 -
 -      * xterm.c (my_log_handler): New function.
 -      (x_term_init): Set my_log_handler as log handler during gtk_init
 -      so we can filter out buggy messages.  (Bug #5120).
 -
 -      * xterm.c (xg_scroll_callback): Parameter list changed,
 -      use parameter GtkScrollType to determine scroll/line/page.
 -      Only allow dragging if a button < 4 is grabbed (bug #5177).
 -      (xg_end_scroll_callback): New function.
 -      (x_create_toolkit_scroll_bar): Pass xg_end_scroll_callback to
 -      xg_create_scroll_bar.
 -
 -      * gtkutil.c (xg_gtk_scroll_destroy): Remove XG_LAST_SB_DATA handling.
 -      (scroll_end_callback): Remove.
 -      (xg_create_scroll_bar): Add parameter end_callback, bind it to
 -      button-release-event.  Replace value-changed event with change-value,
 -      bug #5177,
 -      (xg_event_is_for_scrollbar): Only return true if button is less than 4,
 -      bug #5177.
 -
 -      * gtkutil.h (XG_LAST_SB_DATA): Remove.
 -      (xg_create_scroll_bar): Add GCallback end_callback.
 -
 -      * xftfont.c (QClcdfilter): New variable.
 -      (xftfont_open): Parse constant names for RGBA, HINT_STYLE and LCDFILTER.
 -      (syms_of_xftfont): Initialize QClcdfilter.
 -
 -2009-12-12  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xsettings.c (struct xsettings): Add member seen.
 -      (parse_xft_settings): Update member seen with what we have read.
 -      Return non-zero if Xft-settings have been parsed, 0 otherwise.
 -      (apply_xft_settings): Only update Xft settings with what member seen
 -      indicates as new.
 -
 -2009-12-12  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dispextern.h (struct text_pos): Use EMACS_INT;
 -      (struct glyph): Use EMACS_INT for charpos.
 -      (struct it): Use EMACS_INT for stop_charpos, end_charpos,
 -      region_beg_charpos, region_end_charpos,
 -      redisplay_end_trigger_charpos, and also for
 -      iterator_stack_entry.end_charpos and
 -      iterator_stack_entry.stop_charpos.
 -
 -2009-12-12  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (scroll_end_callback): New function (bug #5177).
 -      (xg_create_scroll_bar): Call scroll_end_callback on button release
 -      event (bug #5177).
 -      (xg_event_is_for_scrollbar): != replaced with ==.
 -
 -2009-12-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (struct ftfont_info): New member matrix.
 -      (ftfont_open): Setup xftfont_info->matrix.
 -      (MFLTFontFT): New member matrix.
 -      (FLOOR, CEIL, ROUND): New macros.
 -      (ftfont_get_metrics): Handle matrix transformation.
 -      (ftfont_shape_by_flt): New arg matrix.  Callers changed.
 -
 -      * xftfont.c (struct xftfont_info): New member matrix.
 -      (xftfont_open): Setup xftfont_info->matrix.
 -
 -2009-12-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (append_space_for_newline): Consider face-remapping.
 -
 -2009-12-09  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * xsettings.c: Include "keyboard.h".
 -
 -      * gtkutil.c (xg_tool_bar_proxy_help_callback): Fix missing return.
 -
 -      Fix implicit function declarations.
 -      * cmds.c: Include "frame.h".
 -      * frame.c: Include "font.h" also if !HAVE_WINDOW_SYSTEM.
 -      * frame.h: Move declaration of delete_frame outside of
 -      HAVE_WINDOW_SYSTEM.
 -
 -2009-12-09  Ken Brown  <kbrown@cornell.edu>  (tiny change)
 -
 -      * s/cygwin.h (G_SLICE_ALWAYS_MALLOC): New variable.
 -
 -      * emacs.c (main): Set the G_SLICE environment variable for Cygwin
 -      GTK builds.
 -
 -2009-12-07  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * unexelf.c (unexec): Don't search for .data twice.
 -
 -2009-12-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (push_display_prop): Don't set avoid_cursor_p.  Return 0
 -      if push failed.
 -      (handle_line_prefix): Set avoid_cursor_p here.  Check return value
 -      of push_display_prop (Bug#5000).
 -
 -      * xfaces.c (Fx_family_fonts): Handle 2009-07-14 change to return
 -      value of font_list_entities (Bug#5085).
 -
 -2009-12-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      Fix `string-to-number' to deal consistently with integers and floats.
 -      * lread.c (isfloat_string): New argument ignore_trailing to accept all
 -      trailing characters, not just whitespace.
 -      (read1): Pass new arg 0 to keep old behavior.
 -      * data.c (Fstring_to_number): Pass 1 to isfloat_string to ignore
 -      trailing chars, as it is already done for integers.  Doc fixes.
 -      * lisp.h (isfloat_string): Add new arg to declaration of isfloat_string.
 -
 -2009-12-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dispextern.h (enum prop_idx) <AUTO_COMPOSED_PROP_IDX>:
 -      Delete unused enumeration value.
 -
 -2009-12-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (lisp, shortlisp): Replace indian.el with indian.elc.
 -
 -2009-12-03  Daniel Hackney  <dan@haxney.org>  (tiny change)
 -
 -      * process.c (Fmake_network_process): Fix up the tests for
 -      "connectionless socket", so they DTRT for seqpacket sockets as well.
 -
 -2009-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (Qseqpacket): New symbol.
 -      (HAVE_SEQPACKET): New macro.
 -      (Fmake_network_process): Accept new :type `seqpacket'.
 -      (init_process): Add `seqpacket' feature when applicable.
 -      (syms_of_process): Initialize Qseqpacket.
 -
 -2009-12-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * font.c (font_load_for_lface, font_open_by_name): Don't store name
 -      if entity is Qnil.
 -
 -2009-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * print.c (print_preprocess): Preprocess the key_and_value table of
 -      hashtables, even tho they're "hidden" (bug#5082).
 -
 -2009-11-29  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * frame.c (frame_make_pointer_invisible)
 -      (frame_make_pointer_visible): Declare f before statements.
 -
 -2009-11-28  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in [!AUTO_DEPEND]: Remove outdated comment about
 -      omitted dependencies on lisp.h.
 -
 -2009-11-27  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xftfont.c (xftfont_end_for_frame): Just return if dpyinfo->display
 -      is NULL.
 -
 -      * xterm.c (x_delete_terminal): Set dpyinfo->display to NULL.
 -
 -      * frame.c (frame_make_pointer_invisible)
 -      (frame_make_pointer_visible): Just return if there isn't any selected
 -      frame.
 -
 -      * search.c (simple_search): Remove warning by making *p const.
 -
 -2009-11-26  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xdisp.c (power_letter): Remove duplicate const.
 -
 -2009-11-25  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * term.c (delete_tty): Remove check for last terminal (bug#4970).
 -
 -      * xsettings.c: Revert changes from 2009-11-23.  Just use Xft
 -      defaults (bug #5025).
 -
 -2009-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * insdel.c (adjust_markers_for_delete): Move it in the
 -      right direction!  (bug#4803)
 -
 -2009-11-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * font.c (font_open_entity): Don't use ASET if font_object is Qnil.
 -
 -      * xterm.c (x_new_font): Update f->scroll_bar_actual_width.
 -
 -2009-11-24  Glenn Morris  <rgm@gnu.org>
 -
 -      * frame.c (focus-follows-mouse): Mention mouse-autoselect-window.
 -
 -2009-11-23  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * Makefile.in: Must create deps for ecrt0.o in its rule.
 -
 -      * xfns.c (Fx_select_font): Try to convert Fontconfig name to Gtk name
 -      because that is what Gtk+ font dialog understands.
 -
 -      * font.c (font_make_object, Fcopy_font_spec): Use Fcopy_alist instead
 -      of Fcopy_sequence.
 -      (font_open_by_name): Put name given into QCname for font-object returned.
 -
 -      * frame.c (x_set_font): Save original font name as frame parameter
 -      font-parameter.
 -
 -      * xsettings.c (set_default_xft_settings): New function.
 -      (init_xfd_settings): Call set_default_xft_settings if no XSETTINGS window
 -      is found.
 -
 -2009-11-22  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * search.c (simple_search): Avoid CHAR_TO_BYTE in inner loop when
 -      searching backwards through multibyte buffer.
 -
 -2009-11-21  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c: #include xgselect.h.
 -      (x_initialize): Call xgselect_initialize.
 -
 -      * xsettings.c (something_changedCB): C++ comments => C comments.
 -      (init_gconf): Do not deal with any GLib file descriptors, xg_select
 -      does that now.
 -
 -      * gtkutil.c (xg_timer, xg_process_timeouts, xg_start_timer)
 -      (xg_stop_timer, menu_grab_callback_cnt, menu_grab_callback)
 -      (scroll_bar_button_cb): Remove.
 -      (create_menus): C++ comments => C comments.  Don't bind grab-notify
 -      event.
 -      (xg_create_scroll_bar): Don't bind button-press-event and
 -      button-release-event.
 -
 -      * process.c: Include xgselect.h if defined (USE_GTK) ||
 -      defined (HAVE_GCONF).
 -      (wait_reading_process_output): Call xg_select for the same condition.
 -
 -      * xgselect.c (xg_select): New function to better integrate with
 -      GLib/Gtk event handling.  Needed if GConf daemon dies/restarts.
 -
 -      * xgselect.h: New file, declare xg_select, xgselect_initialize.
 -
 -      * Makefile.in (XOBJ): Add xgselect.o.
 -
 -2009-11-21  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH):
 -      Remove ignored second argument.  All callers changed.
 -      * regex.c (STRING_CHAR, STRING_CHAR_AND_LENGTH, RE_STRING_CHAR)
 -      (RE_STRING_CHAR_AND_LENGTH): Likewise.
 -      * xdisp.c (string_char_and_length): Likewise.
 -
 -2009-11-21  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xterm.c (x_new_font):
 -      * print.c (print_object):
 -      * cmds.c (Fself_insert_command): Move declarations before statements.
 -
 -2009-11-20  Ken Brown  <kbrown@cornell.edu>  (tiny change)
 -
 -      * s/cygwin.h: Remove unneeded linker flags.
 -
 -2009-11-20  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_default_font_parameter): Call xsettings_get_system_font.
 -
 -      * xsettings.h: Declare xsettings_get_system_font.
 -
 -      * xsettings.c (xsettings_get_system_font): New function.
 -      (init_gconf): No use initiating gconf unless we have Xft also.
 -      (syms_of_xsettings): Only provide system-font-setting if HAVE_XFT and
 -      HAVE_GCONF.
 -
 -      * gtkutil.c (xg_modify_menubar_widgets): If menubar is totally empty
 -      add a blank entry so it doesn't collapse into nothing.
 -
 -2009-11-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (Funintern): Comment out last change.
 -
 -2009-11-19  Richard Stallman  <rms@gnu.org>
 -
 -      * lread.c (Funintern): Error if symbol is t or nil.
 -
 -2009-11-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * insdel.c (make_gap_larger): Don't make as many assumptions about the
 -      representation of Lisp integers.
 -      Reported by MJ Chan <mjchan.inbox@gmail.com>.
 -
 -2009-11-17  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * lisp.h: Remove declaration of Ffont_get_system_font.
 -      * xfns.c: Move include of "xsettings.h".
 -      * xsettings.h: Use EXFUN to declare Ffont_get_system_font.
 -
 -2009-11-17  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xsettings.c (something_changedCB, Ffont_get_system_font):
 -      Check use_system_font.
 -      (syms_of_xsettings): DEFVAR font-use-system-font.
 -
 -2009-11-17  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * xfns.c (x_default_font_parameter): Remove dead assignment.
 -
 -      * lisp.h (Fbyteorder, init_font, Ffont_get_system_font): Declare.
 -
 -2009-11-17  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xftfont.c (xftfont_fix_match): Older versions of fontconfig do
 -      not have FC_LCD_*.  #define them if not there.
 -
 -      * xsettings.c (parse_xft_settings, apply_xft_settings): Ditto.
 -
 -      * xterm.h (struct x_display_info): Add atoms and Window for xsettings.
 -
 -      * xterm.c (handle_one_xevent): Call xft_settings_event for
 -      ClientMessage, PropertyNotify and DestroyNotify.
 -      (x_term_init): If we have XFT, get DPI from Xft.dpi.
 -      Call xsettings_initialize.
 -
 -      * xftfont.c (xftfont_fix_match): New function.
 -      (xftfont_open): Call XftDefaultSubstitute before XftFontMatch.
 -      Call xftfont_fix_match after XftFontMatch.
 -
 -      * xfont.c (xfont_driver): Initialize all members.
 -
 -      * xfns.c (x_default_font_parameter):
 -      Try font from Ffont_get_system_font.
 -      Do not get font from x_default_parameter if we got one from
 -      Ffont_get_system_font.
 -      (Fx_select_font): Get the defaut font name from :name of FRAME_FONT(f).
 -
 -      * w32font.c (w32font_driver): Initialize all members.
 -
 -      * termhooks.h (enum event_kind): CONFIG_CHANGED_EVENT is new.
 -
 -      * lisp.h: Declare syms_of_xsettings.
 -
 -      * keyboard.c (kbd_buffer_get_event, make_lispy_event):
 -      Handle CONFIG_CHANGED_EVENT.
 -
 -      * ftfont.c (ftfont_filter_properties): New function.
 -
 -      * frame.c (x_set_font): Remove unused variable lval.
 -
 -      * font.h (struct font_driver): Add filter_properties.
 -
 -      * font.c (font_put_extra): Don't return if val is nil, it means
 -      boolean option is off.
 -      (font_parse_fcname): Collect all extra properties in extra_props
 -      and call filter_properties for all drivers with extra_props and
 -      font as parameter.
 -      (font_open_entity): Do not use cache, it does not pick up new
 -      fontconfig settings like hinting.
 -      (font_load_for_lface): If spec had a name in it, store it in entity.
 -
 -      * emacs.c (main): Call syms_of_xsettings.
 -
 -      * config.in: HAVE_GCONF is new.
 -
 -      * Makefile.in (GCONF_CFLAGS, GCONF_LIBS): New variables for HAVE_GCONF.
 -      xsettings.o is new.
 -
 -2009-11-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (x_produce_glyphs): Consider face-remapping when falling
 -      back to the default font in case that no suitable font is found.
 -
 -2009-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * menu.c (Fx_popup_menu) [HAVE_NS]: Use generic code for window edge.
 -      Suggested by Chad Brown <yandros@mit.edu>.
 -      (push_menu_item): Use MENU_ITEMS_ITEM_* names.
 -
 -2009-11-16  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (x_menu_wait_for_event): Call XFlush before select.
 -
 -2009-11-14  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * Makefile.in: Ignore errors from mkdir when creating deps directory.
 -
 -2009-11-14  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_update_frame_menubar): Do nothing if menubar already
 -      has a parent.
 -
 -      * Makefile.in: If AUTO_DEPEND is defined, make gcc generate
 -      dependency files in deps/.  Include those files into Makefile.
 -
 -      * config.in: Generated (AUTO_DEPEND).
 -
 -2009-11-13  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Vdbus_registered_objects_table): Rename from
 -      Vdbus_registered_functions_table, because it contains also
 -      properties.  Fix docstring.
 -      (Fdbus_call_method, Fdbus_call_method_asynchronously): Fix docstring.
 -
 -2009-11-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (mark_object): Don't reprocess marked strings.
 -      Check vector's markbit earlier.  Adjust calls to mark_vectorlike.
 -      (mark_vectorlike, mark_char_table): Assume the object is unmarked.
 -
 -2009-11-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * category.c (word_boundary_p): Adjust for the change of the
 -      semantics of Vword_combining_categories.
 -      (Vword_combining_categories): Describe the slight change of the
 -      semantics.
 -
 -2009-11-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * menu.c (Fx_popup_menu): Call Fx_hide_tip only if HAVE_WINDOW_SYSTEM.
 -
 -      * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Revert last change.
 -
 -2009-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (syms_of_xdisp): Fix typo in last change.
 -
 -2009-11-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * makefile.w32-in: Update dependencies; add dependencies to lisp.h.
 -
 -2009-11-11  David Reitter  <david.reitter@gmail.com>
 -
 -      * menu.c (Fx_popup_menu): Remove left-over debugging code and rename
 -      variables to fix 2009-11-09 change.
 -
 -2009-11-11  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * process.c (ifflag_def): Make flag_sym constant.
 -      (Fnetwork_interface_info): Use a constant pointer.
 -      (ifflag_table):
 -      * xfns.c (cursor_bits):
 -      * xdisp.c (power_letter):
 -      * termcap.c (speeds, esctab):
 -      * sysdep.c (baud_convert):
 -      * keyboard.c (lispy_accent_codes, modifier_names):
 -      * image.c (xbm_format, xpm_format, pbm_format, png_format)
 -      (jpeg_format, tiff_format, gif_format, svg_format)
 -      (interlace_start, interlace_increment, gs_format):
 -      * gtkutil.c (separator_names):
 -      * fringe.c (swap_nibble):
 -      * fns.c (base64_value_to_char, base64_char_to_value):
 -      * fileio.c (make_temp_name_tbl):
 -      * coding.c (suffixes): Make constant.
 -
 -      * frame.c (make_initial_frame):
 -      * buffer.c (init_buffer_once): Use make_pure_c_string instead of
 -      build_string.
 -      * alloc.c (syms_of_alloc): Build Vmemory_signal_data in pure memory.
 -
 -      * s/freebsd.h:
 -      * s/netbsd.h: Remove code referring to non-existent file: unexsunos4.o.
 -
 -      * Makefile.in: Add dependencies to lisp.h.  Remove dependencies
 -      for non-existent files: unexmips.c, unexnext.c, abbrev.c, malloc.c.
 -
 -      * xfns.c (syms_of_xfns): Use make_pure_string instead of build_string.
 -      * xterm.c (syms_of_xterm):
 -      * xfaces.c (syms_of_xfaces):
 -      * xdisp.c (syms_of_xdisp):
 -      * lread.c (syms_of_lread):
 -      * keyboard.c (syms_of_keyboard): Use make_pure_c_string instead of
 -      build_string.
 -
 -      * doc.c (Fsnarf_documentation): Purecopy Vbuild_files.
 -
 -2009-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fns.c (Fplist_get): Merge the active and the commented out code.
 -
 -2009-11-10  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.h: Declare timer_check.
 -
 -      * keyboard.c (timer_check_2): New function that does what the old
 -      timer_check did.
 -      (timer_check): Call timer_check_2 until -1 or a non-zero time is
 -      returned, i.e. don't return -1 with timers pending.
 -
 -      * process.c: Remove extern declaration of timer_check.
 -
 -      * xmenu.c (x_menu_wait_for_event): Remove code that did a timeout
 -      even if timer_check returned -1.
 -
 -      * gtkutil.c (xg_dialog_response_cb): Data is now a struct
 -      xg_dialog_data.
 -      (pop_down_dialog): Destroy widget (if any), cancel timer and unref
 -      the event loop.
 -      (xg_maybe_add_timer, xg_dialog_run): New functions (bug #4574).
 -      (xg_get_file_name, xg_get_font_name): Call xg_dialog_run (bug #4574).
 -      Destroy the dialog after xg_dialog_run.
 -
 -2009-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * menu.c (Fx_popup_menu) [HAVE_NS]: Remove unused vars.
 -
 -2009-11-10  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (xmenu_show): Must not be static after 2009-11-09 changes.
 -
 -2009-11-09  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * menu.c [HAVE_NTGUI]: Declare current_popup_menu.
 -
 -2009-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * menu.c (Fx_popup_menu): Consolidate versions from xmenu.c,
 -      w32menu.c, and nsmenu.m.
 -      Simplify the obsolete case where position is nil.
 -      (cleanup_popup_menu): New function, moved from nsmenu.m.
 -      (struct skp): Remove slot `notreal'.
 -      (single_keymap_panes, keymap_panes): Remove arg `notreal' and
 -      adjust callers.
 -      (single_menu_item): Adjust call to parse_menu_item.
 -      (syms_of_menu): Defsubr x-popup-menu.
 -      * menu.h (Vmenu_updating_frame): Consolidate declarations from *menu.c.
 -      (keymap_panes): Don't export any more.
 -      (mouse_position_for_popup, w32_menu_show, ns_menu_show)
 -      (xmenu_show): Declare.
 -      * keyboard.c (parse_menu_item): Remove arg `notreal'.
 -      (menu_bar_item, read_char_minibuf_menu_prompt): Adjust callers.
 -      * keyboard.h (parse_menu_item): Update declaration.
 -      * xmenu.c (Fx_popup_menu): Remove.
 -      (syms_of_xmenu): Don't defsubr x-popup-menu.
 -      * w32menu.c (Fx_popup_menu): Remove.
 -      (syms_of_w32menu): Don't defsubr x-popup-menu.
 -      * nsmenu.m (cleanup_popup_menu): Remove.
 -      (ns_menu_show): Rename from ns_popup_menu and remove all the code
 -      moved to menu.c's Fx_popup_menu.
 -      (Fx_popup_menu): Remove.
 -      (syms_of_nsmenu): Don't defsubr x-popup-menu, and don't initialize
 -      menu_items (it's done in menu.c already).
 -
 -2009-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (parse_menu_item): Handle `notreal' a bit earlier.
 -      Use `tem' less.  Make sure KEYEQ holds a string or nil (bug#4879).
 -
 -2009-11-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xmenu.c (Fx_popup_menu): Extract event timestamp.  Pass it to
 -      xmenu_show.  Hide any tooltip before opening a menu.
 -      (xmenu_show): New arg.  Pass it to create_and_show_popup_menu.
 -      (create_and_show_popup_menu): New arg.  Pass it to gtk_menu_popup.
 -
 -2009-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Let integers use up 2 tags to give them one extra bit and thus double
 -      their range.
 -      * lisp.h (USE_2_TAGS_FOR_INTS): New macro.
 -      (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P):
 -      New macros.
 -      (enum Lisp_Type): Use them.  Give explicit values.
 -      (Lisp_Type_Limit): Remove.
 -      (XINT, XUINT, make_number) [!USE_LISP_UNION_TYPE]:
 -      (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
 -      Pay attention to USE_2_TAGS_FOR_INTS.
 -      (INTEGERP): Use LISP_INT_TAG_P.
 -      * fns.c (internal_equal): Simplify the default case.
 -      (sxhash): Use case_Lisp_Int.
 -      * data.c (wrong_type_argument): Don't check against Lisp_Type_Limit
 -      any more.
 -      (Ftype_of): Use case_Lisp_Int.
 -      (store_symval_forwarding): Take into account the fact that Ints can
 -      now have more than one tag.
 -      * buffer.c (syms_of_buffer): Use LISP_INT_TAG.
 -      buffer_slot_type_mismatch):
 -      * xfaces.c (face_attr_equal_p):
 -      * print.c (print_object):
 -      * alloc.c (mark_maybe_object, mark_object, survives_gc_p):
 -      Use case_Lisp_Int.
 -
 -2009-11-06  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce by further 30K.
 -
 -      * alloc.c (make_pure_c_string): Fix last change to avoid compiler
 -      warning.
 -
 -2009-11-06  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_event_is_for_scrollbar): New function (bug#4870).
 -
 -      * gtkutil.h: Declare xg_event_is_for_scrollbar (bug#4870).
 -
 -      * xterm.c (handle_one_xevent): Call xg_event_is_for_scrollbar for
 -      ButtonPressRelease and MotionNotify (bug#4870).
 -
 -2009-11-06  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * keymap.c (syms_of_keymap): Construct exclude_keys in pure memory.
 -
 -      * xterm.c (syms_of_xterm):
 -      * xselect.c (syms_of_xselect):
 -      * xmenu.c (syms_of_xmenu):
 -      * xfns.c (syms_of_xfns):
 -      * xfaces.c (syms_of_xfaces):
 -      * xdisp.c (syms_of_xdisp):
 -      * window.c (syms_of_window):
 -      * w32fns.c (syms_of_w32fns):
 -      * undo.c (syms_of_undo):
 -      * textprop.c (syms_of_textprop):
 -      * terminal.c (syms_of_terminal):
 -      * syntax.c (syms_of_syntax):
 -      * sound.c (syms_of_sound):
 -      * search.c (syms_of_search):
 -      * print.c (syms_of_print):
 -      * minibuf.c (syms_of_minibuf):
 -      * macros.c (syms_of_macros):
 -      * keymap.c (syms_of_keymap, initial_define_key)
 -      (initial_define_lispy_key):
 -      * keyboard.c (syms_of_keyboard):
 -      * insdel.c (syms_of_insdel):
 -      * image.c (syms_of_image):
 -      * fringe.c (syms_of_fringe):
 -      * frame.c (syms_of_frame):
 -      * fontset.c (syms_of_fontset):
 -      * fns.c (syms_of_fns):
 -      * fns.c (syms_of_fns):
 -      * fileio.c (syms_of_fileio):
 -      * fileio.c (syms_of_fileio):
 -      * eval.c (syms_of_eval):
 -      * doc.c (syms_of_doc):
 -      * dispnew.c (syms_of_display):
 -      * dired.c (syms_of_dired):
 -      * dbusbind.c (syms_of_dbusbind):
 -      * data.c (syms_of_data):
 -      * composite.c (syms_of_composite):
 -      * coding.c (syms_of_coding):
 -      * cmds.c (syms_of_cmds):
 -      * charset.c (define_charset_internal, syms_of_character):
 -      * ccl.c (syms_of_ccl):
 -      * category.c (syms_of_category, init_category_once):
 -      * casetab.c (syms_of_casetab):
 -      * casefiddle.c (syms_of_casefiddle):
 -      * callint.c (syms_of_callint):
 -      * bytecode.c (syms_of_bytecode):
 -      * buffer.c (keys_of_buffer, syms_of_buffer):
 -      * alloc.c (syms_of_alloc):
 -      * process.c (syms_of_process, init_process):
 -      * lread.c (syms_of_lread, init_obarray):
 -      * font.c (build_style_table):
 -      * emacs.c (syms_of_emacs, main): Replace calls to intern with
 -      intern_c_string, calls to make_pure_string with
 -      make_pure_c_string.  Use pure_cons instead of Fcons.
 -
 -      * process.c (socket_options): Make it const.
 -      (set_socket_option, init_process): Use a const pointer.
 -
 -      * lread.c (intern_c_string): New function.
 -      (defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
 -      (defvar_int): Uset it.  Make the name const char*.
 -
 -      * lisp.h (defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
 -      (defvar_int): Update prototypes.
 -      (DEFUN, EXFUN): Support for prototypes is now required.
 -      (intern_c_string): New prototype.
 -      (struct Lisp_Subr): Make symbol_name constant.
 -
 -      * font.c (struct table_entry): Remove unused member.  Make NAMES
 -      constant.
 -      (weight_table, slant_table, width_table): Make constant.
 -
 -      * emacs.c (struct standard_args): Make name and longname constant.
 -
 -      * character.h (DEFSYM): Use intern_c_string.
 -
 -2009-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (make_pure_c_string): New function.
 -
 -      * eval.c (Fautoload): Purecopy all arguments.
 -
 -2009-11-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): Be sure set coding-system of
 -      the buffer in case of replace.
 -
 -2009-11-04  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1620000.
 -
 -2009-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (save_restriction_restore): Update the (pt/begv/vz)_markers
 -      when applicable (bug#4851).
 -
 -      * lisp.h: Make USE_LSB_TAG work with USE_LISP_UNION_TYPE.
 -      (P_): Support for prototypes is now required.
 -
 -2009-10-31  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
 -      (Bug#4827).
 -
 -2009-10-30  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Redefine to waste less pure space.
 -
 -2009-10-30  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1470000.
 -
 -      * lread.c (Fload): Purecopy the file name when building
 -      Vpreloaded_file_list.
 -
 -2009-10-29  Jason Rumney  <jasonr@wanchan.jasonrumney.net>
 -
 -      * w32fns.c (syms_of_w32fns): Change default value of
 -      w32-scroll-lock-modifier to nil.  (Bug#2827)
 -
 -2009-10-26  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (Fall_completions): Fix typos in docstring.
 -
 -2009-10-26  Andreas Schwab  <schwab@redhat.com>
 -
 -      * puresize.h (PURESIZE_RATIO): Increase back to 10/6.
 -
 -2009-10-26  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (grow_mini_window): Comment out "delta >= 0" assertion.
 -      For delta < 0, skip check that only makes sense when the mini-window
 -      is going to be enlarged.  (Bug#4534)
 -
 -2009-10-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_char_x_menu_prompt): Don't demand a prompt
 -      string in menu maps (Bug#4471).
 -
 -2009-10-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsfns.m (ns_set_name, ns_set_name_as_filename): Don't call
 -      FRAME_NS_VIEW on terminal frames (Bug#4765).
 -
 -2009-10-24  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * dbusbind.c (xd_retrieve_arg): Handle DBUS_TYPE_INTnn and
 -      DBUS_TYPE_UINTnn separately to get proper sign extension.
 -
 -      * dired.c (Ffile_attributes): Simplify now that FIXNUM_OVERFLOW_P
 -      can properly handle unsigned types.
 -      (make_uid, make_gid): Remove.
 -
 -      * lisp.h (FIXNUM_OVERFLOW_P): Fix last change to handle unsigned
 -      types again.
 -
 -      * sysdep.c (procfs_ttyname): Fix sprintf format to match argument type.
 -      (system_process_attributes): Likewise.
 -
 -2009-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * keymap.c (Fmake_sparse_keymap): Purecopy the name.
 -
 -      * eval.c (Fautoload): Purecopy the filename.  Simplify.
 -
 -      * category.c (Fdefine_category): Purecopy docstring.
 -
 -2009-10-23  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * lisp.h (FIXNUM_OVERFLOW_P): Remove cast to avoid overflow.
 -
 -      * puresize.h (PURESIZE_RATIO): Decrease to 11/7.
 -
 -2009-10-23  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * window.c (Fwindow_edges, Fwindow_pixel_edges)
 -      (Fwindow_inside_edges, Fwindow_inside_pixel_edges): Doc fix
 -      (Bug#4775).
 -
 -2009-10-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (syms_of_fileio): Initialize Vdirectory_sep_char.
 -      (init_fileio_once):
 -      * lisp.h (init_fileio_once): Remove.
 -      * emacs.c (main): Don't call init_fileio_once.
 -
 -2009-10-23  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1430000.
 -
 -2009-10-21  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * doprnt.c (doprnt): Fix overflow check.
 -
 -2009-10-21  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_term_init): Remove XSynchronize call done for debugging.
 -
 -      * xterm.h (x_wait_for_event): Declare it.
 -
 -      * xterm.c (pending_event_wait): New variable.
 -      (handle_one_xevent): Set pending_event_wait.eventtype to 0 if we
 -      see pending_event_wait.eventtype.
 -      (handle_one_xevent): Don't change gravity when parent changes.
 -      (x_new_font): Call change_frame_size with new rows/columns before we
 -      try to resize the frame.
 -      (x_wait_for_event): New function.
 -      (x_set_window_size_1): Don't change gravity unless change_gravity
 -      is set.
 -      Call XResizeWindow with FRAME_OUTER_WINDOW.  If we are visible,
 -      don't change frame size, instead wait for the ConfigureNotify.
 -      (x_set_window_size): Call x_set_window_size_1 for USE_X_TOOLKIT also.
 -      (x_wm_set_size_hint): Remove ifdefs for USE_X_TOOLKIT.
 -      (x_initialize): Initialize pending_event_wait.
 -
 -      * xmenu.c (set_frame_menubar): Add internal border width to menu bar
 -      size.
 -
 -      * widget.c (EmacsFrameSetValues): Add comment.
 -      (EmacsFrameSetCharSize): Just call x_set_window_size.
 -
 -      * gtkutil.c (xg_frame_set_char_size): Flush events and call
 -      x_wait_for_event.
 -      (flush_and_sync): Remove again.
 -      (xg_get_font_name): Suggest monospace if no previous font is known.
 -
 -2009-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * character.c (char_resolve_modifier_mask): Don't resolve meta to the
 -      8th bit, since that only made sense in the ASCII world (bug#4751).
 -
 -2009-10-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xterm.c (XTread_socket) [!USE_GTK && HAVE_X_I18N]: Don't quit
 -      processing pending events when event is filtered for input method.
 -      (Bug#3681)
 -
 -2009-10-20  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fns.c: Add #endif accidentally removed in previous change.
 -
 -2009-10-19  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * fns.c: Remove code for unsupported system: MAC_OS.
 -      * image.c: Likewise.  Include setjmp.h.
 -
 -2009-10-19  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_create_toolkit_scroll_bar): Don't allocate color for
 -      pixel -1 (bug #4742).
 -
 -2009-10-19  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * process.c (create_pty): Remove conditionals for no longer
 -      supported systems: UNIPLUS and RTU.
 -
 -      * xterm.c:
 -      * xfns.c: Remove always true condition: XtSpecificationRelease >= 5.
 -
 -      * alloc.c: Do not define struct catchtag.
 -      * eval.c: Move struct catchtag definition ...
 -      * lisp.h: ... here.
 -
 -      * image.c: Move png.h #include earlier to avoid warnings.
 -
 -      * xterm.c:
 -      * xsmfns.c:
 -      * xselect.c:
 -      * xrdb.c:
 -      * xmenu.c:
 -      * xftfont.c:
 -      * xfont.c:
 -      * xfns.c:
 -      * xfaces.c:
 -      * xdisp.c:
 -      * window.c:
 -      * widget.c:
 -      * w32xfns.c:
 -      * w32uniscribe.c:
 -      * w32term.c:
 -      * w32select.c:
 -      * w32reg.c:
 -      * w32proc.c:
 -      * w32menu.c:
 -      * w32inevt.c:
 -      * w32heap.c:
 -      * w32font.c:
 -      * w32fns.c:
 -      * w32console.c:
 -      * w32.c:
 -      * w16select.c:
 -      * vm-limit.c:
 -      * unexsol.c:
 -      * unexec.c:
 -      * unexcw.c:
 -      * unexaix.c:
 -      * undo.c:
 -      * tparam.c:
 -      * textprop.c:
 -      * terminfo.c:
 -      * terminal.c:
 -      * termcap.c:
 -      * term.c:
 -      * syntax.c:
 -      * sound.c:
 -      * sheap.c:
 -      * search.c:
 -      * scroll.c:
 -      * region-cache.c:
 -      * regex.c:
 -      * ralloc.c:
 -      * process.c:
 -      * print.c:
 -      * nsterm.m:
 -      * nsselect.m:
 -      * nsmenu.m:
 -      * nsimage.m:
 -      * nsfont.m:
 -      * nsfns.m:
 -      * msdos.c:
 -      * minibuf.c:
 -      * menu.c:
 -      * marker.c:
 -      * macros.c:
 -      * keymap.c:
 -      * keyboard.c:
 -      * intervals.c:
 -      * insdel.c:
 -      * indent.c:
 -      * gtkutil.c:
 -      * ftxfont.c:
 -      * ftfont.c:
 -      * fringe.c:
 -      * frame.c:
 -      * fontset.c:
 -      * font.c:
 -      * fns.c:
 -      * floatfns.c:
 -      * filelock.c:
 -      * fileio.c:
 -      * emacs.c:
 -      * editfns.c:
 -      * dosfns.c:
 -      * doprnt.c:
 -      * doc.c:
 -      * dispnew.c:
 -      * dired.c:
 -      * dbusbind.c:
 -      * data.c:
 -      * composite.c:
 -      * coding.c:
 -      * cmds.c:
 -      * cm.c:
 -      * chartab.c:
 -      * charset.c:
 -      * character.c:
 -      * ccl.c:
 -      * category.c:
 -      * casetab.c:
 -      * casefiddle.c:
 -      * callproc.c:
 -      * callint.c:
 -      * bytecode.c:
 -      * buffer.c:
 -      * atimer.c: Include setjmp.h.  (Bug#4643)
 -
 -2009-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Remove leftover table unibyte_to_multibyte_table.
 -      * character.c (unibyte_to_multibyte_table): Remove.
 -      (Funibyte_char_to_multibyte): Use MAKE_CHAR_MULTIBYTE.
 -      * charset.c (init_charset_once): Don't init unibyte_to_multibyte_table.
 -      * character.h (UNIBYTE_TO_CHAR): New macro.
 -      (MAKE_CHAR_MULTIBYTE): Use it.
 -      (unibyte_to_multibyte_table, unibyte_char_to_multibyte): Remove.
 -      * xdisp.c (get_next_display_element): USE ASCII_CHAR_P.
 -      (message_dolog, set_message_1):
 -      * search.c (Freplace_match):
 -      * editfns.c (Fcompare_buffer_substrings):
 -      * fns.c (Fcompare_strings): Use MAKE_CHAR_MULTIBYTE.
 -      (concat):
 -      * insdel.c (copy_text, count_size_as_multibyte):
 -      Use ASCII_CHAR_P and BYTE8_TO_CHAR.
 -      * term.c (produce_glyphs):
 -      * syntax.c (skip_chars): Use BYTE8_TO_CHAR.
 -      * regex.c (RE_CHAR_TO_MULTIBYTE):
 -      * cmds.c (internal_self_insert):
 -      * buffer.h (FETCH_CHAR_AS_MULTIBYTE): Use UNIBYTE_TO_CHAR.
 -
 -      * cmds.c (internal_self_insert): `c' is already in "multibyte" form.
 -
 -2009-10-17  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1310000.
 -
 -2009-10-16  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (Fbuffer_name): Doc fix.  (Bug#4728)
 -
 -2009-10-15  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.h (NS_HAVE_NSINTEGER): Back out and augment with CGFloat,
 -      still needed under Tiger.
 -
 -      * nsterm.m (EmacsView-conversationIdentifier): Arg is long.
 -
 -      * m/amdx86-64.h: Don't set LIB_STANDARD and START_FILES under
 -      __Apple__.
 -
 -      * m/intel386.h: Remove DARWIN_OS/_LP64 special case.
 -
 -2009-10-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * print.c (print_object): Escape a symbol like "2E10" too.
 -
 -2009-10-11  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      Cleanups and changes for 64-bit compile under Snow Leopard.
 -      Based on suggestions by Erik Charlebois.
 -
 -      * nsfns.m (xw-color-values): Use CGFloat where appropriate.
 -
 -      * nsfont.m (ns_char_width): Replace deprecated call.
 -      (ns_findfonts, nsfont_list_family): Use long format in printf, and
 -      cast argument.
 -      (nsfont_open): Use ns_char_width() everywhere.
 -      (ns_uni_to_glyphs, NSGlyphStorage): Use NS[U]Integer where appropriate.
 -
 -      * nsgui.h (NSPoint, NSSize) [!__OBJC__]: Define and use CGFloat.
 -
 -      * nsimage.m (EmacsImage-setXBMColor:,-getPixelAtX:Y:): Use CGFloat
 -      where appropriate.
 -
 -      * nsmenu.m (EmacsMenu-addItemWithWidgetValue:): Use NSInteger
 -      where appropriate.
 -      (EmacsToolbar-addDisplayItemWithImage:idx:helpText:enabled:):
 -      Use stringWithUTF8String.
 -      (EmacsDialogPanel-initWithContentRect:styleMask:): Fix signature.
 -
 -      * nsterm.h (EmacsView, EmacsMenu, EmacsToolbar, EmacsTooltip):
 -      Add formal protocol mention to inheritance.
 -      [NS_HAVE_NSINTEGER]: Drop conditional and contents.
 -
 -      * nsterm.m (ns_color_to_lisp): Use CGFloat where appropriate.
 -      Fix printf format.
 -      (ns_query_color): Use CGFloat where appropriate.
 -      (EmacsView<NSTextInput>, EmacsScroller): Fix method signatures.
 -      (EmacsScroller-mouseDown:): Use long format in printf, and cast
 -      argument.
 -
 -      * config.in (NS_HAVE_NSINTEGER): Drop.
 -
 -      * dbusbind.c (dbus-method-return-internal)
 -      (dbus-method-error-internal): Use long format in printf, and cast
 -      argument.
 -
 -      * font.c (font_unparse_xlfd, font_unparse_fcname): Use long format
 -      in printf, and cast argument.
 -
 -      * process.c (list_processes_1): Use long format in printf, and
 -      cast argument.
 -
 -2009-10-11  Glenn Morris  <rgm@gnu.org>
 -
 -      * frame.c (Fframe_pixel_height): Doc fix.  (Bug#4535)
 -
 -2009-10-08  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (create_menus): Call gtk_widget_set_size_request for
 -      menu bar with a small width so it doesn't enlarge the frame.
 -
 -2009-10-08  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fontset.c (Fset_fontset_font): Fix typos in error messages.
 -
 -2009-10-06  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (emacs${EXEEXT}): Remove direct dependence on
 -      SOME_MACHINE_LISP (this enters indirectly via DOC).
 -
 -2009-10-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Doc fix.  (Bug#4638)
 -
 -2009-10-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xdisp.c (syms_of_xdisp) <unibyte-display-via-language-environment>:
 -      Doc fix.
 -
 -2009-10-03  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fdelete_window): Check WINDOW argument.  (Bug#4618)
 -
 -2009-10-02  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * lisp.h (Qdelete_directory_internal): Remove, because it is not
 -      used anymore outside fileio.c.
 -
 -      * w32fns.c (Fsystem_move_file_to_trash): Use delete-directory.
 -
 -2009-10-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * lisp.h (Qdelete_directory_internal):
 -      Declare, instead of Qdelete_directory.
 -
 -      * w32fns.c (Fsystem_move_file_to_trash): Use it.
 -
 -2009-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (Fcalled_interactively_p): Add `kind' argument.
 -
 -2009-10-01  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * fileio.c (Fdelete_directory_internal): Rename from
 -      Fdelete_directory.  It is not a command anymore.  It has no file
 -      name handler.
 -
 -2009-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (get_next_display_element): Use an enum in last change.
 -
 -2009-09-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (get_next_display_element): Pay attention to
 -      unibyte_display_via_language_environment in handling
 -      Vnobreak_char_display.
 -
 -2009-09-27  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.h (ns_app_name): New extern variable.
 -
 -      * nsterm.m (ns_app_name): New variable.
 -      (ns_term_init): Set and use it.
 -      (ns_term_shutdown): Use it.
 -
 -      * nsmenu.m (ns_update_menubar): Use ns_app_name.  Sync with xmenu.c.
 -      (EmacsMenu-clear:, ns_popup_dialog): Use ns_app_name.
 -
 -      * nsfns.m (ns_set_name_iconic, ns_set_name)
 -      (ns_set_name_as_filename, x-create-frame, ns-get-resource)
 -      (ns-set-resource): Use ns_app_name instead of NSProcessInfo call.
 -
 -      * menu.c (find_and_return_menu_selection) [HAVE_NS]:
 -      Remove double-casting in client_data comparison.
 -
 -2009-09-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (make_lispy_event): Remember last wheel direction.
 -      (syms_of_keyboard) <wheel_syms>: Compute array size at compile time.
 -
 -2009-09-26  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (MSDOS_SUPPORT) [MSDOS]: Remove unneeded '/' in
 -      internal.elc.  Add term/pc-win.elc.
 -      (WINDOW_SUPPORT) [HAVE_X_WINDOWS]: Add term/common-win.elc and
 -      term/x-win.elc.
 -      (WINNT_SUPPORT) [WINDOWSNT]: Add term/common-win.elc and
 -      term/w32-win.elc.
 -      (NS_SUPPORT): New.
 -      (lisp): Add NS_SUPPORT.
 -      (SOME_MACHINE_LISP): Add term/w32-win.elc and emacs-lisp/easymenu.elc.
 -
 -2009-09-25  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsmenu.m (EmacsMenu-clear): Recognize application menu
 -      on Mac OS X 10.6+ (bug#4513).
 -
 -2009-09-24  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * frame.c (xrdb_get_resource): Return nil for empty string resources;
 -      some parts of Emacs code (like font selection) don't grok them.
 -      See http://lists.gnu.org/archive/html/emacs-devel/2009-09/msg00528.html
 -
 -2009-09-24  Andreas Schwab  <schwab@redhat.com>
 -
 -      * coding.c (decode_coding_iso_2022): Fix operator precedence.
 -
 -2009-09-24  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * dired.c (Fdirectory_files): Fix typo in docstring.
 -
 -2009-09-23  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (EV_TIMESTAMP, x_set_window_size)
 -      (EmacsApp-application:openFiles:): Remove GNUstep conditionals.
 -      (EmacsScroller-setPosition:portion:whole:): Remove -display call
 -      under GNUstep.
 -      (EmacsView-initFrameFromEmacs:): Set autoresizing mask.
 -
 -      * nsfont.m (ns_glyph_metrics): Remove GNUstep conditional for
 -      glyph advancement.
 -
 -2009-09-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (CGContextSetFontRenderingMode): Drop declaration.
 -      (EmacsScroller-mouseDown:): Use SCROLL_BAR_FIRST_DELAY.
 -
 -      * nsmenu.m (EmacsMenu-menuNeedsUpdate): Ignore if frame has been
 -      deleted (bug #4492).
 -
 -      * nsfont.m (Vns_reg_to_script): New lisp variable.
 -      (syms_of_nsfont): Declare it.
 -      (ns_registry_to_script): New function.
 -      (ns_get_req_script): Call it.
 -      (ns_findfonts): Don't give up on non-unicode registry.
 -
 -      * font.c (DEFAULT_ENCODING) [HAVE_NS]: Remove special case.
 -
 -2009-09-20  Tom Tromey  <tromey@redhat.com>
 -
 -      * eval.c (find_handler_clause): Make stack-trace-on-error work in
 -      batch mode (bug#4228).
 -
 -2009-09-18  Rob Christie  <robchristie@gmail.com>  (tiny change)
 -
 -      * nsmenu.m (EmacsMenu-parseKeyEquiv:): Parse key equivalent more
 -      carefully.  (Bug #4339)
 -
 -2009-09-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * syntax.c (Fchar_syntax): Minor doc fix (Bug#4400).
 -
 -2009-09-18  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * emacs.c (inhibit_x_resources): Update doc string for NS.
 -      (main) [HAVE_NS]: Don't process --no-init-file option.  Remove
 -      legacy code for -NXHost.  Fix error printf in daemon case.
 -
 -      * nsterm.h (ns_no_defaults): Remove.
 -
 -      * nsterm.m (ns_no_defaults): Remove.
 -      (ns_term_init): Switch ns_no_defaults -> inhibit_x_resources.
 -      (ns_use_qd_smoothing): Remove legacy variable.
 -      (EmacsView-windowShouldZoom:): Set frame left_pos, top_pos and
 -      don't update the NSWindow itself.
 -      (EmacsView-windowWillUseStandardFrame:defaultFrame:): Improve
 -      state detection and store user rect ourselves.  (Bug #3581)
 -
 -      * nsfont.m (nsfont_draw) [NS_IMPL_COCOA]: Don't use
 -      ns_use_qd_smoothing.
 -
 -      * nsfns.m (x_get_string_resource): Ape just-previous changes to other
 -      platform versions.  Drop support for emacs-20-style face specs.
 -      (x-close-connection): Drop PSFlush() under OS X.
 -      (x-focus-frame): Activate the app first.  (Bug #4180)
 -
 -2009-09-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * emacs.c (inhibit_x_resources): New variable.
 -      (main) [HAVE_NS]: Don't process --quick command line option.
 -      (syms_of_emacs) <inhibit-x-resources>: DEFVAR_BOOL it.
 -
 -      * lisp.h (inhibit_x_resources): Declare it extern.
 -
 -      * w32reg.c (x_get_string_resource):
 -      * xrdb.c (x_get_string_resource): Obey inhibit_x_resources.
 -
 -2009-09-17  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (MSDOS_SUPPORT, SOME_MACHINE_LISP):
 -      Add lisp/term/internal.elc.
 -
 -2009-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.c (x_get_resource_string): Re-add for non-toolkit builds
 -      (bug#4461).
 -
 -2009-09-17  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1290000.
 -
 -      * Makefile.in (OTHER_FILES): Define using autoconf, not cpp.
 -      (OBJECTS_MACHINE): Remove, unused.
 -
 -2009-09-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.c (x_get_resource_string): Remove unused.
 -
 -2009-09-15  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_new_font): Call change_frame_size before calling
 -      x_set_window_size, in case frame size won't change.
 -
 -      * frame.c (x_set_font): Remove dead code.
 -
 -2009-09-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (Fload): Also run do-after-load-evaluation while dumping.
 -
 -2009-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (Fload): Don't output a message after loading an obsolete
 -      package any more (done in Lisp now).
 -
 -2009-09-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fns.c (syms_of_fns): Doc fix (Bug#4227).
 -
 -2009-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Fwhere_is_internal): Use nconc2.
 -
 -2009-09-11  Alan Mackenzie  <acm@muc.de>
 -
 -      * dispnew.c (Fsend_string_to_terminal): Amend doc string to cover
 -      batch mode.
 -
 -2009-09-11  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * xdisp.c (display_mode_element): Detect cycles.
 -
 -2009-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (where_is_internal): Don't erroneously return nil right after
 -      filling the cache.
 -      (where_is_internal_1): Fix up typo.
 -
 -2009-09-11  Glenn Morris  <rgm@gnu.org>
 -
 -      * frame.c (Fx_parse_geometry): Unify the X and NS versions so that they
 -      share a common doc-string.
 -
 -2009-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (get_keymap): Return the actual keymap symbol rather than
 -      t for autoloaded keymaps when autoloading is not allowed (bug#4393).
 -
 -      * keymap.c (QCadvertised_binding): New constant.
 -      (syms_of_keymap): Initialize it.
 -      (Fwhere_is_internal): Try and use bindings from :advertised-binding
 -      if applicable.
 -
 -2009-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (Qmenu_alias, Vdefine_key_rebound_commands): Remove.
 -      (parse_menu_item): Streamline since bindings are recomputed all the
 -      time anyway.  Don't bother checking Vdefine_key_rebound_commands any
 -      more and don't support lmenu's menu-alias any more either.
 -
 -      * keymap.c (where_is_internal_data): Make noindirect a boolean.
 -      (where_is_internal): Strip it down to only traverse the keymaps.
 -      Move the cache handling from Fwhere_is_internal to here.
 -      (Fwhere_is_internal): Move the handling of remapping and the choice of
 -      the best binding from where_is_internal to here.
 -      Unify the cached/noncached paths, so remapping is also handled
 -      correctly when the cache is used, and so the cache can be used to
 -      speed up remap-handling when applicable.
 -      Give preference to non-remapped bindings.
 -      * doc.c (Fsubstitute_command_keys): Let Fwhere_is_internal's prefer
 -      non-remapped bindings.
 -      * keyboard.c (parse_menu_item): Let Fwhere_is_internal handle
 -      command remapping.
 -
 -      * xdisp.c (display_mode_element): Move list length limit from 50 to
 -      5000 (see thread starting with <xbaik5174uqu.fsf@cam.ac.uk>).
 -
 -2009-09-09  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (ns_get_family): Don't force first letter to uppercase.
 -
 -2009-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (Vtruncate_partial_width_windows): Improve docstring.
 -      (Bug#4334)
 -
 -      * keymap.c (where_is_internal): Filter out shadowed remappings.
 -      Assume that where_is_internal returns unshadowed bindings to simplify
 -      the code and get rid of the gotos.  Use ASIZE.
 -
 -2009-09-04  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_focus_changed): If we get a focusout and pointer
 -      is invisible, make it visible.
 -
 -      * xterm.h: Remove condition for declaration of
 -      x_*_window_to_frame.
 -
 -2009-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dispnew.c (Fsend_string_to_terminal): Make it work again on the
 -      initial terminal as well.
 -
 -2009-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h: Rename x_non_menubar_window_to_frame to
 -      x_menubar_window_to_frame.
 -
 -      * xterm.c: Remove declarations also in xterm.h
 -      (XTmouse_position): Do not return valid positions
 -      for clicks in the menubar and the toolbar for Gtk+.
 -
 -      * xfns.c (x_any_window_to_frame): Assume less about Gtk+ internals,
 -      if the widget for the event has the same top level as a frame,
 -      return the frame.
 -      (x_menubar_window_to_frame): Detect menu bar even with Gtk+
 -      internal windows, bug #4122.
 -      (x_non_menubar_window_to_frame): Remove.
 -
 -2009-09-02  Glenn Morris  <rgm@gnu.org>
 -
 -      * buffer.c (default-major-mode): Move most of the doc from here...
 -      (major-mode): ... to here.
 -
 -2009-08-30  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * process.c (wait_reading_process_output): Keep the descriptor
 -      when pty is used by a non-child process, e.g., in I/O buffer of
 -      GDB this allows inferior to be restarted.
 -
 -2009-08-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xdisp.c (redisplay_internal): Remove redundant test and collapse
 -      both branches into one.
 -
 -2009-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * emacs.c (USAGE1): Remove --(no-)multibyte, --(no-)unibyte.
 -      (main): Use enable-multibyte-characters rather than
 -      default-enable-multibyte-characters.  Output a warning message when
 -      running a unibyte session.
 -
 -2009-08-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (print_load_command_name) [LC_DYLD_INFO]: Add cases
 -      LC_DYLD_INFO and LC_DYLD_INFO_ONLY.
 -      (copy_data_segment): Also copy __program_vars section.
 -      (copy_dyld_info) [LC_DYLD_INFO]: New function.
 -      (dump_it) [LC_DYLD_INFO]: Use it.
 -
 -      * s/darwin.h [temacs]: Undef HAVE_POSIX_MEMALIGN.
 -
 -2009-08-28  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in ($(BLD)/doc.$(O)): Depend on buildobj.h, not on
 -      $(SRC)/buildobj.h.
 -      (buildobj.h): Renamed from $(SRC)/buildobj.h.
 -      (make-buildobj-CMD, make-buildobj-SH): Create buildobj.h, not
 -      $(SRC)/buildobj.h.
 -      (clean): Add buildobj.h.
 -
 -2009-08-28  Teodor Zlatanov  <tzz@lifelogs.com>
 -
 -      * print.c (print_object): Set escapeflag to 1 when printing
 -      hashtable keys and values.
 -
 -2009-08-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (read_integer): Use doubles (and potentially return a float
 -      number) as we do in string-to-number.
 -      (read1): Use strtol to read integers, signal errors on strtol's
 -      overflow and use floats if strtol's output is too large for
 -      Elisp integers.
 -
 -2009-08-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in ($(SRC)/buildobj.h, make-buildobj-CMD)
 -      (make-buildobj-SH): Fix last change.
 -      (SRC): Move to before where it's first used.
 -
 -2009-08-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * process.c (send_process): Use encode_coding_object instead of
 -      encode_coding_string to perform eol-conversion even if the string
 -      is unibyte.
 -
 -      * coding.c (encode_coding_utf_16): Fix checking of a Unicode
 -      character.
 -
 -      * cmds.c (Fself_insert_command): Avoid unnecessay
 -      unibyte->multibyte conversion.  (Bug#4240)  (Bug#4037)
 -
 -2009-08-26  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * callproc.c (Fcall_process): Remove always true #if.
 -
 -      * lisp.h: Replace #if 0 code for checking with text pointing to
 -      the --enable-checking configure flag.
 -
 -      * emacs.c (main): Mention the --enable-profiling configure flag
 -      instead of using CFLAGS.
 -
 -2009-08-26  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * Makefile.in (buildobj.h): New target.
 -      (doc.o): Depend on it.
 -      (temacs${EXEEXT}): Don't generate buildobj.lst.
 -      (mostlyclean): Delete buildobj.h, not buildobj.lst.
 -      * makefile.w32-in ($(SRC)/buildobj.h): New target.
 -      ($(BLD)/doc.$(O)): Depend on it.
 -      (make-buildobj-CMD, make-buildobj-SH): New targets.  (Syntax help
 -      provided by Eli Zaretskii.)
 -      ($(TEMACS)): Don't generate buildobj.lst.
 -      * doc.c: Include buildobj.h.
 -      (buildobj): New static variable.
 -      (Fsnarf_documentation): Use it, instead of opening and reading
 -      buildobj.lst.
 -
 -2009-08-25  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_call_method)
 -      (Fdbus_call_method_asynchronously): Use English numeric format for
 -      timeout values in doc string.
 -
 -2009-08-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * alloc.c (mark_char_table): New function.
 -      (mark_object): Use mark_char_table for a char-table.
 -
 -      * lisp.h (CHAR_TABLE_REF_ASCII): New macro.
 -      (CHAR_TABLE_REF): Use it.
 -
 -2009-08-23  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * Makefile.in (emacs${EXEEXT}) [CANNOT_DUMP]: Set EMACSLOADPATH
 -      before invoking the newly build emacs to check for load-path
 -      shadowing.
 -
 -2009-08-22  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (bootstrap_exe): New variable.
 -      (.el.elc, ${lispsource}loaddefs.el, bootstrap-emacs${EXEEXT}):
 -      Use ${bootstrap_exe}.
 -
 -2009-08-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.h (encode_coding_string): Don't encode unibyte strings.
 -      (Bug#4047)
 -
 -2009-08-22  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * config.in (HAVE_DBUS_WATCH_GET_UNIX_FD): Add.
 -
 -      * dbusbind.c (XD_WITH_DBUS_WATCH_GET_UNIX_FD): Remove.  It was
 -      intended as hotfix only.
 -      (xd_add_watch, xd_remove_watch): Use HAVE_DBUS_WATCH_GET_UNIX_FD.
 -
 -2009-08-21  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_get_color): Update documentation properly for last
 -      change, and clean up loose ends in the code left by it.  Fix
 -      longstanding bug with 16-bit hex parsing, and add support for
 -      yet another X11 format (rgb:r/g/b) for compatibility.
 -      * nsfns.m (EmacsDialogPanel-runDialogAt): Add declaration of
 -      timer_check() to avoid crash on Leopard/PPC.  Bug #2154.
 -
 -2009-08-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (init_eval_once): Bump max_lisp_eval_depth to 500 for js.el.
 -
 -2009-08-20  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (XD_WITH_DBUS_WATCH_GET_UNIX_FD): New macro.
 -      (xd_add_watch, xd_remove_watch): Use it.  Print debug messages.
 -      (xd_initialize, xd_pending_messages): Check, whether
 -      $DBUS_SESSION_BUS_ADDRESS is set.
 -
 -2009-08-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * nsfns.m (Fxw_color_values): Return 3-element list.  Doc fix.
 -
 -      * nsterm.m (ns_get_color): Remove incompatible color formats again.
 -
 -2009-08-20  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (system-type): Doc fix.
 -
 -2009-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (syms_of_keyboard): Default to 5 buttons, which should be
 -      enough for the most common situations.  Avoid SET_SYMBOL_VALUE.
 -
 -2009-08-18  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_add_watch, xd_remove_watch, Fdbus_init_bus):
 -      New functions.
 -      (xd_initialize): Revert change from 2009-08-16.
 -
 -2009-08-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Ffontset_font): If a nil element is found in a
 -      font-group vector, return nil.
 -
 -2009-08-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * process.c (status_notify): Don't perform redisplay.
 -      (Fdelete_process, list_processes_1, process_send_signal):
 -      Expliticly perform redisplay.
 -      (wait_reading_process_output): Always check process status, but
 -      don't perform redisplay unless DO_DISPLAY is non-zero (Bug#2930).
 -
 -2009-08-17  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the value.
 -      (XFLOAT_INIT): New macro for storing a float value.
 -      * alloc.c (make_float, make_pure_float): Use XFLOAT_INIT.
 -      * fns.c (sxhash): Copy out the value of a float in order to
 -      examine its bytes.
 -      * dbusbind.c (xd_append_arg): Likewise.
 -
 -      * emacs.c (main): Don't call syms_of_data twice.
 -
 -2009-08-16  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_initialize): Add connection file descriptor to
 -      input_wait_mask, in order to let select() detect, whether a new
 -      message has been arrived.
 -      (Fdbus_call_method_asynchronously): Allow nil HANDLER.
 -
 -2009-08-15  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_get_dispatch_status, xd_pending_messages):
 -      New functions.
 -
 -      * lisp.h (xd_pending_messages): Declare.
 -
 -      * keyboard.c (readable_events): Call xd_pending_messages.
 -
 -2009-08-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * eval.c (Fcalled_interactively_p, Finteractive_p): Doc fix (Bug#3936).
 -
 -      * xdisp.c (pop_it): Don't pop into a display vector (Bug#4131).
 -
 -      * buffer.c (set_buffer_internal_1)
 -      (swap_out_buffer_local_variables): Check for unbound local
 -      variables (Bug#4138).
 -
 -2009-08-14  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (create_pty): Fix last change.
 -
 -2009-08-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (xbm_read_bitmap_data): New arg inhibit_image_error.
 -      (xbm_load_image): Caller changed.
 -      (xbm_file_p): Avoid signalling an image_error (Bug#4107).
 -
 -2009-08-13  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * process.c (create_pty): New function.
 -      (Fstart_process): Use it to allow Emacs to just associate a pty
 -      with the buffer.  See associated change in gdb-mi.el.
 -      (list_processes_1): Deal with no program name.
 -      (start_process_unwind): Use pid == -2 to mean no process.
 -
 -2009-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * cmds.c (nonundocount): New global variable.
 -      (keys_of_cmds): Initialize it.
 -      (Fself_insert_command): Use it to combine upto 20 sequential chars
 -      into a single undo entry, just like the Qself_insert_command code in
 -      keyboard.c does.
 -      Call frame_make_pointer_invisible, also like the Qself_insert_command
 -      code in keyboard.c does.
 -      * keyboard.c (command_loop_1): Use the new global nonundocount rather
 -      than its own local replacement for it.
 -
 -2009-08-10  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * fns.c (concat): Don't re-set string length to its current value.
 -
 -      * coding.h (decode_coding_string, encode_coding_string):
 -      Use SBYTES macro.
 -
 -      * doprnt.c (doprnt_lisp): Delete unused function.
 -      (doprnt): Merge with doprnt1, discarding lispstrings code.
 -      * lisp.h (doprnt_lisp): Don't declare.
 -
 -2009-08-07  Juri Linkov  <juri@jurta.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1270000.
 -
 -2009-08-07  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * print.c (syms_of_print): Undo previous change.
 -
 -2009-08-05  Teodor Zlatanov  <tzz@lifelogs.com>
 -
 -      * lread.c (read1, syms_of_lread): Read hashtables back from the
 -      readable format.
 -
 -      * print.c (print_preprocess, print_object): Print hashtables fully
 -      and readably.
 -      (syms_of_print): Provide 'hashtable-print-readable.
 -
 -2009-08-02  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (ns_descriptor_to_entity): Handle case when descriptor has
 -      no family set.
 -      (nsfont_open): Handle case when entity has no family.
 -
 -2009-07-29  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (ns_findfonts): Fix 2009-07-24 change to return only one
 -      element, not a list, for match case.
 -
 -2009-07-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_parse_xlfd): Check DPI and AVGWIDTH properties more
 -      rigidly.
 -
 -      * xfont.c (xfont_list_pattern): Don't ignore the return value of
 -      font_parse_xlfd.  Check font properties more rigidly.
 -
 -2009-07-27  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/netbsd.h (SIGNALS_VIA_CHARACTERS): Remove, already defined in
 -      bsd-common.h.
 -
 -2009-07-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (face_with_height): Call font_clear_prop.
 -
 -2009-07-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispnew.c (init_display): Use Qx, Qw32, and Qns.
 -
 -      * xterm.c (x_term_init): Use Qx.
 -
 -      * nsfont.m (nsfont_draw): Revert 2009-07-15 change.
 -
 -      * nsterm.m (ns_maybe_dumpglyphs_background): Revert 2009-07-15 change.
 -      (ns_get_color): Revert 2009-07-16 change.
 -
 -2009-07-25  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lread.c (syms_of_lread) <force_load_messages>: New variable.
 -      (Fload): Use it to force load messages, even if NOMESSAGES is non-nil.
 -
 -2009-07-25  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * coding.h (decode_coding_string, encode_coding_string):
 -      Use SCHARS macro.
 -
 -      * lread.c: Rewrite 2009-07-21 changes.
 -      (load_depth): Delete.
 -      (Qload_in_progress): New variable.
 -      (load_unwind): Don't reference load_depth or load_in_progress.
 -      (Fload): Likewise; specbind Qload_in_progress instead.
 -      (init_lread): Don't initialize load_depth.
 -      (syms_of_lread): Initialize and protect Qload_in_progress.
 -
 -2009-07-24  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (ns_findfonts): Correctly return fallback in match case.
 -
 -2009-07-23  Yavor Doganov  <yavor@gnu.org>
 -
 -      * nsfont.m (NSFontDescriptor.h): Explicitly include under GNUstep.
 -
 -2009-07-23  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (EmacsView-keyUp:): Only act when running under Tiger.
 -      Bugs 3792, 3720, 2402.
 -      (ns_lookup_indexed_color): Check for bad index.
 -      (ns_index_color): Init unused slot to 0.
 -      (ns_dumpglyphs_box_or_relief): Replace useless xassert with an if().
 -      Bug 3714, possibly 3082.
 -
 -2009-07-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc) [WM_IME_STARTCOMPOSITION]:
 -      Position IME window at cursor (Bug#2570).
 -      (w32_wnd_proc) [WM_IME_CHAR]: Release context when finished.
 -      (globals_of_w32fns): Dynamically load functions required above.
 -
 -      * w32term.c (w32_draw_window_cursor): Send message to reposition
 -      any IME window.
 -
 -2009-07-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fileio.c: Revert 2009-07-16 changes.
 -      (Vauto_save_include_big_deletions): New variable.
 -      (Fdo_auto_save): Disable auto-save only if
 -      auto-save-include-big-deletions is nil.
 -
 -2009-07-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (move_it_to): For continued lines ending in a tab, take
 -      the overflowed pixels into account (Bug#3879).
 -
 -2009-07-21  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * lread.c (load_depth): New variable.
 -      (Fload, load_unwind, init_lread): Set it to the load recursion
 -      depth; set load_in_progress as a simple boolean based on the
 -      current load_depth.  (Bug#3892)
 -
 -2009-07-20  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (ns_has_attribute): Remove.
 -      (ns_findfonts, nsfont_open): Use ns_attribute_fvalue() instead.
 -
 -2009-07-18  Juri Linkov  <juri@jurta.org>
 -
 -      * process.c (Fset_process_query_on_exit_flag): Mention killing
 -      a buffer in docstring.
 -
 -2009-07-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * casetab.c (shuffle): Fix the logic of setting up the cycle.
 -
 -2009-07-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * nsfns.m (Fns_set_alpha): Remove function.
 -      (syms_of_nsfns): Don't defsubr it.
 -
 -      * nsterm.m (ns_get_color): Remove incompatible color formats.
 -      (ns_color_to_lisp): Generate #rrggbb color format string.
 -
 -2009-07-16  Richard Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fwrite_region, Fdo_auto_save): Handle save_length = -2.
 -      (Fset_buffer_auto_saved): Handle save_length = -2.
 -
 -2009-07-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (Qx_gtk_map_stock): New var.
 -
 -      * gtkutil.c (update_frame_tool_bar): Use Qx_gtk_map_stock instead
 -      of calling intern each time.
 -
 -2009-07-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * nsfont.m (nsfont_draw): Remove code for stippling, which actually
 -      does tiling.
 -
 -      * nsterm.m (ns_maybe_dumpglyphs_background): Likewise.
 -
 -2009-07-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_vconcat_entity_vectors): New function.
 -      (struct font_sort_data): New member font_driver_preference.
 -      (font_compare): Check font_driver_preference.
 -      (font_sort_entities): The format of the first argument changed.
 -      (font_delete_unmatched): Likewise.
 -      (font_list_entities): The return type changed.
 -      (font_select_entity): The format of the second argument changed.
 -      (font_find_for_lface): Adjuste for the above changes.
 -      Don't suppress the checking of C even if the repertory supports it.
 -      (Flist_fonts): Adjust for the above changes.
 -
 -      * ftfont.c (ftfont_spec_pattern): New arg langname.  Change caller.
 -      (ftfont_list): Adjust for the change of ftfont_spec_pattern.
 -      Reject a font who has adstyle property that is different from a
 -      langname derived from registry property.
 -      (ftfont_match): Adjust for the change of ftfont_spec_pattern.
 -
 -2009-07-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (directory_files_internal) [WINDOWSNT]: Don't make a
 -      local copy of dirfilename.
 -
 -2009-07-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * chartab.c (sub_char_table_ref_and_range): Fix the range check
 -      against max_char.
 -
 -      * cmds.c (internal_self_insert): Check sym by SYMBOLP before
 -      calling XSYMBOL (sym).
 -
 -2009-07-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
 -      New function.
 -      (directory_files_internal) [WINDOWSNT]:
 -      Bind w32-get-true-file-attributes to either t or nil, depending whether
 -      the filesystem of the directory is fast or slow.
 -
 -      * w32.c (logon_network_drive): Don't assume PATH is an absolute
 -      file name.
 -      (is_slow_fs): New function.
 -      (stat): Use it to determine whether to issue more system calls to
 -      get accurate file attributes, when w32-get-true-file-attributes is
 -      `local'.
 -
 -2009-07-10  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_select_font): Remember last font selected in
 -      x_last_font_name and use that the next time.  Also try the frame
 -      parameter font-parameter as default to the font dialog.
 -
 -2009-07-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): Fix typo: FC_RGBA->FC_HINT_STYLE.
 -
 -2009-07-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32proc.c (syms_of_ntproc) <w32-get-true-file-attributes>: Doc fix.
 -
 -      * w32.c (stat): Treat UNC file names as residing on remote
 -      drives.  (Bug#3542)
 -
 -2009-07-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): Fix previous change.
 -
 -2009-07-08  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_initialize, Fdbus_call_method, xd_read_message)
 -      (Fdbus_register_signal, Fdbus_register_method): Cleanup memory of
 -      error flag.
 -
 -2009-07-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): Fix the logic of handling
 -      charset_matched.
 -      (font_for_char): Delete unused var.
 -      (generate_ascii_font_name): Delete it.
 -
 -      * coding.h (JIS_TO_SJIS2): Fix the code range check.
 -
 -      * coding.c (detect_coding_sjis): Handle shift_jis-2004 correctly.
 -      (encode_coding_sjis): Fix the code range check.
 -
 -2009-07-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
 -      (Fexpand_file_name): Copy string data properly (Bug#3772).
 -
 -2009-07-07  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Only call x_check_fullscreen on the
 -      first MapNotify.
 -
 -2009-07-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.h (unibyte_has_multibyte_table): Delete extern.
 -      (UNIBYTE_CHAR_HAS_MULTIBYTE_P): Delete it.
 -
 -      * charset.c (Fset_charset_priority): Update charset_unibyte.
 -      (syms_of_charset): Initialize charset_unibyte.
 -
 -      * character.c (unibyte_has_multibyte_table): Delete it.
 -      (multibyte_char_to_unibyte): Use CHAR_TO_BYTE8 instead of checking
 -      charset_unibyte.
 -      (multibyte_char_to_unibyte_safe): Likewise.
 -      (Funibyte_char_to_multibyte): Don't check charset_unibyte.
 -
 -      * xdisp.c (get_next_display_element): Decode it->c by charset_unibyte.
 -      (x_produce_glyphs): Likewise.
 -
 -      * .gdbinit (xcharset): Fix the treating $arg0.
 -
 -2009-07-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      Emulation of `getloadavg' on MS-Windows.
 -      * w32.c: Include float.h
 -      (g_b_init_get_native_system_info, g_b_init_get_system_times)
 -      (GetNativeSystemInfo_Proc, GetSystemTimes_Proc): Declare.
 -      (get_native_system_info, get_system_times): New functions.
 -      (buf_next, buf_prev, sample_system_load, getavg): New subroutines.
 -      (getloadavg): Rewrite using GetSystemTimes and GetNativeSystemInfo.
 -      (globals_of_w32): Initialize g_b_init_get_native_system_info,
 -      g_b_init_get_system_times, and num_of_processors.
 -
 -2009-07-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_initialize): Use standard types.
 -
 -2009-07-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Decode user and group names by the
 -      locale's encoding.  (Bug#3443)
 -
 -2009-07-03  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * sysdep.c (sys_suspend): Remove USG_JOBCTRL #ifdef, unused.
 -      (mkdir): Remove MKDIR_PROTOTYPE #ifdef, unused.
 -
 -      * callproc.c (child_setup): Use #else instead of a separate #ifdef.
 -
 -      * term.c (init_tty): Remove spurious #ifdef.
 -
 -      * m/mips.h: Mention this file is also used for netbsd.
 -      * m/pmax.h: Remove file.
 -
 -2009-07-03  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (struct x_display_info): Add invisible_cursor.
 -      (struct x_output): Add current_cursor.
 -
 -      * xterm.c (XTtoggle_invisible_pointer): New function.
 -      (x_define_frame_cursor): Don't define cursor if invisible or the
 -      same as before.  Set current_cursor.
 -      (x_create_terminal): Set toggle_invisible_pointer_hook.
 -
 -      * xfns.c (make_invisible_cursor): New function.
 -      (x_set_mouse_color): Call make_invisible_cursor.
 -      Set current_cursor.
 -      (x_window): Set current_cursor.
 -
 -      * termhooks.h (struct terminal): Add toggle_invisible_pointer_hook.
 -
 -      * keyboard.c (command_loop_1): Call frame_make_pointer_invisible after
 -      inserting a character.
 -      (read_avail_input): Call frame_make_pointer_visible.
 -
 -      * frame.c (Vmake_pointer_invisible): New variable.
 -      (frame_make_pointer_invisible, frame_make_pointer_visible):
 -      New functions.
 -      (syms_of_frame): DEFVAR make-pointer-invisible, initialize to Qt.
 -
 -      * frame.h: Declare frame_make_pointer_invisible and
 -      frame_make_pointer_visible.
 -      (struct frame): Add pointer_invisible.
 -
 -2009-07-02  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_frame_set_char_size): Do set width/height if the
 -      frame isn't visible.
 -      (xg_frame_resized): If width/height is -1, get size of window
 -      from X server.
 -
 -      * xterm.c (handle_one_xevent): Call xg_frame_resized for USE_GTK
 -      for MapNotify.
 -
 -      * gtkutil.c (xg_frame_set_char_size): Do not set pixel width/height
 -      here or call change_frame_size.  Just call flush_and_sync.
 -      (flush_and_sync): Reintroduce.
 -
 -2009-07-01  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (struct x_display_info): Add Xatom_net_wm_state_sticky.
 -
 -      * xterm.c (x_handle_net_wm_state): Also look for sticky.
 -      (x_term_init): Initialize Xatom_net_wm_state_sticky.
 -
 -      * frame.h: Declare Qsticky.
 -
 -      * w32fns.c (w32_frame_parm_handlers): Set 0 for sticky.
 -
 -      * nsfns.m (ns_frame_parm_handlers): Ditto.
 -
 -      * frame.c: Declare Qsticky.
 -      (frame_parms): Add sticky.
 -
 -      * xfns.c (x_frame_parm_handlers): Let x_set_sticky handle sticky.
 -
 -      * xterm.h: Declare x_set_sticky.
 -
 -      * xterm.c (x_set_sticky): New function.
 -
 -      * gtkutil.c (xg_tool_bar_proxy_help_callback): New function.
 -      (xg_tool_bar_menu_proxy): Attach enter/leave events to
 -      xg_tool_bar_proxy_help_callback.
 -
 -      * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
 -
 -      * frame.c: Qmaximized is new.
 -      (x_set_frame_parameters): Do not handle fullscreen specially.
 -      Only set width and height if explicitly set.
 -      (x_set_fullscreen): Handle Qmaximized.
 -      (x_set_font, x_figure_window_size): Do not handle fullscreen specially.
 -      (syms_of_frame): Initialize Qmaximized.
 -
 -      * frame.h (fullscreen_type): Add FULLSCREEN_MAXIMIZED.
 -      Declare Qfullwidth, Qfullheight, Qfullboth, Qmaximized.
 -
 -      * xterm.c (handle_one_xevent): Remove call to x_check_fullscreen
 -      for Expose event.  Add call to x_check_fullscreen for MapNotify event.
 -      Remove all code w.r.t. fullscreen from ConfigureNotify event.  Do not
 -      set gravity to NorthWestGravity when USE_GTK.
 -      (set_wm_state): New function.
 -      (do_ewmh_fullscreen): Use set_wm_state.  Also handle FULLSCREEN_MAXIMIZED.
 -      (x_handle_net_wm_state): Handle FULLSCREEN_MAXIMIZED.
 -      (x_check_fullscreen): Simplify so we only handle EMWH type of fullscreen
 -      or the case when no window manager is running.  That means remove calls
 -      to x_real_positions and x_fullscreen_adjust.
 -
 -      * gtkutil.c (flush_and_sync, x_wm_size_hint_off): Remove.
 -      (xg_frame_set_char_size): Remove calls to x_wm_size_hint_off and
 -      flush_and_sync.
 -      (xg_height_changed): New function.
 -      (xg_create_frame_widgets): Remove call to gtk_widget_set_size_request
 -      and gtk_window_set_policy.  Set frame gravity after parsing the
 -      geometry string.
 -      (xg_update_frame_menubar, free_frame_menubar)
 -      (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
 -      (update_frame_tool_bar, free_frame_tool_bar): Call xg_height_changed.
 -      Remove calls to xg_frame_set_char_size.
 -
 -2009-07-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keyboard.c (decode_keyboard_code): New function.
 -      (tty_read_avail_input): Decode the input bytes if necessary.
 -
 -      * coding.c (setup_coding_system):
 -      Initialize coding->carryover_bytes to 0.
 -      (Fset_keyboard_coding_system_internal): If CODING-SYSTEM is nil,
 -      use Qno_conversion.
 -
 -2009-07-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (SOME_MACHINE_LISP): Add ../lisp/term/common-win.elc.
 -
 -2009-06-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xftfont.c (xftfont_open): Avoid passing NULL argument to XftLockFace.
 -
 -2009-06-30  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_initialize): Use GetModuleHandle for library that
 -      is already loaded.
 -      Set user model ID if supported (bug#1849).
 -
 -2009-06-29  Jim Meyering  <meyering@redhat.com>
 -
 -      Remove useless if-before-xfree test.
 -      * nsfont.m (nsfont_close): Remove useless test.
 -      * term.c (delete_tty): Likewise.
 -      * w32.c (system_process_attributes): Likewise.
 -      * w32font.c (w32font_close): Likewise.
 -      * xfaces.c (x_free_gc): Likewise.
 -      * xselect.c (buffer): Likewise.
 -
 -2009-06-28  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * process.c (send_process): Keep decoded string in a local
 -      variable and protect it from GC.  (Bug#3521)
 -
 -2009-06-28  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * term.c (create_tty_output) [MSDOS]: #ifdef away.
 -      (tty_free_frame_resources) [MSDOS]: Add a DOS-specific version.
 -
 -2009-06-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (start_display, handle_face_prop)
 -      (move_it_vertically_backward, cursor_row_fully_visible_p)
 -      (redisplay_window, try_window_id, produce_image_glyph):
 -      Delete some #ifdef-ed out code chunks that are now obsolete.
 -
 -      * xterm.c (x_update_window_begin, x_new_focus_frame)
 -      (x_scroll_bar_handle_click, handle_one_xevent)
 -      (handle_one_xevent, XTread_socket, x_focus_on_frame)
 -      (x_make_frame_visible, x_make_frame_invisible)
 -      (x_wm_set_icon_pixmap, x_initialize): Delete some #ifdef-ed out
 -      code chunks that are now obsolete.
 -
 -2009-06-28  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (XD_SYMBOL_TO_DBUS_TYPE): Convert macro into function
 -      xd_symbol_to_dbus_type.  With Solaris 2.11, it was said to compile
 -      for hours, when optimzation is enabled.
 -      (xd_signature, xd_append_arg, xd_retrieve_arg, xd_initialize)
 -      (xd_read_message): Make them static.
 -
 -2009-06-27  Chuck Blake  <cblake@pdos.csail.mit.edu>  (tiny change)
 -
 -      * term.c (turn_on_face): Allow simultaneously bold and dim
 -      terminal faces (Bug#3530).
 -
 -2009-06-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (x_get_arg): Check if dpyinfo is non-NULL.
 -
 -      * xdisp.c (mouse_face_from_buffer_pos): Fix detection of
 -      truncation glyphs (Bug#3686).
 -
 -2009-06-27  Glenn Morris  <rgm@gnu.org>
 -
 -      * m/pmax.h: Restore file, with only netbsd portions.
 -
 -2009-06-26  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsterm.m (keydown): Avoid infinite loop.
 -
 -2009-06-26  Peter Jolly  <peter@jollys.org>  (tiny change)
 -
 -      * ftfont.c (get_adstyle_property): Call font_intern_prop with 1 as
 -      the arg FORCE_SYMBOL.
 -
 -2009-06-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): When a usable rfont_def is found
 -      in a fallback font-group, make it the first element of the group.
 -
 -2009-06-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * emacs-icon.h: Always define gnu_xpm_bits on GTK (bug#3671).
 -
 -2009-06-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_get_font_group): Return 0 if no font-group is
 -      set for C.
 -      (fontset_font): Record the availability of a font for C both in
 -      the realized fontsets of the current one and the default one.
 -
 -2009-06-23  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * sysdep.c (child_setup_tty): Remove SIGNALS_VIA_CHARACTERS
 -      conditional, it is always defined on AIX.
 -
 -2009-06-23  Miles Bader  <miles@gnu.org>
 -
 -      * window.c (Vrecenter_redisplay): New variable.
 -      (syms_of_window): Initialize it.
 -      (Qtty): New extern declaration.
 -      (Frecenter): Only do redisplay if Vrecenter_redisplay requests it.
 -
 -2009-06-23  Jim Meyering  <meyering@redhat.com>
 -
 -      * src/ftfont.c (setup_otf_gstring, ftfont_shape_by_flt):
 -      Use xmalloc and xrealloc (not malloc and realloc), so subsequent heap
 -      pointer dereferences are guaranteed to be valid.
 -
 -2009-06-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * emacs.c (main): Call init_font ().
 -
 -      * font.h (Vfont_log): Extern it.
 -      (FONT_ADD_LOG, FONT_DEFERRED_LOG): New macros.
 -
 -      * font.c (font_sort_entities, font_list_entities)
 -      (font_matching_entity, font_open_entity)
 -      (font_close_object): Change font_add_log to FONT_ADD_LOG.
 -      (Vfont_log): Delete static.
 -      (font_log_env_checked): Delete this variable.
 -      (font_add_log): Don't check font_log_env_checked.
 -      (font_deferred_log): Check Vfont_log.
 -      (init_font): New function.
 -
 -      * ftfont.c: Change font_add_log to FONT_ADD_LOG.
 -
 -      * w32font.c: Change font_add_log to FONT_ADD_LOG.
 -
 -      * w32uniscribe.c: Change font_add_log to FONT_ADD_LOG.
 -
 -      * xfont.c: Change font_add_log to FONT_ADD_LOG.
 -
 -      * fontset.c (fontset_font): Call FONT_DEFERRED_LOG.
 -      (face_for_char): Don't call font_deferred_log here.
 -      (font_for_char): Likewise.
 -
 -2009-06-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * w32term.c (x_draw_glyph_string): Use the glyph string's width
 -      rather than its background_width for drawing the overline and
 -      underline (Bug#489).
 -
 -      * xterm.c (x_draw_glyph_string): Use the glyph string's width
 -      rather than its background_width for drawing the overline and
 -      underline (Bug#489).
 -      (xg_default_icon_file): New variable.
 -      (syms_of_xterm): Initialize it to the Emacs SVG icon file.
 -      (x_bitmap_icon): Under GTK, use xg_default_icon_file.
 -
 -      * xdisp.c (Qbefore_string, Qafter_string): Add externs.
 -      (load_overlay_strings): Remove externs.
 -      (fast_find_position): Function deleted.
 -      (mouse_face_from_buffer_pos): New function, based on
 -      fast_find_position.  Correctly handle before-strings,
 -      display-strings, and after-strings (Bug#1220).
 -      (note_mouse_highlight): Use mouse_face_from_buffer_pos.
 -
 -2009-06-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (IT_DISPLAYING_WHITESPACE): Define for !HAVE_WINDOW_SYSTEM.
 -      (move_it_in_display_line_to, move_it_in_display_line_to)
 -      (display_line): Remove #ifdef HAVE_WINDOW_SYSTEM.
 -
 -2009-06-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Branch for 23.1.
 -
 -2009-06-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (keyboard_codepage): New static variable.
 -      (w32_read_socket) [WM_INPUTLANGCHANGE]: Update it.
 -      (w32_read_socket) [WM_CHAR]: Use it to decode character
 -      input (bug#3237).
 -      (w32_initialize): Initialize it.
 -      (codepage_for_locale): New function.
 -
 -2009-06-20  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * process.c (status_message): Pass Faset index argument as a lisp
 -      object, so as to work with USE_LISP_UNION_TYPE.
 -
 -2009-06-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * coding.c (Ffind_coding_systems_region_internal):
 -      Cache checked characters.
 -
 -2009-06-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_iso_2022): Check MSB of bytes more rigidly.
 -
 -2009-06-18  Andreas Schwab  <aschwab@redhat.com>
 -
 -      * xdisp.c (redisplay_internal): Check that the frame is still
 -      live after redisplay of its windows.
 -      (redisplay_windows): Check that the window is still live.
 -
 -2009-06-17  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * coding.c (detect_coding_utf_16): Fix previous change.
 -
 -2009-06-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_utf_16): Fix the logic of rejecting
 -      UTF-16 by checking the dispersion of Eth and Oth bytes.
 -
 -2009-06-15  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * coding.c (detect_coding_utf_16): Fix typo counting odd bytes.
 -
 -2009-06-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * process.c (status_message): Fix previous change.  Be sure to
 -      decode a localized string.
 -
 -2009-06-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xterm.c (x_delete_terminal): Put previous change in #if 0 and
 -      add comment explaining why.
 -
 -2009-06-14  Sidney Markowitz  <sidney@sidney.com>
 -
 -      * nsmenu.m (EmacsTooltip: setText): Set height of tooltip.
 -
 -2009-06-14  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (ns_attribute_value): Remove.
 -      (ns_attribute_fvalue): Incorporate code from ns_attribute_value.
 -      (ns_has_attribute): Shrink the normal range.
 -      (ns_findfonts): Don't worry about requested spec in determining
 -      need for synthItal.
 -      (ns_get_covering_families): Retain scriptToFamilies.
 -
 -2009-06-14  Seiji Zenitani  <zenitani@mac.com>
 -
 -      * xdisp.c [USE_MAC_TOOLBAR]: Remove obsolete definition for Mac Carbon.
 -
 -2009-06-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (x_get_glyph_overhangs): Fix calculation of right
 -      overhang for the static composition case.
 -
 -2009-06-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (x_get_glyph_overhangs): Fix calculation of right
 -      overhang for the automatic composition case.
 -
 -      * xterm.c (x_compute_glyph_string_overhangs): Handle the automatic
 -      composition case.
 -
 -2009-06-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (get_next_display_element): When handling wrap-prefix
 -      and line-prefix, treat \n as a control character (bug#3502).
 -
 -2009-06-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_parse_family_registry): Fix for one-char foundry.
 -      (font_sort_entities): Initialize prefer_prop[FONT_AVGWIDTH_INDEX].
 -
 -2009-06-09  Dmitry Dzhus  <dima@sphinx.net.ru>  (tiny change)
 -
 -      * process.c (status_message): Fix handling of multibyte signal
 -      string (Bug#3499).
 -
 -2009-06-09  Jim Meyering  <meyering@redhat.com>
 -
 -      * xfaces.c (Fx_load_color_file): Avoid array bounds error if the
 -      color name is missing.
 -
 -2009-06-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fmap_charset_chars): In docstring, state clearly that
 -      FROM-CODE and TO-CODE are codepoints of CHARSET.
 -
 -2009-06-08  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_use_system_highlight_color): Drop, unused.
 -
 -2009-06-08  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      Changes to support :script/:lang/:otf in NS font driver.
 -      * nsfont.m (nsfont_escape_name, nsfont_unescape_name)
 -      (nsfont_get_family, nsfont_char_width): Rename to ns_ prefix to
 -      indicate not part of font driver interface, and change callers.
 -      (ns_get_family): Remove pointless null check.
 -      (nsfont_spec_to_traits, nsfont_fmember_to_entity): Replace with
 -      ns_spec_to_descriptor, ns_descriptor_to_entity.
 -      (nsfont_trait_distance, nsfont_make_fontset_for_font): Remove.
 -      (ns_attribute_value, ns_attribute_fvalue, ns_has_attribute)
 -      (ns_spec_to_descriptor, ns_descriptor_to_entity)
 -      (ns_charset_covers, ns_lang_to_script, ns_otf_to_script)
 -      (ns_get_req_script, ns_accumulate_script_ranges)
 -      (ns_script_to_charset, ns_get_covering_families, ns_findfonts):
 -      New functions.
 -      (nsfont_list, nsfont_match): Use ns_findfonts.
 -      (nsfont_open): Use font descriptor instead of traits.
 -      (nsfont_draw): Handle "automatic" (lookup-table) compositions.
 -      (dump_glyphstring): Rename to ns_dump_glyphstring.
 -
 -      * nsterm.h (dump_glyphstring): Rename to ns_dump_glyphstring.
 -
 -      * nsfns.m (Fns_popup_font_panel): Use shared font manager.
 -
 -      * fontset.c (fontset_from_font): Remove NS-specific code.
 -
 -2009-06-08  Peter Jones  <pjones@pmade.com>  (tiny change)
 -
 -      * nsterm.m (ns_draw_window_cursor): Respect cursor_type for
 -      nonactive windows.
 -
 -2009-06-08  Felix Mueller  <felix@enqueue.eu>  (tiny change)
 -
 -      * nsterm.m (ns_init_paths): Append path separator to INFOPATH variable.
 -
 -2009-06-08  Wolfgang Lux  <wolfgang.lux@gmail.com>  (tiny change)
 -
 -      * keyboard.c (kbd_buffer_get_event): Null-check used_mouse_menu.
 -
 -2009-06-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (move_it_in_display_line_to): On text-only terminals,
 -      account for the overflowing of newlines into the last glyph on the
 -      display line (Bug#3482).
 -
 -2009-06-05  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsselect.m (Fx_own_selection_internal, Fx_selection_exists_p)
 -      (Fx_selection_owner_p): Rename from Fns_own_selection_internal,
 -      Fns_selection_exists_p, Fns_selection_owner_p.
 -
 -2009-06-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_create_tip_frame): Use the uniscribe font backend if
 -      available.  (Bug#3379)
 -
 -2009-05-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (get_translation_table):
 -      Check Venable_character_translation.
 -
 -2009-05-26  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsterm.m (ns_raise_frame): Only raise frame if visible.
 -      (x_make_frame_visible): Move frame to front rather than calling
 -      ns_raise_frame().
 -      (keyDown:): Do not swallow events that aren't re-sent if frame
 -      isn't key window.
 -      (drawRect:): Do not set visibility/iconified flags because
 -      drawRect may be called by NSView even if the frame is hidden.
 -
 -      * nsfns.m (Fx_create_frame): Follow other ports in
 -      determining visibility; default to t.  Ensure async_visible is set.
 -
 -2009-05-23  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Doc fix.
 -
 -2009-05-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * m/mips.h [GNU_LINUX]: Don't define DATA_START (Bug#2685).
 -
 -2009-05-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xfont.c (xfont_list_pattern): Don't initialize xfont_scripts_cache
 -      and xfont_scratch_props.
 -      (syms_of_xfont): Do it here instead.
 -      (xfont_find_ccl_program): Delete, unused.
 -      (xfont_open): Delete unused var `i'.
 -
 -2009-05-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Qlatin): Don't make it static.
 -
 -      * xfont.c (xfont_chars_supported, xfont_supported_scripts):
 -      New functions.
 -      (xfont_scripts_cache, xfont_scratch_props): New variables.
 -      (Qlatin, Vscalable_fonts_allowed): Extern it.
 -      (xfont_list_pattern): Argument changed.  Callers changed.
 -      Check Vscalable_fonts_allowed.  Check the support of a script.
 -      (xfont_list): Don't reject a font spec with :script property.
 -      (xfont_has_char): Fix setting of encoding.
 -      (syms_of_xfont): Staticpro and initialize xfont_scripts_cache and
 -      xfont_scratch_props.
 -
 -2009-05-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_sort_entities): Rename from font_sort_entites.
 -      Callers changed.
 -
 -2009-05-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_find_for_lface): Copy SPEC's FONT_TYPE too.
 -
 -2009-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.c (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
 -      (delete_frame) [NS_IMPL_COCOA]: Instead, do it here.
 -
 -2009-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xterm.c (x_delete_display): Don't call XrmDestroyDatabase here.
 -      (x_delete_terminal): Dissociate resource database from display and
 -      then call XrmDestroyDatabase before closing display.
 -
 -2009-05-18  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_read_socket): Remove unused variable.
 -      * frame.c (do_switch_frame): Under NS_IMPL_COCOA section, check
 -      whether selected frame is viable before raising it (based on patch
 -      by David Reitter), and improve commentary.
 -      * nsfont.m (nsfont_make_fontset_for_font): Avoid a compiler warning.
 -
 -2009-05-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (Ffont_spec): Check arguments.
 -
 -2009-05-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (tty_supports_face_attributes_p): Recognize unspecified
 -      weight when testing attributes (Bug#3282).
 -
 -2009-05-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * gtkutil.c (xg_frame_set_char_size): Set frame pixel width/height to
 -      what we expect to get in the next ConfigureNotify event.
 -
 -      * xftfont.c (xftfont_open): Make sure that Xrender extension is added
 -      before Xft one (Bug#1696).
 -
 -2009-05-07  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsfns.m (Fx_display_planes): Compute bitplanes using
 -      NSBitsPerPixelFromDepth (Bug#3207).
 -
 -2009-05-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Ftranspose_regions): Doc fix (Bug#3248).
 -
 -2009-05-10  Ulrich Mueller  <ulm@gentoo.org>
 -
 -      * s/gnu-linux.h: Make GCPROs and UNGCPRO no-ops also on SuperH.
 -
 -2009-05-07  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsterm.m (ns_dumpglyphs_stretch, ns_dumpglyphs_image):
 -      Respect mouse face background.
 -
 -2009-05-07  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsterm.m (note_mouse_movement, ns_frame_up_to_date):
 -      Mouse movement/highlight: bracket drawing operations
 -      in ns_update_begin and ns_update_end.
 -
 -2009-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * nsfns.m (ns_get_screen): Rewrite.
 -      Don't presume selected-frame is of type `ns'.
 -
 -      * font.c (font_update_drivers): Sanity fallback to avoid disabling
 -      all drivers.
 -
 -      * nsterm.m (-windowDidResize:): Avoid inf-loop under GNUStep.
 -
 -2009-05-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.h (add_user_signal): Fix typo in extern.
 -
 -      * lisp.h (add_user_signal): Remove extern.
 -
 -      * unexelf.c (unexec): Consider a section to precede the .bss section
 -      if its addresses overlap that of .bss.
 -      (unexec) [NS_IMPL_GNUSTEP]: Copy ObjC-related data from old file
 -      instead of dumping process.
 -
 -2009-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (syms_of_keyboard): Staticpro pending_funcalls.
 -
 -2009-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in (ctagsfiles1, ctagsfiles2): Include ObjC files in TAGS.
 -
 -2009-05-02  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xterm.c (x_handle_net_wm_state): Move declaration of lval before
 -      any statements.
 -
 -2009-05-02  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * process.c (read_process_output): Make sure the current buffer is
 -      always restored.
 -
 -      * coding.c (record_conversion_result): Don't modify
 -      Vlast_code_conversion_error for successful result.
 -      (alloc_destination): Don't clobber conversion result.  (Bug#1650)
 -
 -2009-05-01  Emanuele Giaquinta  <emanuele.giaquinta@gmail.com>  (tiny change)
 -
 -      * charset.c (load_charset): Reformat X==Y==Z to (X==Y)==Z.
 -      (load_charset_map): Remove unnecessary code.
 -
 -2009-04-30  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsterm.m (convert_ns_to_X_keysym): Define function keys f16
 -      through f24.
 -
 -2009-04-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (face_at_buffer_position): New arg base_face_id.
 -
 -      * xdisp.c (handle_face_prop): Pass base_face_id of iterator to
 -      face_at_buffer_position.
 -      (face_before_or_after_it_pos, get_next_display_element)
 -      (note_mouse_highlight): Update face_at_buffer_position call.
 -
 -      * term.c (term_mouse_highlight):
 -      * msdos.c (IT_note_mouse_highlight):
 -      * fontset.c (Finternal_char_font):
 -      * font.c (font_at, font_range): Update face_at_buffer_position call.
 -
 -      * dispextern.h (face_at_buffer_position): Update prototype.
 -
 -2009-04-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): Check if rfont_def is Qnil or not.
 -
 -2009-04-29  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * callproc.c (Fcall_process): Fix GC protection.  Make sure
 -      current buffer is always restored.
 -
 -2009-04-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * atimer.c (init_atimer): Also clear stopped_atimers.
 -
 -      * keyboard.c (init_keyboard) [POLL_FOR_INPUT]: Reset poll_timer.
 -
 -      * process.c (create_process): Clean up merger residues of
 -      2008-07-17 change.
 -
 -2009-04-29  Ulrich Mueller  <ulm@gentoo.org>
 -
 -      * lread.c (Vread_circle): New variable.
 -      (read1): Disable recursive read if Vread_circle is nil.
 -
 -2009-04-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.h (set_default_ascii_font): Delete extern.
 -
 -      * fontset.c (set_default_ascii_font): Delete this unused function.
 -
 -      * frame.c (x_set_font): When ARG is a font-object, check if the
 -      font-object matches with the ASCII font-spec of the frame's
 -      fontset.  If not, create a new fontset for the frame.  (Bug #3075)
 -
 -2009-04-28  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * fns.c (Flocale_info): Protect vector from GC during decoding.
 -
 -      * process.c (Fstart_process): Protect argv strings from GC during
 -      encoding.
 -
 -2009-04-27  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * sysdep.c: Include <ctype.h>.
 -
 -2009-04-27  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsfont.m (nsfont_open): Remove unused variable shrink.
 -      Remove commented-out code.
 -
 -2009-04-26  Johan Bockgård  <bojohan@gnu.org>
 -
 -      * keyboard.c (syms_of_keyboard) <input-decode-map>: Doc fix.
 -
 -2009-04-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (clear_cached_metrics): Remove, unused since 2008-08-02.
 -
 -2009-04-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * fringe.c (init_fringe_bitmap) [HAVE_X_WINDOWS && WORDS_BIG_ENDIAN]:
 -      Swap bytes in short integer if fringe bitmap width > 8.
 -
 -2009-04-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (Fx_list_fonts): If a font size is specified in
 -      PATTERN, set it in returned scalable fonts.
 -
 -2009-04-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (Fset_input_meta_mode): Doc fix.
 -
 -      * dispnew.c (Fsend_string_to_terminal): Doc fix.
 -
 -      * data.c (Fterminal_local_value, Fset_terminal_local_value): Doc fixes.
 -
 -      * coding.c (Fterminal_coding_system): Doc fix.
 -
 -      * xfns.c (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, Fx_synchronize):
 -      Doc fixes, replacing "terminal id" with "terminal object".
 -      (check_x_display_info): Handle terminal objects instead of
 -      terminal ids.
 -
 -      * term.c (Ftty_display_color_p, Ftty_display_color_cells)
 -      (Ftty_type, Fcontrolling_tty_p, Ftty_no_underline, Fsuspend_tty)
 -      (Fresume_tty, Vsuspend_tty_functions, Vresume_tty_functions):
 -      Doc fixes, replacing "terminal id" with "terminal object".
 -
 -2009-04-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_load_for_lface): Cancel previous change (bug#2994).
 -      (font_score): Check AVGWIDTH too.
 -
 -      * coding.c (decode_coding_utf_16): Reduce charbuf_end for the
 -      worst case.
 -      (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
 -      (decode_coding_emacs_mule, decode_coding_iso_2022): Likewise.
 -
 -2009-04-19  Jason Rumney  <jasonr@gnu.org>
 -
 -      The following changes fix Bug#3005 for wide glyphs on each platform,
 -      without reintroducing Bug#1258 for stretch glyphs.
 -
 -      * xterm.c (x_draw_bar_cursor): Limit cursor width differently for
 -      BAR_CURSOR and HBAR_CURSOR.  Calculate width of HBAR_CURSOR using
 -      get_phys_cursor_geometry.
 -
 -      * w32term.c (x_draw_bar_cursor): Limit cursor width differently
 -      for BAR_CURSOR and HBAR_CURSOR.  Calculate width of HBAR_CURSOR
 -      using get_phys_cursor_geometry.
 -
 -      * nsterm.m (ns_draw_window_cursor): HBAR_CURSOR width already
 -      correctly calculated.
 -
 -2009-04-19  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_menu_proxy, update_frame_tool_bar):
 -      Use G_CALLBACK instead of GTK_SIGNAL_FUNC which is deprecated.
 -      (xg_initialize): Use g_type_class_ref instead of gtk_type_class which
 -      is deprecated.
 -
 -2009-04-18  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * font.c (font_put_frame_data): Use xfree instead of free.
 -
 -2009-04-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32font.c (Qja, Qko): Remove declarations.
 -      (syms_of_w32font): Don't DEFSYM them.
 -
 -2009-04-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (Qja, Qko): Move definitions here from ftfont.c.
 -
 -      * font.h (Qja, Qko): Extern them.
 -
 -      * ftfont.c (Qja, Qko): Remove declarations.
 -
 -      * xfont.c (Qja, Qko): Remove declarations.
 -
 -2009-04-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Ftranslate_region_internal): Use Fconcat to make a
 -      string from a vector to handle Latin-1 characters correctly.
 -
 -      * ftfont.c (ftfont_pattern_entity): Return a newly allocated
 -      entity even if the cache hits.
 -
 -2009-04-16  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * search.c (boyer_moore): Use zero as marker value for a possible
 -      match instead of depending on overflow behavior.  (Bug#2844)
 -
 -      * search.c: Use EMACS_INT for buffer positions.  Add prototypes.
 -      * lisp.h: Adjust prototypes.
 -
 -2009-04-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (adjust_point_for_property): Disable 2009-02-12
 -      change (Bug#3003).
 -
 -2009-04-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_has_char): Special handling of `ja' and `ko' adstyle.
 -
 -      * xftfont.c (xftfont_has_char): Special handling of `ja' and `ko'
 -      adstyle.
 -
 -      * ftfont.c (Qja, Qko): Don't make them static.
 -      (enum ftfont_cache_for): New enum.
 -      (fc_charset_table): Undo the previous change.
 -      (ftfont_get_latin1_charset): Delete it.
 -      (ftfont_pattern_entity): Check cache by ftfont_lookup_cache.
 -      Set FONT_SIZE_INDEX of the entity to 0 for a scalable font.  For a
 -      non-scarable font, try to get AVERAGE_WIDTH.
 -      (ftfont_lookup_cache): Argument FOR-FACE is changed to CACHE_FOR.
 -      Change ft_face_cache from a list of a hash-table.  Don't check
 -      `ja' and `ko' adstyle here.
 -      (ftfont_get_fc_charset): Call ftfont_lookup_cache with
 -      FTFONT_CACHE_FOR_CHARET.
 -      (ftfont_get_charset): Undo the previous change.
 -      (ftfont_open): Call ftfont_lookup_cache with FTFONT_CACHE_FOR_FACE.
 -      (ftfont_close): Likewise.
 -      (ftfont_has_char): Special handling of `ja' and `ko' adstyle.
 -
 -      * font.c (font_sort_entites): Change the meaning of the arg
 -      BEST-ONLY.  Don't optimize for VEC of lenght 1.
 -      (font_select_entity): Just return the value of font_sort_entites.
 -
 -      * xfaces.c (merge_face_vectors): Reflect font properties in
 -      to[LFACE_FONT_INDEX] to the other face attributes.  Don't call
 -      font_clear_prop if a face attribute doesn't change.
 -
 -      * charset.h (charset_ksc5601): Extern it.
 -
 -      * charset.c (charset_ksc5601): New variable.
 -      (Fdefine_charset_internal): Set charset_ksc5601.
 -      (init_charset_once): Initialize charset_ksc5601 to -1.
 -
 -2009-04-15  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * fileio.c (history_delete_duplicates): Remove unused declaration.
 -
 -      * callint.c (history_delete_duplicates): New declaration.
 -      (Fcall_interactively): Remove command history duplicates when
 -      history_delete_duplicates is true.
 -
 -2009-04-14  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * buffer.c (syms_of_buffer) <line-spacing>: Doc fix.
 -
 -2009-04-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (Ffont_info): Fix docstring.  Fix the second element of
 -      the returned value (bug#2949).
 -
 -2009-04-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (Vwrap_prefix, Vline_prefix): Reflow docstrings.
 -
 -2009-04-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_has_char): The font has C if C is ASCII and the
 -      encoding charset is ascii_compatible.
 -
 -      * charset.c (Fdefine_charset_internal): Make charset
 -      ascii-compatible if the method is CHARSET_METHOD_OFFSET, the
 -      code_offset is 0, and covers all ASCII characters.
 -
 -2009-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * nsselect.m (symbol_to_nsstring, clean_local_selection_data)
 -      (ns_string_to_pasteboard_internal):
 -      * nsmenu.m (process_dialog):
 -      * nsimage.m (ns_load_image): Use SDATA and ASET where appropriate.
 -      * nsfont.m (nsfont_open): Use XHASH to make it compile with LISP_UNION.
 -      * lisp.h (Fx_load_color_file): Declare.
 -
 -2009-04-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_delete_unmatched): Preserve the order of list elements.
 -      (font_select_entity): Suppress the code to optimize for the same
 -      kind of fonts.
 -      (font_load_for_lface): Get a font that supports at least ASCII
 -      characters.
 -
 -      * ftfont.c (Qja, Qko): New variables.
 -      (fc_charset_table): Delete uniquifier data for iso8859-1.
 -      (ftfont_get_latin1_charset): New function.
 -      (get_adstyle_property): New function.
 -      (ftfont_pattern_entity): Set FONT_ADSTYLE_INDEX of entity for
 -      bitmap fonts.
 -      (ftfont_lookup_cache): Handle the case that KEY is a font-entity.
 -      Delete iso-8859-1 range from the charset of fonts whose adstyle is
 -      `ko' or `ja'.
 -      (ftfont_get_fc_charset): Call ftfont_lookup_cache with ENTITY.
 -      (ftfont_get_charset): For iso8859-1, call ftfont_get_latin1_charset.
 -      (ftfont_list): Don't refuse a font spec with non-nil `adstyle'
 -      property.
 -      (ftfont_open): Call ftfont_lookup_cache with ENTITY.
 -      (syms_of_ftfont): DEFSYM Qja and Qko.
 -
 -2009-04-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (map_charset_chars): For a charset of `superset'
 -      method, fix calculation of code range.
 -
 -      * font.c (font_put_extra): If VAL is nil, delete the slot for PROP
 -      from the list of extra properties.
 -      (font_clear_prop): Be sure to delete `:name' font property.
 -
 -2009-04-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispnew.c (redraw_overlapping_rows): Fix detection of
 -      overlapping for topmost and bottommost rows.
 -
 -      * ftfont.c (ftfont_text_extents): Fix calculation of metrics->descent.
 -
 -2009-04-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * frame.c (x_set_font): Avoid C99 mid-block variable declaration.
 -
 -2009-04-06  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftxfont.c (ftxfont_draw_backgrond): Fix args to XFillRectangle.
 -
 -      * xftfont.c (xftfont_open): Fix setting font->underline_thickness.
 -
 -2009-04-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * ftfont.c (ftfont_open): Fix checking of the return value of
 -      FT_Load_Char.  Fix setting font->underline_thickness.
 -
 -2009-04-04  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * terminal.c (Fterminal_name, Fdelete_terminal, Fterminal_name)
 -      (Fterminal_parameters, Fterminal_parameter)
 -      (Fset_terminal_parameter): In doc string, refer to terminal
 -      objects rather than terminal ids.
 -
 -2009-04-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dosfns.c (system_process_attributes) [SYSTEM_MALLOC]: Don't call
 -      ret_lim_data.  (Bug#2867)
 -
 -2009-04-03  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * term.c (produce_stretch_glyph): Reduce width of stretch glyphs
 -      so they don't get wider than the window, matching 2006-01-23
 -      change to the partner function in xdisp.c (Bug#2800).
 -
 -2009-04-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * print.c (print_object): Make each lowest sub_char_table start a
 -      new line (Bug#2866).
 -
 -2009-04-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_font): Record no-font when a fontset
 -      explicitly tells not to try another font-specs.
 -
 -2009-03-30  Pierre Poissinger  <pierre.poissinger@gmail.com>  (tiny change)
 -
 -      * charset.c (map_charset_for_dump): Add missing UNGCPRO.
 -
 -2009-03-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_from_font): Specify only registry in a
 -      font-spec for all characters supported by that registry.
 -
 -      * ftfont.c: Fix previous change.  Define ftfont_variation_glyphs
 -      even if HAVE_M17N_FLT is not defined.
 -
 -2009-03-29  Sebastian Rose  <sebastian_rose@gmx.de>  (tiny change)
 -
 -      * ftfont.c: Conditionalize prototyping and use of
 -      ftfont_variation_glyphs.
 -
 -2009-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.c (delete_frame): Work around compiler bug.
 -
 -      * editfns.c (general_insert_function): Adjust to insdel.c changes.
 -      * insdel.c (prepare_to_modify_buffer, signal_before_change):
 -      Some more EMACS_INT.
 -      * lisp.h (copy_text, count_size_as_multibyte): Fix last change.
 -
 -      * xdisp.c (dump_glyph): Fix typo.
 -
 -      * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
 -      (adjust_markers_gap_motion, adjust_markers_for_delete)
 -      (adjust_markers_for_insert, adjust_point)
 -      (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
 -      (make_gap, copy_text, count_size_as_multibyte, insert)
 -      (insert_and_inherit, insert_before_markers)
 -      (insert_before_markers_and_inherit, insert_1)
 -      (count_combining_before, count_combining_after, insert_1_both)
 -      (insert_from_string, insert_from_string_before_markers)
 -      (insert_from_string_1, insert_from_gap, insert_from_buffer)
 -      (insert_from_buffer_1, adjust_after_replace)
 -      (adjust_after_replace_noundo, adjust_after_insert, replace_range)
 -      (replace_range_2, del_range, del_range_1, del_range_byte)
 -      (del_range_both, del_range_2, modify_region)
 -      (prepare_to_modify_buffer, signal_before_change)
 -      (signal_after_change, Fcombine_after_change_execute): Use EMACS_INT
 -      for buffer positions and sizes.
 -      * lisp.h: Adjust prototypes accordingly.
 -
 -      * fileio.c (adjust_markers_for_delete): Move declaration to lisp.h.
 -      (non_regular_inserted, non_regular_nbytes, read_non_regular)
 -      (Finsert_file_contents): Use EMACS_INT for buffer positions.
 -
 -      * fileio.c (Finsert_file_contents): Don't limit size to INT_MAX/4.
 -
 -2009-03-27  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * frame.c (x_set_font): If the fullscreen property is non-nil, adjust
 -      lines and columns so we keep the same pixel height and width.
 -
 -      * xterm.c (handle_one_xevent): Call x_handle_net_wm_state if
 -      the property _NET_WM_STATE has changed.
 -      (x_handle_net_wm_state): New function to update frame parameter
 -      fullscreen.
 -      (x_term_init): Initialize atoms for _NET_WM_STATE.
 -
 -      * xterm.h (struct x_display_info): Add atoms for _NET_WM_STATE.
 -
 -2009-03-27  Kevin Ryde  <user42@zip.com.au>
 -
 -      * keyboard.c (tty_read_avail_input): Don't treat a -1 return from
 -      Gpm_GetEvent as an error that justifies closing the filedescriptor.
 -      * term.c (close_gpm): Get the filedescriptor as a (new) parameter.
 -      (Fgpm_mouse_stop): Pass that new parameter.
 -      * termhooks.h (close_gpm): Adjust prototype.
 -
 -2009-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (Fx_focus_frame): Declare.
 -
 -      * callint.c (Fcall_interactively): For '^' just delegate the work to
 -      handle-shift-selection.
 -      (syms_of_callint): Move declaration of shift-select-mode to simple.el.
 -
 -2009-03-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Ffloat_time): Doc fix (Bug#2768).
 -
 -      * data.c (Qinteractive_form): New variable.
 -      (Finteractive_form): Use it.
 -
 -      * eval.c (Fcommandp): Use Qinteractive_form.
 -
 -2009-03-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * fileio.c (Fsubstitute_in_file_name): Always work on a copy.
 -      Calculate total size precisely.  Decode environment variables
 -      before substituting.  (Bug#38)
 -
 -2009-03-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (find_font_encoding): Return Qnil for unsupported
 -      encoding (Bug#2722).
 -
 -2009-03-23  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_display_open): Assign a value to gdpy_def, check
 -      that gdpy is set.
 -
 -2009-03-22  Alan Mackenzie  <acm@muc.de>
 -
 -      * callint.c (Finteractive): Clarify the doc string - even
 -      promptless elements need \n separators.
 -
 -2009-03-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (syms_of_w32term): Doc fix for
 -      x-use-underline-position-properties.
 -
 -2009-03-21  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (getpwuid): Change argument type to unsigned.
 -      (struct w32_id): Change type of `rid' member to unsigned.
 -      (w32_cached_id, w32_add_to_cache, get_name_and_id): Change type of
 -      argument ID to unsigned.  All callers changed.
 -      (getuid, geteuid, getgid, getegid): Change return type to unsigned.
 -
 -2009-03-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * editfns.c (Fuser_uid, Fuser_real_uid): If UID as EMACS_INT is
 -      negative, produce a float value.
 -
 -      * dired.c (make_uid, make_gid): New functions.
 -      (Ffile_attributes): Use them to avoid negative UID and GID.
 -
 -2009-03-20  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * keyboard.c (Fcurrent_idle_time): Reflow docstring.
 -      (syms_of_keyboard) <command-hook-internal, input-method-function>:
 -      Fix typos in docstrings.
 -
 -2009-03-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Fset_fontset_font): When a spec of ASCII font is
 -      changed, use font_load_for_lface to get a new font object.
 -      Call free_realized_fontset after handling ASCII font change.
 -
 -      * frame.c (x_set_font): Handle the case that ARG is a cons.
 -
 -2009-03-19  Glenn Morris  <rgm@gnu.org>
 -
 -      * fileio.c (Fsubstitute_in_file_name): Doc fix.
 -
 -2009-03-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Undo 2005-01-19 change (Bug#2694).
 -
 -2009-03-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (load_charset_map_from_file): When a mapfile can't be
 -      loaded, signal an error.
 -
 -2009-03-18  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Make sure UID and GID are always
 -      positive, even if the value is too large for a positive EMACS_INT.
 -      Doc fix.
 -
 -      * editfns.c (Fuser_login_name): Support float arguments.  Doc fix.
 -
 -2009-03-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xmenu.c (xdialog_show): Move Fredisplay call ...
 -      (Fx_popup_dialog): ... here.
 -
 -2009-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (file_name_completion): Disable the first optimization just
 -      installed, since it is not implemented correctly.
 -
 -2009-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (file_name_completion): Check completion-ignored-extensions
 -      only if the entry can affect bestmatch.
 -      Stop the search early, as Ftry_completion already does.
 -
 -2009-03-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * minibuf.c (Vminibuffer_completion_confirm): Doc fix.
 -
 -2009-03-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (parse_menu_item): Don't display remappings as menu
 -      equivalent bindings (Bug#788).
 -
 -2009-03-15  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.h (WM_EMACS_PAINT): New message.
 -      * w32term.c (w32_read_socket): Use it instead of WM_PAINT.
 -      * w32fns.c (w32_wnd_proc): Change WM_PAINT to WM_EMACS_PAINT
 -      before passing to lisp thread.  (Bug#950)
 -
 -2009-03-14  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsterm.m (ns_shutdown_properly, -terminate): Remove global state
 -      variable as it was never reset.
 -      (ns_term_init): Remove initialization of Lisp-settable defaults
 -      and ns_expand_space.
 -      (-setPanelFromDefaultValues): Remove ns_expand_space.
 -      (-showPreferencesWindow): Send new KEY_NS_SHOW_PREFS key.
 -      * nsfont.m (nsfont_open): Remove ns_expand_space, assume -0.5
 -      i.e. no additional spacing, similar to Carbon port.
 -
 -      * nsterm.h: Define KEY_NS_SHOW_PREFS key.
 -      * nsfns.m (ns-popup-prefs-panel): Remove.
 -
 -2009-03-14  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * sound.c (alsa_configure): Remove call to deprecated
 -      snd_pcm_sw_params_set_xfer_align.
 -
 -2009-03-14  Stephen Berman  <stephen.berman@gmx.net>
 -
 -      * gtkutil.c (xg_tool_bar_callback): Set focus back to the frame
 -      after clicking in a detached tool bar.
 -      (xg_tool_bar_proxy_callback): Remove call to Fx_focus_frame.
 -
 -2009-03-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fontset.c (fontset_from_font, Ffontset_info): YAILOM (Yet another
 -      int/Lisp_Object mixup).
 -
 -2009-03-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Ffontset_info, check_fontset_name): New arg frame.
 -      Handle NAME nil and t correctly.  Callers changed.
 -      (font_def_arg, add_arg, from_arg, to_arg): Delete them.
 -      (set_fontset_font): Change ARG to a vector.  Handle range_list in
 -      ARG correctly.
 -      (Fset_fontset_font): Fix the case that TARGET is both a script
 -      name and charset name.  Adjust the arg to set_fontset_font for
 -      the above change.
 -      (fontset_from_font): Fix previous change.
 -      (Ffontset_info): Adjust for the 2008-07-09 change of fontset
 -      entry.  If FONTSET is the default fontset, don't set the extra
 -      slot of the returning char-table.
 -
 -2009-03-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * nsfns.m (Fx_close_connection): Doc fix.
 -      (Fns_do_applescript): Reflow docstring.
 -      (Fns_hide_others, Fns_hide_emacs, Fns_convert_utf8_nfd_to_nfc)
 -      (Fx_display_pixel_width, Fx_display_pixel_height)
 -      (Fns_display_usable_bounds, Fx_display_planes, Fx_show_tip):
 -      Fix typos in docstrings.
 -      (Fns_set_alpha): Fix typos in error messages.
 -
 -2009-03-12  David Reitter  <david.reitter@gmail.com>
 -
 -      * termhooks.h [HAVE_NS]: Define NS_NONKEY_EVENT to be used for
 -      non-key system events on NS.  Formerly, NON_ASCII_KEYSTROKE_EVENT
 -      were used for such events.
 -
 -      * nsterm.m (newFrame, openFile, fulfillService, changeFont)
 -      (toggleToolbar, performDragOperation, runHelp): Use it.
 -
 -      * keyboard.c (parse_menu_item) [HAVE_NS]: Treat new event like
 -      NON_ASCII_KEYSTROKE_EVENT, but set used_mouse_menu.
 -
 -2009-03-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (font_open_by_spec): Extern it.
 -
 -      * font.c (font_open_by_spec): New function.
 -      (font_open_by_name): Use font_open_by_spec.
 -
 -      * frame.c (x_set_font): When ARG is a font-object, don't alter the
 -      fontset of the frame.
 -
 -      * fontset.c (Fset_fontset_font): When a font for ASCII is changed,
 -      modify the default font of frames that use this fontset.
 -      (num_auto_fontsets): New variable.
 -      (fontset_from_font): Use num_auto_fontsets to decide a fontset
 -      name.  Be sure to set FONTSET_ASCII to the correct font name.
 -      (update_auto_fontset_alist): New function.
 -
 -2009-03-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * makefile.w32-in: Update dependencies.
 -
 -2009-03-06  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (syms_of_nsfns): Remove Qbuffered.
 -
 -2009-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fswitch_to_buffer): Revert part of 2008-10-21's change.
 -
 -2009-03-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * lread.c (Feval_buffer): Doc fix.
 -
 -2009-03-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Qfile_name_handler_alist): Extern it.
 -      (load_charset_map_from_file): Temporarily bind
 -      `file-name-handler-alist' to nil while calling openp.  (Bug#2435)
 -
 -2009-03-06  Aaron Ecay  <aaronecay@gmail.com>  (tiny change)
 -
 -      * nsterm.m (ns_draw_vertical_window_border): Draw 1 pixel wide,
 -      not two, and use NSRectFill instead of NSDrawGroove.  (Bug#2352)
 -
 -2009-03-06  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m: Include <signal.h> for SIGTERM used in ns_term_shutdown.
 -      (x_set_window_size): Change back to calculated method of setting
 -      toolbar height under Cocoa.  (Bug#2546)
 -      (EmacsView-windowWillUseStandardFrame:defaultFrame:): New method.
 -      (EmacsView-drawRect:): Completely shortcircuit if ns_in_resize.
 -
 -      * nsfns.m (ns_appkit_version_int): Fix typo in the version macro.
 -
 -      * nsmenu.m (EmacsMenu-addItemWithWidgetValue:): Don't add
 -      accelerator in parens under GNUstep.
 -
 -2009-03-06  Kenichi Handa  <handa@m17n.org>
 -
 -      These changes are to detect incorrect composition sequence without
 -      looking ahead the source.  (Bug#2370)
 -
 -      * coding.h: Include "composite.h".
 -      (enum compisition_state): New enum.
 -      (struct compisition_status): New struct.
 -      (struct iso_2022_spec): New member cmp_status.
 -      (struct emacs_mule_spec): New struct.
 -      (struct coding_system): New members ctext_extended_segment_len and
 -      embedded_utf_8.  Change the union member
 -      spec.emacs_mule_full_support to spec.emacs_mule.
 -
 -      * coding.c (CODING_ISO_CMP_STATUS): New macro.
 -      (CODING_ISO_EXTSEGMENT_LEN, CODING_ISO_EMBEDDED_UTF_8): New macros.
 -      (MAX_ANNOTATION_LENGTH): Define to 5.
 -      (ADD_COMPOSITION_DATA): New arg nbytes.
 -      (emacs_mule_char): New arg cmp_status.
 -      (DECODE_EMACS_MULE_COMPOSITION_CHAR): Delete it.
 -      (DECODE_EMACS_MULE_COMPOSITION_RULE_20): New arg c.
 -      (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New arg c.
 -      (DECODE_EMACS_MULE_21_COMPOSITION): Delete the arg c.
 -      (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Likewise.
 -      (DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION): Likewise.
 -      (DECODE_EMACS_MULE_COMPOSITION_START): New macro.
 -      (EMACS_MULE_COMPOSITION_END): New macro.
 -      (emacs_mule_finish_composition): New function.
 -      (EMACS_MULE_MAYBE_FINISH_COMPOSITION): New macro.
 -      (decode_coding_emacs_mule): Avoid long looking ahead while
 -      handling composition.
 -      (DECODE_COMPOSITION_RULE): Argument changed to rule and nbytes.
 -      (ENCODE_COMPOSITION_RULE): New macro.
 -      (finish_composition): New function.
 -      (MAYBE_FINISH_COMPOSITION): Call finish_composition.
 -      (DECODE_COMPOSITION_START): New implementation.
 -      (DECODE_COMPOSITION_END): Likewise.
 -      (STORE_COMPOSITION_RULE): New macro.
 -      (decode_coding_iso_2022): Avoid long looking ahead while handling
 -      composition, CTEXT extended segment, and embedded UTF-8.
 -      (setup_coding_system): For a coding of type iso-2022, reset
 -      CODING_ISO_EXTSEGMENT_LEN (coding) and
 -      CODING_ISO_EMBEDDED_UTF_8 (coding).
 -      (get_translation): Delete arguments last_block, from_nchars,
 -      to_nchars.  Callers changed.
 -      (produce_chars): Don't modify charbuf.  Adjusted for the change of
 -      get_translation.
 -      (produce_composition): Adjust for the new annotation sequence.
 -      (handle_composition_annotation): Likewise.
 -      (consume_chars): Adjust for the change of get_translation.
 -
 -2009-03-05  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_select): Shortcircuit if reentrant call.  (Bug#2564)
 -
 -2009-03-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_select_entity): New function.
 -      (font_find_for_lface): Use font_select_entity to select a font.
 -
 -      * fontset.c (fontset_find_font): If a font found without
 -      restricting to the characters C doesn't support C, try to find a
 -      font with C restriction.
 -
 -2009-03-04  Nikolaj Schumacher  <me@nschum.de>
 -
 -      * nsfont.m (nsfont_draw): Compare ns_antialias_text against lisp value.
 -
 -2009-03-04  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc): Only ignore IME messages for the
 -      characters that have already been read.  (Bug#2569)
 -
 -      * image.c (xbm_read_bitmap_data, png_load, svg_load_image):
 -      Log an error message if check_image_size failed.
 -      (xpm_load_image, pbm_load, jpeg_load, tiff_load, gif_load)
 -      (gs_load): Mention max-image-size in size error message.  (Bug#2560)
 -
 -2009-03-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * callproc.c (Fcall_process): Bind inhibit-modification-hooks to t
 -      when decoding process output.
 -
 -2009-03-01  Richard M Stallman  <rms@gnu.org>
 -
 -      * m/mips.h (DATA_SEG_BITS, XUINT, XSET): Definitions disabled.
 -
 -      * emacs.c (gdb_data_seg_bits) [USE_LSB_TAG]: Make it 0.
 -
 -2009-02-28  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (decode_coding_utf_8, decode_coding_utf_16)
 -      (decode_coding_emacs_mule, decode_coding_iso_2022)
 -      (encode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
 -      (decode_coding_raw_text, decode_coding_charset)
 -      (setup_coding_system, decode_eol, decode_coding, consume_chars):
 -      Honor inhibit-eol-conversion.  (Bug #2186)
 -
 -2009-02-28  Jason Rumney  <jasonr@gnu.org>
 -
 -      * coding.c (detect_coding_charset): If not checking latin extra,
 -      fail on characters between 0x80 and 0xA0.  (Bug#2354)
 -
 -2009-02-28  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (detect_coding_charset): Fix change from 2008-10-21.
 -      Also, check iso-latin-*, not only iso-8859-*.  (Bug#2497)
 -
 -2009-02-27  Glenn Morris  <rgm@gnu.org>
 -
 -      * callint.c (Finteractive): Doc fix.
 -
 -2009-02-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * lread.c (read_escape): Signal an error for invalid \UXXXXXXXX.
 -
 -2009-02-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_style_to_value): Set value for unknown symbols to
 -      100 instead of 255.
 -      (weight_table, slant_table, width_table): Treat "unspecified" as
 -      the default value.
 -
 -2009-02-26  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fileio.c (Fnext_read_file_uses_dialog_p): Fix typo in docstring.
 -
 -2009-02-25  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * lread.c (Fload): Stop checking Vloads_in_progress and signal
 -      error as soon as a recursive load is detected.
 -
 -2009-02-24  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_ring_bell): Convert rect to window coordinates
 -      before caching.
 -
 -2009-02-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): Fix the condition for checking
 -      unavailable font.
 -
 -2009-02-24  Glenn Morris  <rgm@gnu.org>
 -
 -      * xfaces.c (Finternal_set_font_selection_order): Remove leading
 -      whitespace that confuses documentation.
 -
 -2009-02-23  Miles Bader  <miles@gnu.org>
 -
 -      * process.c (Flist_system_processes, Fprocess_attributes)
 -      (syms_of_process): Rename `system-process-attributes' to
 -      `process-attributes'.
 -
 -2009-02-22  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * coding.h (struct coding_system): Make safe_charsets a pointer to
 -      unsigned char.
 -      * coding.c (CODING_ISO_REQUEST): Check for safe_charsets content
 -      being 255.
 -      (SAFE_CHARSET_P): Likewise.
 -      (setup_iso_safe_charsets): Properly setup safe_charsets.
 -      (Fdefine_coding_system_internal): Likewise.
 -      (setup_coding_system): Likewise.  Remove unneeded casts.
 -      (detect_coding_iso_2022): Compare Viso_2022_charset_list with
 -      CODING_ATTR_CHARSET_LIST, not CODING_ATTR_SAFE_CHARSETS.  Remove
 -      unneeded casts.
 -
 -      * insdel.c (del_range_2): Don't modify gap contents when called
 -      from decode_coding_object.  (Bug#1809)
 -
 -2009-02-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * data.c (syms_of_data): Define Qfont_spec, Qfont_entity, and
 -      Qfont_object.
 -      (Ftype_of): Recognize font objects.
 -
 -      * lisp.h: Define Qfont_spec, Qfont_entity, Qfont_object extern.
 -
 -      * font.c (Qfont_spec, Qfont_entity, Qfont_object): Definitions
 -      moved to data.c.
 -
 -2009-02-20  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (x_make_frame_invisible): Unset async_visible,
 -      async_iconified.  Based on a patch by Christian Lynbech
 -      <christian.lynbech@tieto.com>.
 -      (EmacsView-windowDidMiniaturize:): Unset async_visible.
 -
 -2009-02-20  Glenn Morris  <rgm@gnu.org>
 -
 -      * syntax.c (Fskip_chars_forward): Fix doc typo.
 -
 -2009-02-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keymap.c (Fkeymap_parent): Doc fix (Bug#2391).
 -
 -2009-02-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (Fx_create_frame): Give Xft driver a higher priority.
 -
 -2009-02-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding): Preserve coding->mode.
 -      Don't overflow coding->carryover.  (Bug#2370)
 -
 -2009-02-18  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/ibmrs6000.h (ADDR_CORRECT): Restore, removed by mistake on 2008-07-23.
 -
 -2009-02-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_check_otf_features): Fix handling of `nil' element.
 -      (Ffont_spec): Describe :lang and :otf in the docstring.
 -
 -2009-02-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * coding.c (Fcheck_coding_systems_region): Fix test for unibyte
 -      string.
 -
 -2009-02-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Fcheck_coding_systems_region): Fix typo; Qt -> Qnil.
 -      (Bug#1723)
 -
 -2009-02-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispextern.h (struct iterator_stack_entry): New line_wrap member.
 -
 -      * xdisp.c (push_it, pop_it): Save and restore line_wrap.
 -      (handle_line_prefix): Suppress wrapping of wrap prefixes.
 -
 -2009-02-14  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (MAX_SCREEN_BUF): New macro.
 -      (IT_write_glyphs): Make screen_buf[] always be MAX_SCREEN_BUF-long.
 -      Encode the entire run of glyphs sharing the same face, instead of
 -      doing that one glyph at a time (fixes a bug with displaying
 -      double-size characters).
 -
 -2009-02-13  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (ns-read-file-name): BLOCK_INPUT while showing dialog.
 -
 -      * nsmenu.m (pop_down_menu): Check popup_activated_flag.
 -      (ns_popup_dialog, EmacsDialogPanel-runDialogAt:): Let
 -      pop_down_menu do the cleanup work as it is always called.  (Bug#2154)
 -
 -      * nsfont.m (nsfont_make_fontset_for_font): For now, don't try to
 -      set fontset font for "mathematical-" sub-scripts.  (Bug #2218)
 -
 -2009-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (adjust_point_for_property): Allow stopping between two
 -      invisible areas.
 -
 -2009-02-12  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (check_face_name): Check for fake helv.  (Bug#2275)
 -      (add_font_entity_to_list): Call check_face_name even when family
 -      is unspecified.
 -
 -      * w32term.c (x_display_pixel_height, x_display_pixel_width):
 -      Release DC when finished.  Use NULL window to refer to desktop.
 -      (w32_term_init): Use NULL window to refer to desktop.  (Bug#460)
 -
 -      * w32font.c (add_font_entity_to_list): Fix check for substituted
 -      raster fonts.  (Bug#2219)
 -
 -2009-02-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (MAX_AUTO_COMPOSITION_LOOKBACK): New macro.
 -      (composition_gstring_width): Fix handling of LGLYPH_YOFF.
 -      (autocmp_chars): Use fast_looking_at.  Don't compose more
 -      characters than MAX_COMPOSITION_COMPONENTS.
 -      (find_automatic_composition): While looking forward and backward,
 -      check static composition.  Fix where to stop looking forward.
 -      (composition_adjust_point): Fix checking of static composition.
 -      (Fcomposition_get_gstring): Pay attention to
 -      MAX_COMPOSITION_COMPONENTS.
 -
 -      * lisp.h (fast_looking_at): Extern it.
 -
 -      * search.c (fast_looking_at): New function.
 -
 -      * term.c (encode_terminal_code): Adjust for the change of
 -      <struct glyph>.u.cmp.to.
 -      (append_composite_glyph): Likewise.
 -
 -      * xdisp.c (fill_gstring_glyph_string): Adjust for the change of
 -      <struct glyph>.u.cmp.to.  Check if the glyph belongs to the same
 -      composition.
 -      (append_composite_glyph): Adjust for the change of
 -      <strcut glyph>.u.cmp.to.
 -
 -2009-02-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * casetab.c (init_casetab_once):
 -      * coding.c (ALLOC_CONVERSION_WORK_AREA):
 -      * font.c (font_update_lface):
 -      * fontset.c (Fnew_fontset):
 -      * ftfont.c (ftfont_drive_otf):
 -      * xfont.c (xfont_open):
 -      * xftfont.c (xftfont_get_xft_draw): Remove spurious semicolons.
 -
 -2009-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fwrite_region): !NILP -> CONSP.
 -
 -2009-02-10  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.c (send_process): Properly relocate pointer into data
 -      when using encoded data.  (Bug#2272)
 -
 -2009-02-08  ARISAWA Akihiro  <ari@mbf.sphere.ne.jp>
 -
 -      * coding.c (detect_coding_charset): Fix previous change.
 -
 -2009-02-08  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_hide_hourglass): Handle case where frame
 -      disappeared while hourglass was displayed.  (Bug #2193)
 -
 -2009-02-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * unexelf.c (unexec): Fix error message.
 -
 -2009-02-07  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (EmacsApp-sendEvent:): Defer NSApplicationDefined event
 -      when modal window is active.  (Bug #2152)
 -      (applicationShouldTerminate:): Remove now-unneeded while loop
 -      around NSRunAlertPanel.
 -
 -      * nsmenu.m (popupSession): New file-global variable.
 -      (pop_down_menu): End the popupSession before closing dialog.
 -      (ns_popup_dialog): BLOCK_INPUT around dialog presentation.
 -      (EmacsDialogPanel-runDialogAt:): Don't place window (superfluous),
 -      don't query NSApp for events (just sleep instead).
 -
 -2009-02-07  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (syms_of_coding) <translation-table-for-input>:
 -      Modify doc string to discourage use for character code unification.
 -
 -2009-02-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * atimer.c (run_timers): Update pending_atimers.
 -
 -2009-02-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (svg_load_image): Fix last change.
 -
 -      * xfns.c (Fx_create_frame): Signal an error if no font is
 -      found (Bug#2147).
 -
 -2009-02-05  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * character.c (syms_of_character) <script-representative-chars>:
 -      Fix typo in docstring.
 -
 -2009-02-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsmenu.m (pop_down_menu): New function.
 -      (ns_popup_dialog): Call it on unwind.
 -      (EmacsDialogPanel-runDialogAt:): Check popup_activated_flag and
 -      call timer_check() (Bug#2154).
 -      (EmacsMenu-menuNeedsUpdate:): Don't call ns_update_menu if
 -      handling_signal is set.
 -      (EmacsMenu-fillWithWidgetValue:): Set submenu title.
 -
 -      * config.in: Get rid of COCOA_EXPERIMENTAL_CTRL_G.
 -
 -      * s/darwin.h: Same and NO_SOCK_SIGIO as well.
 -
 -      * nsterm.m (ns_read_socket): Same and don't set handling_signal.
 -
 -      * keyboard.c (poll_for_input_1, handle_async_input):
 -      Set handling_signal under HAVE_NS.
 -
 -2009-02-04  Glenn Morris  <rgm@gnu.org>
 -
 -      * fileio.c (Fwrite_region): Doc fix (mention annotate-functions).
 -
 -2009-02-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (composite.o): Depends on frame.h and termhooks.h.
 -
 -      * charset.c (Fchar_charset): New optional arg restriction.
 -
 -      * coding.h (coding_system_charset_list): Extern it.
 -
 -      * coding.c (coding_system_charset_list): New function.
 -
 -      * composite.c: Include coding.h and termhooks.h.
 -      (composition_gstring_p): Fix for the terminal case.
 -      (composition_gstring_width): Likewise.
 -      (fill_gstring_body): Likewise.
 -      (autocmp_chars): For terminal, call Fcomposition_get_gstring with
 -      the frame.
 -      (composition_compute_stop_pos): Adjust cmp_it->stop_pos if point
 -      is within a composition.
 -      (Fcomposition_get_gstring): Fix the terminal case.
 -
 -      * term.c (encode_terminal_code): Fix handling of composition.
 -      (produce_composite_glyph): For static composition, get pixel_width
 -      from struct composition.
 -
 -2009-02-02  Andreas Schwab  <schwab@suse.de>
 -
 -      * unexelf.c (unexec): Handle unaligned bss offset.
 -
 -2009-02-01  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_read_socket): Copy 2009-01-29 and 2009-01-30
 -      XT,w32read_socket changes to ns_read_socket.
 -
 -      * keyboard.c (handle_interrupt): Don't call
 -      quit_throw_to_read_char() under NS.
 -
 -      * blockinput.h: Remove NS-specific code.
 -
 -2009-01-30  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * dispnew.c (window_change_signal): Don't try to get the size of a
 -      suspended tty frame.
 -      * term.c (Fresume_tty): Resize if the size has changed while the
 -      tty was suspended.
 -
 -      * alloc.c (mark_stack): Properly conditionalize previous change.
 -
 -2009-01-30  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32inevt.c (w32_console_read_socket) [SYNC_INPUT]:
 -      * w32term.c (w32_read_socket) [SYNC_INPUT]:
 -      Remove; this code is not used on Windows.
 -
 -2009-01-30  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (detect_eol, decode_eol): Handle text with DOS-style
 -      EOLs that also has stray ^M characters.
 -
 -2009-01-30  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * atimer.c (run_timers, alarm_signal_handler):
 -      * keyboard.c (pending_signals, handle_async_input, init_keyboard):
 -      * w32inevt.c (w32_console_read_socket):
 -      * w32term.c (w32_read_socket):
 -      * xterm.c (XTread_socket): Use "#ifdef SYNC_INPUT" where appropriate.
 -
 -2009-01-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * callproc.c (Vtemp_file_name_pattern): Remove DEFVAR_LISP.
 -      Initialize it as a relative filename pattern.
 -      (init_callproc): Don't initialize Vtemp_file_name_pattern here.
 -      (Fcall_process_region): Simplify temp file creation using
 -      temporary-file-directory.
 -
 -2009-01-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c: Rename pending_signals to msdos_pending_signals.
 -      (sig_suspender, sigprocmask): Adjust.
 -
 -2009-01-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (pending_signals): New var.
 -      (poll_for_input, input_available_signal, init_keyboard): Set it.
 -      (process_pending_signals): New function.
 -
 -      * lisp.h (QUIT): Check pending_signals instead of
 -      interrupt_input_pending.  Use process_pending_signals.
 -
 -      * atimer.c (run_timers, alarm_signal_handler): Update pending_signals.
 -
 -      * process.c (wait_reading_process_output): Use process_pending_signals.
 -
 -      * sysdep.c (emacs_write): Use process_pending_signals.
 -
 -      * xterm.c (XTread_socket): Update pending_signals.
 -
 -      * w32term.c (w32_read_socket): Update pending_signals.
 -
 -      * w32inevt.c (w32_console_read_socket): Update pending_signals.
 -
 -2009-01-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_has_char): New function.
 -      (syms_of_xftfont): Register xftfont_has_char in xftfont_driver.
 -
 -2009-01-29  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.h (EmacsPrefsController.cursorBlinkSlider): Only define
 -      under GNUstep.
 -      (ns_query_color): New declaration.
 -
 -      * nsterm.m (ns_confirm_quit): New variable.
 -      (ns_set_default_prefs, syms_of_nsterm, ns_term_init): Initialize it.
 -      (EmacsApp-applicationShouldTerminate:): Use it.
 -      (EmacsPrefsController): Let user set it.
 -      (ns_query_color): New function.
 -      (ns_defined_color): Use it.
 -      (ns_initialize): Drop.
 -      (ns_term_init): Add two lines from ns_initialize(), and set
 -      input_interrupt_mode to nil.
 -
 -      * image.c (svg_load_image): Don't right-shift background RGB when
 -      obtained from FRAME_BACKGROUND_PIXEL.  Under HAVE_NS use ns_query_color.
 -
 -2009-01-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (font_for_char): Use assq_no_quit, not assoc_no_quit.
 -      (fontset_get_font_group): Remember that no font-group is specified
 -      for C.
 -
 -2009-01-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fns.c (concat): Check for string overflow (bug#1787).
 -
 -      * undo.c (undo_limit, undo_strong_limit, Vundo_outer_limit):
 -      Quadruple undo limits (bug#1501).
 -
 -2009-01-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_has_char): If the arg FONT is a font-object,
 -      directly use GT_Get_Char_index.
 -
 -      * xftfont.c (struct xftfont_info): New member `index'.
 -
 -      * fontset.c (font_for_char): Use assq_no_quit, not assoc_no_quit.
 -      (Ffontset_font): Adjust for the change of fontset entry.
 -
 -2009-01-26  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): Fix handling of non-cons return
 -      value of fontset_get_font_group.
 -      (fontset_font): Revert last change.
 -
 -2009-01-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_list_internal): Return quickly if registry is
 -      unknown.  Simplify final return.
 -      (add_font_entity_to_list): Break complex logic down into more
 -      manageable chunks.  Move unknown registry check to
 -      w32font_list_internal.
 -
 -2009-01-25  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      Changes to remove Feval calls from GUI under NS.
 -
 -      * nsterm.h: Move KEY_NS_... definitions here from nsterm.m.
 -      Add NS_TOGGLE_TOOLBAR, NS_PUT_WORKING_TEXT, NS_UNPUT_WORKING_TEXT.
 -      Remove NS_INSERT_WORKING_TEXT, NS_DELETE_WORKING_TEXT.
 -
 -      * nsterm.m: Move KEY_NS_... definitions to nsterm.h.
 -      (EmacsView-toggleToolbar:): Use KEY_NS_TOGGLE_TOOLBAR.
 -      (EmacsView-setMarkedText:,-deleteWorkingText:): Use NS_TEXT_EVENT
 -      instead of NON_ASCII_KEYSTROKE_EVENT.
 -      (EmacsApp-terminate:): Use KEY_NS_POWER_OFF instead of Feval.
 -      (EmacsApp-applicationShouldTerminate:): Query user.
 -      (EmacsPreferencesController-runHelp:): Use KEY_NS_INFO_PREFS
 -      instead of Feval.
 -
 -      * termhooks.h (NS_TEXT_EVENT): New event type under HAVE_NS.
 -
 -      * keyboard.c (kbd_buffer_get_event): Check for it.
 -      (keys_of_keyboard): Define lispy keys for
 -      ns-put/unput-working-text.
 -
 -      * nsmenu.m (ns_popup_dialog): Resync window setting with X and W32
 -      versions.
 -      (EmacsDialog-runDialogAt:): Use NSModalPanelRunLoopMode.
 -
 -2009-01-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispnew.c (buffer_posn_from_coords): Use Fset_buffer instead of
 -      setting current_buffer directly.  (Bug#2044)
 -
 -2009-01-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fontset.c (fontset_font): If we know there is no font, don't do
 -      any work.  (Bug#1952, bug#1990).
 -
 -      * font.c (font_parse_xlfd): Handle patterns of length < 2.  (Bug#1802)
 -
 -2009-01-23  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * emacs.c (main): Do fork+exec under --daemon in Cocoa.
 -      (ns_no_defaults): New declaration.
 -      (main): Use it.
 -
 -      * nsterm.h (ns_no_defaults): New declaration.
 -
 -      * nsfns.m (x_get_string_resource): Don't read when ns_no_defaults.
 -
 -      * nsterm.m (ns_no_defaults): New variable.
 -      (ns_initialize): Don't read defaults when ns_no_defaults.
 -      (EmacsView-readSelectionFromPasteboard:)
 -      (writeSelectionToPasteboard:types:): New stubbed-out methods for
 -      NSServicesRequests protocol.  (Bug#1435)
 -      (ns_dumpglyphs_stretch): New function.
 -      (ns_draw_glyph_string): Use it, parallel Yamamoto Mitsuharu change
 -      of 2008-11-15 to other terms.  (Bug#615)
 -
 -      * nsimage.m (setPixmapData:): Set to ignore image DPI.
 -
 -2009-01-23  Giorgos Keramidas  <keramida@freebsd.org>  (tiny change)
 -
 -      * alloc.c (mark_stack): Use "flushw" instead of "ta 3" assembly
 -      call for Sparc64.
 -
 -2009-01-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m:
 -      * nsgui.h:
 -      * nsmenu.m:
 -      * nsselect.m:
 -      * nsterm.h:
 -      * nsterm.m: Remove '23' comments that indicated code added during
 -      update from emacs-20 -> emacs-23.
 -
 -2009-01-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (EmavsView-keyDown:): Treat nil as Qnone for
 -      ns_alternate_modifier.  (Bug#1217)
 -
 -      * nsmenu.m (EmacsMenu-parseKeyEquiv:, addItemWithWidgetValue:):
 -      Display all shortcuts, including those w/o super modifier.
 -
 -      * nsfns.m (ns-read-file-name): Fix typo in assignment statement.
 -
 -2009-01-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fileio.c (Vwrite_region_post_annotation_function)
 -      (Vwrite_region_annotation_buffers): New vars.
 -      (build_annotations_unwind): Just reset
 -      Vwrite_region_annotation_buffers.
 -      (Fwrite_region): Initialize Vwrite_region_annotation_buffers.
 -      Call write-region-post-annotation-function.
 -      (build_annotations): Add to Vwrite_region_annotation_buffers if
 -      buffer changes.
 -
 -2009-01-21  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.h (EmacsApp-setAppleMenu:): Conditionalize more correctly on
 -      Tiger.
 -      * nsfns.m (ns_do_applescript):
 -      Conditionalize typeUTF16ExternalRepresentation on Tiger.
 -
 -2009-01-21  Wolfgang Lux  <wolfgang.lux@gmail.com>  (tiny change)
 -
 -      * nsterm.m (EV_TRAILER): Always use emacsframe for frame_or_window.
 -
 -2009-01-21  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsmenu.m (NSMENUPROFILE): Change #if style.
 -
 -      * nsterm.h (EmacsPrefsController): Add -setPanelFromDefaultValues.
 -
 -      * nsterm.m (x_set_frame_alpha): Add prototype.
 -      (ns_fake_keydown, EmacsView-keyUp:): New variable and function to
 -      handle Ctrl-tab.  (Bug#1841)
 -      (ns_get_color): Use unsigned long long for scanned hex string value.
 -      (ns_term_shutdown): Abort on non SIGTERM signals.
 -      (EmacsPrefsController-setDefaultFont:,-setColors:): Raise the frame.
 -      (EmacsPrefsController-setPanelFromDefaultValues): New function.
 -      (EmacsPrefsController-resetToDefaults:): Use it.  (Bug#1801)
 -      (ns_font_to_xlfd, ns_fontname_to_xlfd): Remove, unused.
 -      (ns_defined_color): Fix settings of the XColor variable fields:
 -      red,green,blue scale to 2-byte, pixel's parts to 1-byte.  (Bug#1663)
 -
 -      * nsimage.m (EmacsImage+allocInitFromFile:): Set to ignore image
 -      DPI.  (Bug#1316)
 -      (EmacsImage-setPixelAtX:Y:toRed:green:blue:alpha:): Fix color
 -      values in onTiger section.
 -
 -2009-01-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute, Fx_list_fonts):
 -      Check return value of font_spec_from_name.
 -      (Fx_list_fonts): Doc fix.  (Bug#1951)
 -
 -      * font.c (font_spec_from_name): Return Qnil if font name could not
 -      be parsed.
 -      (font_parse_name): Treat a `?' character as part of an XLFD.
 -
 -      * fns.c (Fsubstring): Doc fix.
 -
 -2009-01-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_lookup_cache): Check the return value of FcFontList.
 -      (ftfont_list): Likewise.
 -
 -2009-01-18  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * dbusbind.c (Fdbus_register_signal):
 -      * process.c (conv_sockaddr_to_lisp):
 -      * w32fns.c (Fw32_battery_status): Use empty_unibyte_string.
 -
 -      * callproc.c (Fgetenv_internal): Doc fix.
 -
 -2009-01-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (x_make_gc): Don't allocate stipple member for gc_values;
 -      it is not even used.
 -
 -2009-01-16  Glenn Morris  <rgm@gnu.org>
 -
 -      * font.c (Ffont_variation_glyphs): Silence compiler.
 -
 -2009-01-15  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * sound.c (SOUND_WARNING): Use _snprintf, for MSVC compatibility.
 -      Reported by David Robinow <drobinow@gmail.com>.
 -
 -2009-01-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_system): Fix handling of null_byte_found.
 -
 -2009-01-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * frame.c (x_set_font): Always store a font to the font parameter,
 -      never a fontset.  (Bug#1562)
 -
 -2009-01-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (TWO_MORE_BYTES): New macro.
 -      (detect_coding_utf_16): Use TWO_MORE_BYTES instead of ONE_MORE_BYTE.
 -
 -2009-01-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_clear_prop): If clearing the family, clear the font
 -      width index too.
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Revert last change.
 -
 -2009-01-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * sound.c [WINDOWSNT] (SOUND_WARNING): New macro.
 -      (do_play_sound): Use it.  Don't pass a hardcoded buffer size to mci
 -      functions, use sizeof.
 -
 -2009-01-12  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * keyboard.c (read_char): Fix case where last_nonmenu_event
 -      returned a bad value with submenus.  (Bug#447)
 -
 -2009-01-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): If setting the
 -      family, clear the font width index too.
 -
 -2009-01-11  Jason Rumney  <jasonr@gnu.org>
 -
 -      * keyboard.c (cmd_error_internal): Exit when errors occur before
 -      frame creation and not in daemon mode.  (Bug#1836)
 -
 -2009-01-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (pos_visible_p): When iterator stops on the last glyph
 -      of a display vector, backtrack.
 -      (try_window_reusing_current_matrix): Check glyph type before
 -      referencing charpos member.
 -
 -2009-01-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      Fix Bug #876:
 -
 -      * coding.c (inhibit_null_byte_detection): New variable.
 -      (detect_coding, detect_coding_system): Don't pay attention to null
 -      bytes if inhibit_null_byte_detection is non-zero.
 -      (syms_of_coding) <inhibit-null-byte-detection>: Declare and document.
 -      <inhibit-iso-escape-detection>: Doc fix.
 -
 -2009-01-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (add_font_entity_to_list): Don't report unknown
 -      Windows charset as any unrecognized registry.  (Bug#1548)
 -      Only report Unicode Plane 2 fonts as unicode-sip.
 -
 -2009-01-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (Fx_font_family_list): Delete function.
 -      Move compatibility version to faces.el.
 -
 -      * font.c (Ffont_family_list): Return a list of strings, not symbols.
 -
 -2009-01-09  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (x_set_frame_parameters): Remember requested value for
 -      fullscreen before it's reset by the parameter handler.
 -
 -2009-01-09  Glenn Morris  <rgm@gnu.org>
 -
 -      * keyboard.c (last_command_char): For clarity, rename to...
 -      (last_command_event): ... and update all users.
 -      (last_input_char): For clarity, rename to...
 -      (last_input_event): ... and update all users.
 -      (last-command-char, last-input-char): Move to subr.el as aliases.
 -      * cmds.c, commands.h: Update for last_command_char rename.
 -
 -2009-01-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_open_for_lface): Handle unspecified height attribute.
 -
 -2009-01-08  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Vx_pointer_shape, Vx_nontext_pointer_shape)
 -      (Vx_mode_pointer_shape, Vx_window_horizontal_drag_shape)
 -      (Vx_hourglass_pointer_shape, Vx_sensitive_text_pointer_shape):
 -      Don't declare.
 -      (syms_of_w32fns): Don't define x-pointer-shape variable.  (Bug#1485)
 -      (x_create_tip_frame) [GLYPH_DEBUG]: Enable image debugging code.
 -
 -2009-01-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): In the case of replace,
 -      remember the coding system used for decoding in
 -      coding_system (Bug#1039).
 -
 -      * coding.c (decode_coding_utf_8): Check byte_after_cr before
 -      breaking the loop.  (Bug#870)
 -      (decode_coding_utf_16, decode_coding_emacs_mule)
 -      (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
 -      (decode_coding_charset): Likewise.
 -
 -2009-01-05  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (x_set_frame_parameters): Make sure height (width) get
 -      applied when fullwidth (fullheight) is set.  (Bug#1522)
 -
 -2009-01-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32.c: Use 64-bit arithmetic to do FILETIME conversions.  (Bug#1766)
 -      (utc_base): Declare as ULONGLONG, not long double.
 -      (convert_time_raw): Delete.
 -      (FILETIME_TO_U64, U64_TO_LISP_TIME): New macros.
 -      (initialize_utc_base): New function.
 -      (convert_time): Use FILETIME_TO_U64, initialize_utc_base.
 -      (convert_from_time_t): Use initialize_utc_base; compute result with
 -      64-bit arithmetic.
 -      (process_times): Use FILETIME_TO_U64, U64_TO_LISP_TIME.
 -
 -2009-01-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess)
 -      (Qttname, Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime)
 -      (Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs)
 -      (Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime)
 -      [!subprocesses]: Define.
 -      (syms_of_process) [!subprocesses]: Intern and staticpro them.
 -      (Flist_system_processes, Fsystem_process_attributes)
 -      [!subprocesses]: Call list_system_processes and
 -      system_process_attributes instead of returning Qnil.
 -
 -      * dosfns.c (system_process_attributes, list_system_processes):
 -      New functions.
 -
 -      * vm-limit.c (ret_lim_data) [MSDOS]: New function.
 -
 -      * sysdep.c (list_system_processes, system_process_attributes) [MSDOS]:
 -      Don't use the default (no-op) implementation.
 -
 -2009-01-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * keyboard.c (parse_modifiers_uncached): Wheel events are
 -      clicks (bug#687).
 -
 -      * w32term.c (x_query_colors, x_query_color): New functions.
 -
 -      * image.c (x_to_xcolors, png_load): Eliminate W32 specific code.
 -      (svg_load_image): Cast returned pointers from dynamically loaded
 -      functions.  Eliminate W32 specific code.
 -
 -2009-01-02  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * nsfns.m (x_set_foreground_color, x_set_background_color)
 -      (x_set_cursor_color, x_set_icon_name, x_explicitly_set_name)
 -      (x_set_title, x_set_icon_type, x_set_cursor_type): Rename to use
 -      x_ prefix instead of ns_.  Update references.
 -      (syms_of_nsfns): Add a FIXME comment.
 -
 -      * nsterm.m (x_set_cursor_type): New prototype.
 -      (setValuesFromPanel): Use it instead of the old ns_ prefixed name.
 -
 -      * sysdep.c (system_process_attributes): Provide Qtime and Qctime
 -      for Solaris instead of incorrectly providing Qutime and Qcutime.
 -
 -2009-01-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (process_times): Compute sum of utime and stime.
 -      (system_process_attributes): Add Qtime to the alist.
 -
 -      * sysdep.c (system_process_attributes): Compute Qtime and Qctime
 -      and add them to the alist.
 -
 -      * process.c (top level) <Qtime, Qctime>: New variables.
 -      (syms_of_process): staticpro them.
 -      (Fsystem_process_attributes): Add their documentation to the doc
 -      string.
 -
 -      * process.h: Declare Qtime and Qctime.
 -
 -2009-01-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (Qgobject): New symbol.
 -      (syms_of_image): Initialize it.
 -      (init_svg_functions): Load some functions from gobject library.
 -
 -2009-01-01  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * frame.c (make_terminal_frame): Remove redundant code and useless
 -      block.
 -
 -2009-01-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.c (conv_sockaddr_to_lisp): Add workaround for
 -      getsockname bug on BSD.
 -
 -2009-01-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (x_create_tip_frame): Set border width of the X window.
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Improve error message.
 -
 -2009-01-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_new_font): Return font object, not fontset.  (Bug#119)
 -      Don't block input, as per earlier xterm.c changes.
 -
 -2008-12-31  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (ns_appkit_version_str): Rename from ns_appkit_version.
 -      (ns_appkit_version_int): New function.
 -      (x-server-version): Use ns_appkit_version_int and follow 21+
 -      convention of returning 3 integers.
 -
 -2008-12-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.h (CHAR_VARIATION_SELECTOR_P): New macro.
 -      (CHAR_SURROGATE_PAIR_P): New macro.
 -
 -      * font.h (struct font_driver): New member get_variation_glyphs.
 -
 -      * font.c (font_range): Don't require a font for a variation selector.
 -      (Ffont_variation_glyphs): New function.
 -      (syms_of_font): Defsubr it.
 -
 -      * ftfont.c (ftfont_driver): Set the member get_variation_glyphs to
 -      ftfont_variation_glyphs.
 -      (setup_otf_gstring): New function.
 -      (ftfont_drive_otf): Use it.
 -      (ftfont_shape_by_flt): Handle variation selector.
 -      (ftfont_variation_glyphs): New function.
 -
 -2008-12-30  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (Vemacs_iconified): Remove.
 -
 -2008-12-30  Jason Rumney  <jasonr@gnu.org>
 -
 -      * frame.c (store_frame_param, x_get_arg): Enable newer code on
 -      WINDOWSNT too, as related changes have already been synced.  (Bug#117)
 -
 -2008-12-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Don't advance iterator if we have
 -      reseated to the desired position.
 -
 -      * xdisp.c (move_it_to): Handle GET_FROM_STRETCH method when
 -      checking for pos match.
 -
 -2008-12-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * insdel.c (copy_text): To convert a non-ASCII char to unibyte,
 -      just get the low 8-bit of the code.
 -
 -      * font.c (font_intern_prop): Validate str as multibyte.
 -
 -2008-12-29  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * dispextern.h (struct face): Move lface and hash from the middle
 -      of bitfields.
 -
 -      * Makefile.in (INTERVALS_H): Rename from INTERVAL_SRC, update all users.
 -
 -2008-12-29  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (INTERVAL_SRC): Also depend on dispextern.h.
 -      (coding.o, dispnew.o, keymap.o, msdos.o): Depend on INTERVAL_SRC
 -      instead of intervals.h.
 -
 -2008-12-26  Andreas Schwab  <schwab@suse.de>
 -
 -      * keymap.c (map_keymap_char_table_item): Make a copy of KEY if it is a
 -      cons.
 -
 -2008-12-26  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * textprop.c (Qminibuffer_prompt): New variable.
 -      (syms_of_textprop): Initialize it.
 -      * callint.c (Fcall_interactively): For `c', `k', and `K' prompt
 -      in minibuffer-prompt face.  (Bug#1662)
 -
 -2008-12-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * buffer.c (Fbuffer_swap_text): Use POINTER_TYPE.
 -
 -2008-12-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * ralloc.c (r_alloc_reset_variable): New function.
 -
 -      * buffer.c (Fbuffer_swap_text) [REL_ALLOC]: Reset ralloc's internal
 -      record of what points where.  (Bug#716)
 -
 -2008-12-22  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * minibuf.c (read_minibuf): Follow the non-interactive case when
 -      running as a daemon, before detaching.
 -
 -2008-12-22  Andreas Schwab  <schwab@suse.de>
 -
 -      * buffer.c (init_buffer): Use realloc instead of xrealloc.
 -      * gtkutil.c (free_widget_value): Use xfree instead of free.
 -
 -2008-12-22  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (delete_frame): New function derived from
 -      Fdelete_frame to handle Qnoelisp value for FORCE argument.
 -      Delete last frame iff FORCE equals Qnoelisp.  (Bug#1450)
 -      (Fdelete_frame): Call delete_frame.  Remove line from doc-string
 -      saying that FORCE non-nil doesn't run `delete-frame-functions'.
 -      * frame.h: Extern delete_frame.
 -      * window.c (window_loop):
 -      * terminal.c (delete_terminal):
 -      * xterm.c (x_connection_closed):
 -      * xfns.c (Fx_hide_tip):
 -      * w32fns.c (Fx_hide_tip): Call delete_frame instead of Fdelete_frame.
 -
 -2008-12-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_encode_char): Return FONT_INVALID_CHAR
 -      when character maps to .notdef character.
 -
 -2008-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (cmd_error_internal): Don't exit in daemon mode, bug#1310.
 -
 -2008-12-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * frame.c (Fmake_terminal_frame): Raise an error when called from
 -      a graphical frame on Windows.  (Bug#1325)
 -
 -2008-12-20  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * frame.c (Fdelete_frame): Set f->menu_bar_vector to Qnil.
 -
 -2008-12-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * minibuf.c (Fread_buffer): Doc fix.
 -
 -2008-12-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * fileio.c (Fexpand_file_name): Do not allow ../ to go beyond the
 -      server name in UNC paths.  (Bug#719)
 -
 -      * coding.c (decode_coding): Clear chars_at_source flag when using
 -      charbuf.  (Bug#1035)
 -
 -2008-12-19  Daniel Engeler  <engeler@gmail.com>
 -
 -      * sysdep.c (serial_configure): Fix typo.
 -
 -2008-12-19  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * sysdep.c: Include alloca.h.
 -      (system_process_attributes): Add implementation for Solaris.
 -
 -      * s/sol2-10.h (HAVE_PROCFS, _STRUCTURED_PROC): New defines.
 -
 -2008-12-19  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      Reorganize implementation of Flist_system_processes and
 -      Fsystem_process_attributes.  No functional changes.
 -      * process.c: Don't #include pwd.h, grp.h and limits.h.
 -      (Flist_system_processes): Just call list_system_processes.
 -      (Fsystem_process_attributes): Just call system_process_attributes.
 -      (procfs_list_system_processes, time_from_jiffies)
 -      (ltime_from_jiffies, get_up_time, procfs_ttyname, MAJOR, MINOR)
 -      (procfs_get_total_memory, procfs_system_process_attributes): Move ...
 -
 -      * sysdep.c: ... here.  Include pwd.h, grp.h and limits.h.
 -      (list_system_processes): Rename from
 -      procfs_list_system_processes.  Enclose in #ifdef HAVE_PROCFS.
 -      Provide a do nothing implementation.
 -      (system_process_attributes): Rename from
 -      procfs_list_system_processes.
 -      (ltime_from_jiffies, get_up_time, procfs_ttyname, MAJOR, MINOR)
 -      (procfs_get_total_memory): Enclose in #ifdef GNU_LINUX.
 -
 -      * w32.c (list_system_processes): Rename from
 -      w32_list_system_processes.
 -      (system_process_attributes): Rename from
 -      w32_system_process_attributes.
 -
 -      * s/gnu-linux.h (LISTPROC, PROCATTR): Remove.
 -
 -      * process.h (w32_list_system_processes)
 -      (w32_system_process_attributes): Remove.
 -      (list_system_processes, system_process_attributes):
 -      New prototypes.
 -
 -2008-12-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_decode_coding_xlfd): New function.
 -      (xfont_encode_coding_xlfd): New function.
 -      (xfont_list_pattern): Decode XLFD by iso-8859-1.
 -      (xfont_list): Decode and encode XLFD by iso-8859-1.
 -      (xfont_match): Likewise.
 -      (xfont_list_family): Likewise.
 -      (xfont_open): Likewise.
 -
 -      * ftfont.c (ftfont_open): Generate a multibyte string if given
 -      names are utf-8.
 -
 -      * xftfont.c (xftfont_open): Generate a multibyte string if given
 -      names are utf-8.
 -
 -2008-12-18  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_frame_resized): Remove check if rows/columns have
 -      changed.
 -      (xg_tool_bar_proxy_callback): Put focus on the frame after we have
 -      clicked on a detached tool bar button.
 -
 -2008-12-18  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * emacs.c (main): Print and error and exit when no data is read
 -      from the pipe.
 -
 -2008-12-17  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_has_char): Always return -1.
 -
 -2008-12-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_open_entity): Fix previous change.
 -
 -2008-12-16  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * process.c: Include <limits.h>.
 -
 -2008-12-16  Chetan Pandya  <pandyacus@sbcglobal.net>  (tiny change)
 -
 -      * font.c (font_update_drivers): Fix mistake in reconstructing the
 -      driver list.
 -
 -2008-12-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_clear_cache): Fix format of font cache data.
 -
 -2008-12-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xftfont.c (xftfont_open): Free Xft font pattern if
 -      XftFontOpenPattern fails.
 -
 -      * xterm.c (x_free_frame_resources): Remove extraneous call to
 -      free_frame_faces.
 -
 -2008-12-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_delete_display): Move xim_close_dpy call to
 -      x_delete_terminal.
 -      (x_delete_terminal): Call xim_close_dpy.
 -
 -2008-12-13  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (intern_font_name): New function.
 -      (add_font_name_to_list, w32_enumfont_pattern_entity): Use it.
 -      (w32font_open_internal, Fx_select_font): Decode font name.
 -      (fill_in_logfont, list_all_matching_fonts): Encode font name.
 -
 -      * w32font.h (intern_font_name): Declare new function.
 -
 -      * w32uniscribe.c (add_opentype_font_name_to_list):
 -      Use intern_font_name.
 -
 -2008-12-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (Fdelete_frame): Call free_font_driver_list.
 -
 -      * font.c (free_font_driver_list): Implement missing function.
 -
 -      * w32term.c (w32_term_init): Don't initialize the image cache
 -      here; it will be done in init_frame_faces.
 -
 -      * xterm.h (struct xim_inst_t): Definition moved from xterm.c.
 -      (struct x_display_info): Remove unused member null_pixel.  New
 -      member xim_callback_data.
 -
 -      * xterm.c (struct xim_inst_t): Definition moved to xterm.h.
 -      (xim_initialize): Save pointer to callback function data.
 -      (xim_close_dpy): Free callback function data.  Call XCloseIM,
 -      reverting 2008-11-04 change by David Smith.
 -      (x_term_init): Don't initialize the image cache here; it will be
 -      done in init_frame_faces.  Remove ancient "null_pixel" cruft.
 -      (x_delete_display): Free x_dnd_atoms member.
 -
 -2008-12-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_rescale_ratio): Moved from xfaces.c.
 -      Argument type changed.  Handle a font-spec too.
 -      (font_score): Check Vface_font_rescale_alist.
 -      (font_open_entity): Likewise.  (Bug#1547)
 -
 -      * xfaces.c (font_rescale_ratio): Moved to font.c.
 -
 -2008-12-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (Fx_wm_set_size_hint): Check if the frame is an X frame.
 -
 -2008-12-12  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_display_info_for_name, Fx_open_connection): Set
 -      Vwindow_system_version to the real w32 major version.
 -
 -2008-12-12  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * term.c (init_tty): Move setting the terminal name before the
 -      potential user: maybe_fatal.
 -
 -2008-12-11  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * term.c (tty_free_frame_resources): Renamed from delete_tty_output;
 -      all callers changed.  Call free_frame_faces to free the face cache.
 -
 -2008-12-11  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (fill_in_logfont): Don't assume symbol script means
 -      SYMBOL_CHARSET.  (Bug#547)
 -
 -      * w32uniscribe.c (uniscribe_encode_char): Increase glyph buffer
 -      size for surrogates.  (Bug#1096, bug#872)
 -
 -2008-12-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32proc.c (Fw32_get_locale_info): Decode long form of locale name.
 -
 -2008-12-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * process.c (Fsystem_process_attributes, syms_of_process):
 -      Fix typo in name of Ssystem_process_attributes.
 -      Reported by Ulrich Mueller <ulm@kph.uni-mainz.de>.
 -
 -2008-12-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * syntax.c (Fmodify_syntax_entry): Doc fix.
 -
 -2008-12-10  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * font.c (Ffont_spec): Move usage to end of docstring.
 -
 -2008-12-10  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (Qcham): New symbol.
 -      (font_supported_scripts): Add cham, and comments for other new
 -      scripts in bitfield from OpenType spec.
 -      (add_font_entity_to_list): Limit unicode-sip fonts to those that
 -      contain characters beyond the bmp.
 -
 -2008-12-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (fc_charset_table): Add "unicode-sip".
 -      (ftfont_spec_pattern): Lookup fc_charset_table for the registry
 -      Qunicode_sip.
 -
 -2008-12-10  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * coding.c (QCdefault_char): Rename from QCdefalut_char.
 -      (Fcoding_system_put): Use QCdefault_char.
 -      (syms_of_coding): Set QCdefault_char, not QCdefalut_char.
 -
 -2008-12-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xftfont.c (syms_of_xftfont): Fix typo.
 -
 -      * buffer.c (Fbuffer_swap_text): Signal error if swapping a dead buffer.
 -
 -2008-12-08  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * emacs.c (main): Close daemon_pipe on exec.
 -
 -2008-12-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * termchar.h (struct tty): New members termcap_term_buffer and
 -      termcap_strings_buffer.
 -
 -      * term.c (encode_terminal_code): Free any previous memory blocks
 -      before calling xmalloc for encode_terminal_src or encode_terminal_dst.
 -      (maybe_fatal): Buffer argument deleted.  Don't free buffer here.
 -      All callers changed.
 -      (init_tty): Store termcap data and string buffers in new struct
 -      tty members termcap_term_buffer and termcap_strings_buffer.
 -      (delete_tty): Free them.
 -      (syms_of_term): Initialize encode_terminal_src and encode_terminal_dst.
 -
 -2008-12-07  Seiji Zenitani  <zenitani@mac.com>
 -
 -      * nsfns.m (ns_set_background_color): Remove code duplication.
 -      It was a substitute for face-transparency on OS X 10.3.
 -
 -2008-12-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * coding.c (make_conversion_work_buffer): Disable buffer
 -      modification hooks in the work buffer.
 -
 -2008-12-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (procfs_system_process_attributes): If `nread' has a
 -      negative value, assign zero to it.
 -
 -2008-12-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * eval.c (Vdebug_on_error): Doc fix.
 -
 -2008-12-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_shape_by_flt): Use "combining" flt if the
 -      second character is a combining character.
 -
 -2008-12-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (procfs_system_process_attributes): Don't use cmd,
 -      cmdsize, and q without initializing them first.
 -
 -2008-12-04  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_draw): Initialize orig_clip before getting
 -      it, and delete it when finished.
 -
 -2008-12-04  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * keyboard.c (kbd_buffer_get_event): Follow the non-interactive
 -      case when running as a daemon before detaching.
 -
 -2008-12-03  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32.c (init_environment): Don't unload library shell32.dll.
 -
 -2008-12-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_at): Set `multibyte' at first.
 -
 -      * coding.c (decode_coding_charset): Check type of an element of
 -      vector VALIDS.
 -      (encode_coding_emacs_mule): Be sure to set `code'.
 -
 -      * fontset.c (face_for_char): Handle invalid charset property correctly.
 -      (font_for_char): Likewise.
 -
 -2008-12-03  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (Fopen_font): Compute pixel size correctly.
 -      (font_update_lface): Handle fonts with corrupted size specs,
 -      i.e. non-int and non-float.
 -
 -      * ftfont.c (ftfont_match): Initialize entity variable.
 -      (ftfont_resolve_generic_family): Avoid using uninitialized var.
 -      (ftfont_list_family): Initialize list var earlier.
 -
 -      * xselect.c (Fx_get_cut_buffer_internal): Fix memory leak.
 -
 -      * xterm.c (x_draw_glyph_string): Fall back on
 -      underline_minimum_offset for underline position.
 -
 -2008-12-03  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * keyboard.c (read_char_help_form_unwind): Specify the type for ARG.
 -
 -      * character.c (c_string_width): Specify the type for LEN.
 -
 -2008-12-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_utf_16): Initialize consumed_chars_base to 0.
 -      (decode_coding_utf_8): Likewise.
 -      (detect_coding_system): Initialize utf_16_le_eol to -1, val to Qnil.
 -      (produce_chars): Initialize consumed_chars to 0.
 -
 -2008-12-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (make_lispy_position): Only use PT if the selected
 -      window is current.
 -
 -2008-12-02  Andreas Schwab  <schwab@suse.de>
 -
 -      * font.c (font_unparse_fcname): Fix use of uninitialized variable.
 -
 -      * doprnt.c (doprnt1): Fix size of charbuf.
 -
 -2008-12-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (timer_check): Revert last change.
 -
 -2008-12-02  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * makefile.w32-in ($(BLD)/w32console.$(O)): Fix silly, silly typo.
 -
 -2008-12-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * makefile.w32-in: Update dependencies.
 -      (CONFIG_H): Add $(EMACS_ROOT)/nt/inc/sys/time.h.
 -
 -2008-12-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * font.c (register_font_driver): Use xmalloc.
 -      (font_put_frame_data): Likewise.
 -
 -2008-12-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (realize_x_face): Make abort condition clearer.
 -
 -      * gtkutil.c (update_frame_tool_bar): Initialize variable.
 -
 -2008-11-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (timer_check): After a timer runs, ensure that the
 -      selected window's buffer is current.
 -
 -2008-11-30  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * makefile.w32-in ($(BLD)/abbrev.$(O)): Remove.
 -      It was accidentally restored by the Unicode merge.
 -
 -      * w32proc.c (Fw32_get_locale_info): Fix typo in docstring.
 -
 -2008-11-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32proc.c: Include "coding.h".
 -      (Fw32_short_file_name): Encode filename passed to Windows API.
 -      (Fw32_long_file_name): Encode filename passed to Windows API and
 -      decode back the result.  (Bug#1433)
 -
 -2008-11-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (CHAR_CHARSET_P): Check if the encoder is loaded or
 -      not before accessing it.
 -
 -      * charset.c (Fdefine_charset_internal): After calculating
 -      min_char, max_char, and fastmap, copy the charset structure again.
 -      (encode_char): Fix the previous change.
 -
 -2008-11-28  Seiji Zenitani  <zenitani@mac.com>
 -
 -      * frame.c (x_set_alpha) [NS_IMPL_COCOA]: Call x_set_frame_alpha.
 -
 -      * nsfns.m (ns_frame_parm_handlers): Set alpha handler.
 -
 -      * nsterm.m (x_set_frame_alpha): New function.
 -
 -2008-11-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xfaces.c (Fx_font_family_list, syms_of_xfaces): Fix last change.
 -
 -2008-11-27  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32font.c (add_font_entity_to_list): Pass the right LOGFONT
 -      pointer to check_face_name.
 -
 -2008-11-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * category.h (SET_CATEGORY_SET): Call set_category_set.
 -      (set_category_set): Extern it.
 -
 -      * category.c (hash_get_category_set): New function.
 -      (Fmodify_category_entry): Adjusted for the change of
 -      char_table_ref_and_range.  Call hash_get_category_set to get a
 -      category set to store in the table.
 -
 -      * character.h (MAYBE_UNIFY_CHAR): Call maybe_unify_char instead of
 -      Funify_charset.
 -
 -      * charset.h (enum charset_method): Delete CHARSET_METHOD_MAP_DEFERRED.
 -      (DECODE_CHAR): Check if the decoder vector is ready.
 -      (ENCODE_CHAR): Check if the encoder char-table is ready.
 -      (maybe_unify_char): Extern it.
 -
 -      * charset.c (Vchar_unified_charset_table): Delete it.
 -      (inhibit_load_charset_map): New variable.
 -      (temp_charset_work): New variable.
 -      (SET_TEMP_CHARSET_WORK_ENCODER, GET_TEMP_CHARSET_WORK_ENCODER)
 -      (SET_TEMP_CHARSET_WORK_DECODER, GET_TEMP_CHARSET_WORK_DECODER):
 -      New macros.
 -      (load_charset_map): Meaning of control_flag changed.  If
 -      inhibit_load_charset_map is nonzero, setup a table in
 -      temp_charset_work.
 -      (load_charset): New argument control_flag.
 -      (map_charset_for_dump): New function.
 -      (map_charset_chars): If inhibit_load_charset_map is nonzero, use
 -      map_charset_for_dump.
 -      (Fdefine_charset_internal): If the charset method is MAP, load
 -      mapping tables by calling load_charset.
 -      (Funify_charset): Don't load a mapping table but directly set
 -      Vchar_unify_table.
 -      (maybe_unify_char): New function.
 -      (decode_char): Don't handle the deleted method MAP_DEFERRED.
 -      Handle the case of inhibit_load_charset_map being nonzero.
 -      (encode_char): Don't handle the deleted method MAP_DEFERRED.
 -      Handle the case of inhibit_load_charset_map being nonzero.
 -      (Fclear_charset_maps): Just free temp_charset_work.
 -      (syms_of_charset): Make `inhibit-load-charset-map' a Lisp
 -      variable.
 -
 -      * chartab.c (sub_char_table_ref_and_range): Adjusted for the
 -      change of char_table_ref_and_range.
 -      (char_table_ref_and_range): Change the meaning of argument FROM
 -      and TO.  Now the caller must provide initial values for *FROM
 -      and *TO.
 -
 -      * fontset.c (fontset_add): Adjusted for the change of
 -      char_table_ref_and_range.
 -      (fontset_get_font_group): Likewise.
 -      (Ffontset_info): Likewise.
 -
 -      * keymap.c (describe_vector): Adjusted for the change of
 -      char_table_ref_and_range.  For char-table, put boundary between
 -      non-ASCII and 8-bit characters.
 -
 -      * print.c (print_object): For bool-vector, delete unnecessary
 -      check of ASCII_BYTE_P.
 -
 -2008-11-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open_internal): Don't include external
 -      leading in font height.  (Bug#879)
 -
 -2008-11-26  Glenn Morris  <rgm@gnu.org>
 -
 -      * xfaces.c (Fx_font_family_list): Replace lisp/term/pc-win.el
 -      redefinition with ifdef.  (Bug#1383)
 -
 -2008-11-24  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_get_color): Handle long hex strings (fixes bug #1044).
 -
 -2008-11-24  Wolfgang Lux  <wolfgang.lux@gmail.com>  (tiny change)
 -
 -      * nsterm.m (-otherMouseDown:, -otherMouseUp:, -otherMouseDragged):
 -      New EmacsView methods.
 -      (EV_UDMODIFIERS, EV_BUTTON): Add OtherMouse constants.
 -      Fixes bug #1048,1357,1414.
 -
 -2008-11-24  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      Fix bug #1362.
 -      * image.c (x_clear_image_1): Do not free background under HAVE_NS, it
 -      is not an indexed color.
 -      * nsterm.m (free_indexed_color): Add argument checking.
 -      * nsfns.m: Move config.h to before system includes (advised by Dan N.).
 -
 -2008-11-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * minibuf.c (Fcompleting_read, Vminibuffer_completion_confirm):
 -      Document confirm-after-completion value for
 -      minibuffer-completion-confirm.
 -
 -2008-11-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (check_face_name): Use xstrcasecmp.  Avoid compiler
 -      warning.
 -
 -2008-11-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_encode_char): Ensure context is
 -      restored before returning.
 -
 -      * w32font.c (check_face_name): New function.
 -      (add_font_entity_to_list): Use it to filter out common substituted
 -      fonts.  (Bug#642)
 -
 -2008-11-22  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * buffer.c (Fswitch_to_buffer): Reword and mention new option
 -      confirm-nonexistent-file-or-buffer in doc-string.
 -
 -2008-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fbuffer_swap_text): Remove redundant marker manipulation.
 -      Fix copy/paste typo.  Add checks.
 -
 -2008-11-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_iso_2022): Reject invalid composition
 -      sequence.
 -      (DECODE_COMPOSITION_START): If the current source is the last
 -      block, and the current composition doesn't end, regard this
 -      sequence as invalid.
 -      (decode_coding_iso_2022): Handle invalid composition sequence.
 -
 -2008-11-20  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (coordinates_in_window): Don't return
 -      ON_VERTICAL_BORDER for the rightmost position of a mode/header
 -      line when the window is not the rightmost one.  (Bug#1372)
 -
 -2008-11-16  Ben North  <ben@redfrontdoor.org>  (tiny change)
 -
 -      * buffer.c (syms_of_buffer): Fix doc-string of cursor-type.
 -
 -2008-11-15  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (run_msdos_command): Don't call dos_ttcooked, dos_ttraw,
 -      and bright_bg if noninteractive is non-zero.
 -
 -2008-11-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xterm.c (x_draw_glyph_string): For stretch glyphs, don't call
 -      x_draw_glyph_string_background.
 -
 -      * w32term.c (x_draw_glyph_string): Likewise.
 -
 -2008-11-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_draw_glyph_string): Stop drawing the background of
 -      the next glyph string once past the overhang width.
 -
 -      * nsterm.m (ns_draw_glyph_string): Likewise.
 -
 -      * w32term.c (x_draw_glyph_string): Likewise.
 -
 -2008-11-14  Fabrice Popineau  <fabrice.popineau@supelec.fr>  (tiny change)
 -
 -      * fileio.c (Finsert_file_contents): Decrement specpdl_ptr to avoid
 -      double file close.
 -
 -2008-11-14  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (window_loop): In DELETE_BUFFER_WINDOWS case, reset
 -      dedicated status of window before attempting to display another
 -      buffer in it.
 -
 -2008-11-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * msdos.c (Fmsdos_long_file_names):
 -      (syms_of_msdos) <dos-unsupported-char-glyph>:
 -      * dosfns.c (Fint86): Fix typos in docstrings.
 -
 -2008-11-14  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in (OBJ1, WIN32OBJ): Fix whitespace.
 -
 -2008-11-14  Katsumi Yamaoka  <yamaoka@jpl.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1260000.
 -
 -2008-11-12  Michal Nazarewicz  <mina86@tlen.pl>  (tiny change)
 -
 -      * frame.c (x_set_alpha): Set alpha to -1 if nil given.
 -
 -      * frame.h: Negative alpha means "don't touch".
 -
 -      * w32term.c (x_set_frame_alpha): Do nothing if alpha is negative.
 -
 -      * xterm.c (x_set_frame_alpha): Do nothing if alpha is negative.
 -
 -2008-11-12  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * hftctl.c:
 -      * chpdef.h:
 -      * acldef.h: Remove files used only for systems no longer supported.
 -
 -      * Makefile.in: Fix .o alphabetical ordering.
 -      (hftctl.o): Remove dependency, file removed.
 -      (keymap.o, print.o): Depend on charset.h.
 -
 -2008-11-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (Fget_byte): Fix and make it faster for unibyte target.
 -
 -2008-11-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dired.c (file_name_completion): If completion_ignore_case is
 -      enabled, ignore case when checking completion-regexp-list.
 -
 -2008-11-08  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * vm-limit.c (get_lim_data): Fix last change.
 -
 -2008-11-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (Fget_byte): New function.
 -      (syms_of_character): Defsubr Fget_byte.
 -
 -2008-11-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (try_window_reusing_current_matrix): Ensure that window
 -      cursor position is valid after scrolling.
 -
 -2008-11-06  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fns.c (Frandom): Rename arg N to LIMIT to match the docs; doc fix.
 -
 -2008-11-06  Glenn Morris  <rgm@gnu.org>
 -
 -      * xterm.c (handle_one_xevent): Don't let popup menus cause
 -      mouse-autoselect-window related window switching.  (Bug#1261)
 -
 -2008-11-04  David Smith  <davidsmith@acm.org>  (tiny change)
 -
 -      * xterm.c (xim_close_dpy): Avoid double-free on X11R6 XIM.
 -
 -2008-11-04  Andreas Schwab  <schwab@suse.de>
 -
 -      * xfns.c (Fx_wm_set_size_hint): Add missing return value.
 -
 -2008-11-03  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (Fx_wm_set_size_hint): New function.
 -
 -2008-11-03  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * textprop.c (Fprevious_single_char_property_change): Return 0
 -      when there's no change in a string.  (Bug#1301)
 -
 -2008-11-02  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (do_switch_frame): New argument NORECORD passed to
 -      Fselect_window.
 -      (Fselect_frame): New argument NORECORD passed to
 -      do_switch_frame.
 -      (Fset_frame_selected_window): New argument NORECORD passed to
 -      Fselect_frame.
 -      (Fhandle_switch_frame, Fdelete_frame): Handle NORECORD argument
 -      in call of do_switch_frame.
 -      (Fset_mouse_position, Fset_mouse_pixel_position, Fraise_frame):
 -      Handle NORECORD argument in call of Fselect_frame.
 -      * lisp.h (do_switch_frame, Fselect_frame)
 -      (Fset_frame_selected_window): Adjust declarations.
 -      * window.c (select_frame_norecord): New function.
 -      (run_window_configuration_change_hook): Use it and call
 -      Fselect_frame with NORECORD set.
 -      (Fselect_window): Pass NORECORD to Fselect_frame.
 -      (Fset_window_configuration): Handle NORECORD argument in call of
 -      do_switch_frame.
 -      * minibuf.c (choose_minibuf_frame): Handle NORECORD in call of
 -      Fset_frame_selected_window.
 -      * keyboard.c (command_loop_1): Handle NORECORD in call of
 -      Fselect_frame (currently ifdefd).
 -
 -2008-11-02  Ulrich Mueller  <ulm@kph.uni-mainz.de>
 -
 -      * emacs.c (USAGE2): Untabify.
 -
 -2008-11-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * composite.c (fill_gstring_header): Fix copy/paste typo.
 -
 -2008-10-31  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fnext_window, Fprevious_window): Rewrite doc-string.
 -      (Fother_window): Rename argument and rewrite doc-string.
 -      (select_window_norecord): Fix return value.  (Bug#1276)
 -
 -2008-10-30  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (x_create_tip_frame): Prevent default foreground color for
 -      new frames overriding foreground for tooltips.  Based on similar patch
 -      from Martin Rudalics <rudalics@gmx.at>.  (Bug#1032)
 -
 -2008-10-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * emacs.c (Fdaemon_initialized): Initialize nfd.
 -
 -2008-10-29  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fwindow_height, Fdelete_window, set_window_buffer)
 -      (Fwindow_text_height): Clarify doc-strings.
 -      * xdisp.c (syms_of_xdisp): Mention set-window-buffer in
 -      doc-string of window-scroll-functions.
 -
 -2008-10-28  Reiner Steib  <Reiner.Steib@gmx.de>
 -
 -      * category.c (syms_of_category): Fix typo in docstring.
 -
 -2008-10-28  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fwindowp, Fwindow_live_p, Fwindow_minibuffer_p)
 -      (Fcoordinates_in_window_p, Fscroll_left, Fscroll_right):
 -      Fix typos in docstrings.
 -
 -2008-10-28  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * emacs.c (daemon_pipe): Make non-static.
 -      (IS_DAEMON): Move definition ...
 -      * lisp.h (IS_DAEMON): ... here.
 -      (daemon_pipe): Declare.
 -      (is_daemon): Remove.
 -      * dispnew.c (init_display): Use IS_DAEMON.
 -
 -2008-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
 -      (message2_nolog): Check FRAME_INITIAL_P instead of noninteractively.
 -
 -      * emacs.c (is_daemon): Remove.
 -      (main): Don't set is_daemon.
 -      (IS_DAEMON): New macro.
 -      (Fdaemonp, Fdaemon_initialized): Use it.
 -      (Fdaemon_initialized): Write a char into the pipe to make sure the
 -      parent exits.
 -      (syms_of_emacs): Explicitly initialize daemon_pipe[1].
 -
 -2008-10-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.m (ns_draw_window_cursor): When hbar cursor is on
 -      over-sized glyph, draw it with the default glyph width.
 -
 -      * w32term.c (x_draw_bar_cursor): When hbar cursor is on over-sized
 -      glyph, draw it with the default glyph width.
 -
 -      * xterm.c (x_draw_bar_cursor): When hbar cursor is on over-sized
 -      glyph, draw it with the default glyph width.
 -
 -      * xdisp.c (try_scrolling): When computing the distance from the
 -      scroll margin to PT, try moving some distance past the window
 -      bottom before giving up.
 -
 -2008-10-27  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fwindow_dedicated_p, Fset_window_dedicated_p)
 -      (Fset_window_buffer): Explain in doc-string that a window can be
 -      "strongly" dedicated to its buffer.
 -
 -2008-10-27  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * emacs.c (daemon_name): New variable.
 -      (main): Deal with --daemon=SERVER_NAME.
 -      (Fdaemonp): Return a name if one was passed to --daemon.
 -
 -2008-10-26  Romain Francoise  <romain@orebokech.com>
 -
 -      * emacs.c (daemon_pipe): New variable.
 -      (main): Create a pipe before forking, make the parent exit only after
 -      the child has closed its end of the pipe.  Move closing the
 -      descriptors ...
 -      (Fdaemon_initialized): ... here.  New function.
 -
 -2008-10-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * chartab.c (Foptimize_char_table): Make sure `ascii' doesn't point to
 -      the previous unoptimized table.
 -
 -      * window.c (Fset_window_buffer): Undo 2008-10-18 change to re-instate
 -      the distinction between non-nil and non-t value of `dedicated'.
 -
 -2008-10-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_char_minibuf_menu_prompt): Ensure that
 -      read_char_minibuf_menu_text is large enough to hold the menu string.
 -
 -2008-10-25  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fget_buffer_window, Fdelete_windows_on)
 -      (Freplace_buffer_in_windows): Make buffer argument optional and
 -      rename to buffer_or_name.
 -
 -2008-10-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (handle_single_display_spec, handle_display_prop):
 -      Undo 2005-05-16 change.
 -      (handle_stop): Pop iterator if it's loaded with an empty string.
 -      (get_overlay_strings_1): Don't save iterator if it's loaded with
 -      an empty string (bug#1201).
 -
 -2008-10-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_otf_features): Fix previous change.
 -      (ftfont_otf_capability): Check FeatureList.FeatureCount before
 -      calling ftfont_otf_features.
 -
 -2008-10-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_match_p): Fix for the case that a vector of
 -      characters is in script-representative-chars.
 -
 -2008-10-24  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_in_read_queued_messages): New variable.
 -      (XD_SIGNAL1, XD_SIGNAL2, XD_SIGNAL3): New macros.  Throw Qdbus_error.
 -      (xd_read_queued_messages): Catch Qdbus_error from the macros.
 -      (all): Replace xsignal1, xsignal2, xsignal3 by the respective
 -      macro.  (Bug#1186)
 -
 -2008-10-23  Ali Bahrami  <ali_gnu@emvision.com>  (tiny change)
 -
 -      * s/sol2-10.h: New file.
 -
 -2008-10-23  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xdisp.c (fill_glyph_string): Fix typo in source (though the
 -      poor beast has survived 9+ years and the jump from xterm.c!).
 -
 -2008-10-23  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * buffer.c (Fget_buffer_create): Rename arg to buffer_or_name.
 -      Reword doc-string.
 -      (Fbury_buffer): In doc-string say what happens to the buffer's window.
 -
 -2008-10-23  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * character.c (syms_of_character) <script-representative-chars>:
 -      <unicode-category-table>: Doc fixes.
 -
 -2008-10-23  Noah Friedman  <friedman@splode.com>
 -
 -      * coding.c (make_conversion_work_buffer): Check that
 -      Vcode_conversion_reused_workbuf is a live buffer, otherwise call
 -      Fget_buffer_create.
 -
 -2008-10-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_add_log): Check the values of extra properties.
 -
 -2008-10-22  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fwindow_dedicated_p, Fset_window_dedicated_p):
 -      Reword doc-string.
 -      (Fset_window_parameter): Use NILP.
 -      (Fscroll_up, Fscroll_down, Fminibuffer_selected_window)
 -      (Frecenter): Use "selected" instead of "current" window in doc-strings.
 -
 -2008-10-22  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xdisp.c (next_element_from_buffer): Remove bogus xassert condition.
 -
 -2008-10-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (ns_appkit_version): New function.
 -      (x-server-version): Use it.
 -      (syms_of_nsfns): Define ns-version-string here, not nsterm.m.
 -      (x-server-vendor): Don't check_ns().
 -
 -      * nsterm.m (syms_of_nsterm): Drop ns-version-string.
 -
 -2008-10-22  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
 -      Copied from 2005-02-03 change to xfns.c by Kim F. Storm.
 -
 -2008-10-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (scan_words): Call word_boundary_p instead of comparing
 -      scripts.
 -
 -      * category.c (word_boundary_p): Check scripts instead of charset.
 -      Handle nil value in word-separating-categories and
 -      word-combining-categories.
 -      (syms_of_category): Fix docstrings of word-separating-categories
 -      and word-combining-categories.
 -
 -2008-10-21  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (Fencode_coding_region, Fdecode_coding_region)
 -      (Fdecode_coding_string, Fencode_coding_string): Doc fix.
 -
 -2008-10-21  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * buffer.c (Fget_buffer, Fbury_buffer, switch_to_buffer_1):
 -      Rename arg "buffer" to "buffer_or_name".
 -      (Fkill_buffer): Rename arg "buffer" to "buffer_or_name" and make
 -      it optional.
 -      (no_switch_window): Remove since the return value is not used.
 -      (Fswitch_to_buffer): Rename arg "buffer" to "buffer_or_name".
 -      Consider window as dedicated when Fwindow_dedicated_p returns a
 -      non-nil value.
 -      * lisp.h: Remove prototype for no_switch_window.
 -
 -2008-10-21  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * emacs.c (main): Unconditionally set PER_LINUX32 and exec
 -      temacs when dumping if HAVE_PERSONALITY_LINUX32 is defined.
 -
 -2008-10-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_charset): For iso-8859-* coding systems,
 -      check Vlatin_extra_code_table.
 -
 -2008-10-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fset_file_modes): Doc fix.
 -
 -2008-10-19  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (XD_OBJECT_TO_DBUS_TYPE): Handle simple type symbols
 -      in arrays.
 -
 -2008-10-19  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fwindow_dedicated_p, Fset_window_dedicated_p):
 -      Mention kill-buffer in doc-string.
 -      (Fset_window_buffer): Reinsert tem check removed in last commit.
 -      (Fenlarge_window, Fshrink_window): Have argument names and
 -      doc-string follow Elisp manual more closely.
 -
 -2008-10-18  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fset_file_modes): Doc fix.
 -
 -2008-10-18  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fwindow_width, Fset_window_start)
 -      (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter)
 -      (Fdelete_windows_on, Freplace_buffer_in_windows):
 -      Make doc-strings follow code and Elisp manual more closely.
 -      (Fwindow_dedicated_p): Make window argument optional.
 -      (Fset_window_dedicated_p): Rename argument "arg" to "flag".
 -      (Fset_window_buffer): Respect any non-nil dedicated value for
 -      window.  Rename "buffer" argument to "buffer_or_name".
 -
 -2008-10-18  Ulrich Mueller  <ulm@gentoo.org>
 -
 -      * m/sh3.h: New file, machine description for SuperH.
 -
 -2008-10-17  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fsplit_window): Rename arg horflag to horizontal.
 -
 -2008-10-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_otf_features): Fix indexing
 -      gsub_gpos->FeatureList.Feature.  Check the validity of indices.
 -
 -2008-10-16  Magnus Henoch  <mange@freemail.hu>
 -
 -      * dbusbind.c (Fdbus_call_method): Unbreak usage line.
 -      (Fdbus_call_method_asynchronously): Ditto.
 -      This change makes C-h f display the argument list.
 -
 -2008-10-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fileio.c (Fexpand_file_name): Doc fix.
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Make null values
 -      of :foreground and :background equivalent to unspecified (20.x
 -      compatibility).
 -
 -2008-10-15  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * buffer.c (syms_of_buffer): Doc fix.
 -
 -2008-10-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_clear_prop): When clearing font width, clear the
 -      average width field too.
 -
 -2008-10-12  Andreas Schwab  <schwab@suse.de>
 -
 -      * ftfont.c (ftfont_shape_by_flt): Make static.
 -      * ftfont.h (ftfont_shape_by_flt): Don't declare.
 -
 -      * font.c: Don't include <m17n-flt.h>.
 -
 -2008-10-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Decrease to 10000.
 -
 -2008-10-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.c (make_terminal_frame) [MSDOS]: Remove unused #ifdef'ed
 -      away code.
 -
 -2008-10-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispnew.c (update_text_area): Avoid looping due to large glyph
 -      overhangs (bug#1070).
 -
 -2008-10-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (face_for_char): If face->fontset is negative, just
 -      return ascii_face.
 -
 -      * font.c (font_delete_unmatched): Fix previous change.
 -      Don't reject an entity if DPI and AVGWIDTH of an entity are 0.
 -
 -2008-10-09  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (Fraise_frame): On text-only terminals select frame in
 -      order to make it visible.  (Bug#1061)
 -
 -2008-10-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fontset.c (fontset_find_font): Check frame validity.
 -
 -2008-10-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * gtkutil.c (xg_display_open): Reset default display if none exists.
 -      (xg_display_close): Allow Emacs to close all displays (bug#985).
 -
 -2008-10-06  Andreas Schwab  <schwab@suse.de>
 -
 -      * sysdep.c (sys_signal): Always set SA_RESTART when noninteractively.
 -
 -2008-10-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * emacs.c (Vbefore_init_time, Vafter_init_time): Move from startup.el.
 -
 -      * lisp.h (Vbefore_init_time, Vafter_init_time): Declare.
 -
 -      * gtkutil.c (x_wm_set_size_hint): Return immediately if called
 -      during initialization.
 -
 -2008-10-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xdisp.c (redisplay_internal): If frame switched, redisplay the
 -      whole thing on MSDOS frames as well as on a TTY.
 -
 -      * dispnew.c (update_frame): Flush termscript for MSDOS frames as
 -      well as for TTY.
 -      (Fopen_termscript): Allow opening a termscript on MSDOS frames as
 -      well as on a TTY.
 -
 -      * sysdep.c (init_sys_modes): Set FRAME_GARBAGED_P for MSDOS frames
 -      as well as for TTY.
 -
 -      * systime.h (EMACS_TIME_CMP): Cast EMACS_SECS values to `long'.
 -
 -      * dispnew.c (change_frame_size_1): Set FrameRows and FrameCols for
 -      MSDOS frames as well.
 -
 -2008-10-02  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * image.c (x_clear_image_1): Under NS, call ns_free_indexed_color with
 -      correct arguments.
 -      * menu.c (find_and_return_menu_selection): Add cast.
 -
 -2008-10-03  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (USAGE1): Add --daemon.
 -
 -2008-10-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (procfs_system_process_attributes): Multiply `pcpu' by
 -      100, so it's in percents as advertised.
 -
 -2008-10-02  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.h (ns_cursor_types, ns_output.desired_cursor_color)
 -      (ns_output.current_cursor, ns_output.desired_cursor)
 -      (ns_output.last_inactive, FRAME_CURSOR, FRAME_NEW_CURSOR)
 -      (FRAME_NEW_CURSOR_COLOR): Remove.
 -
 -      * nsfns.m (ns_set_cursor_color): Use FRAME_CURSOR_COLOR.
 -      (ns_lisp_to_cursor_type, ns_cursor_type_to_lisp): Use core Emacs
 -      enumeration (HOLLOW_BOX_CURSOR, etc.).
 -
 -      * nsterm.m (ns_frame_rehighlight): Remove commented code.
 -      (draw_window_cursor): Simplify code.
 -      (EmacsView-windowDidBecomeKey:,-windowDidResignKey:):
 -      Don't change cursor type.  In latter, call rehighlight instead of doing
 -      updates manually.
 -      (EmacsPrefsController-setPanelFromValues,-setValuesFromPanel):
 -      Use core Emacs cursor types.
 -
 -      * xdisp.c (draw_glyphs): Don't call notice_overwritten_cursor under NS.
 -
 -2008-10-02  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * process.c (Faccept_process_output): Fix doc-string.
 -
 -2008-10-02  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * gmalloc.c (__sbrk): Also define for uClibc.
 -
 -      * s/gnu-linux.h (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Add definition
 -      for uClibc.
 -
 -2008-10-01  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (nsfont_spec_to_traits): Use UnXX masks only for non-normal
 -      styles.
 -      (nsfont_open): Reenable the cache.
 -
 -2008-10-01  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * font.c (font_matching_entity): Reflect ATTRS in font selection.
 -      (font_find_for_lface) [HAVE_NS]: Don't ignore case.
 -
 -2008-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dispnew.c (Fsend_string_to_terminal): Don't try to send a string to
 -      a suspended terminal.
 -
 -2008-09-30  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_signature): Use strcat instead of sprintf.
 -
 -2008-09-30  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (MSDOS_SUPPORT): Remove ccl.elc and codepage.elc.
 -
 -2008-09-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (move_it_to): Don't advance the iterator if the last tab
 -      in a continued line coincides with a line beginning.
 -
 -2008-09-29  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (nsfont_trait_distance): Fix bug.
 -      (nsfont_list): Return a list rather than a vector (syncs with Handa
 -      changes of 2008-05-14).
 -      (nsfont_open): Improve logging.
 -
 -2008-09-29  Andreas Schwab  <schwab@suse.de>
 -
 -      * keyboard.c (syms_of_keyboard) <input-decode-map>: Doc fix.
 -
 -2008-09-28  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * character.c (Fchar_resolve_modifiers): Rewrite Elisp function
 -      name as char-resolve-modifiers.
 -      Reported by: Markus Triska <markus.triska@gmx.at>
 -
 -2008-09-28  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * dispnew.c (init_display): Return earlier when running as a daemon.
 -
 -2008-09-27  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfont.m (nsfont_draw): Fix up composition rendering (cmp_from, ...).
 -
 -2008-09-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * composite.c (Fcomposition_get_gstring)
 -      (Fcompose_region_internal, Fcompose_string_internal)
 -      (Ffind_composition_internal): Doc fix.
 -      (syms_of_composite) <compose-chars-after-function>: Doc fix.
 -      (syms_of_composite) <auto-composition-function>: Doc fix.
 -      (syms_of_composite) <composition-function-table>: Doc fix.
 -
 -2008-09-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * search.c (wordify): New argument for lax word-ends.
 -      (Fword_search_forward_lax, Fword_search_backward_lax): New funs.
 -
 -2008-09-24  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * lisp.h (is_daemon): Declare.
 -      * dispnew.c (init_display): Do not try to initialize the terminal
 -      when running as a daemon.
 -
 -2008-09-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsfns.m (compute_tip_xy): Use x_display_pixel_width and
 -      x_display_pixel_height.
 -
 -2008-09-22  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * undo.c (record_point): Don't call Fundo_boundary for first
 -      change.  (Bug#731)
 -
 -2008-09-22  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * emacs.c (Fdaemonp): Doc fix.
 -
 -2008-09-22  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * emacs.c (main): Place #ifdef in the proper place.
 -
 -2008-09-21  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * emacs.c (standard_args): Add --daemon.
 -      (main): Disconnect from the terminal when --daemon is passed.
 -      (is_daemon): New variable.
 -      (Fdaemonp): New function.
 -      (syms_of_emacs): Defsubr it.
 -
 -2008-09-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (get_next_display_element): Handle string display
 -      correctly when checking for the end of a box run.
 -
 -2008-09-20  Glenn Morris  <rgm@gnu.org>
 -
 -      * fileio.c (Qdelete_by_moving_to_trash): New Lisp_Object.
 -      (syms_of_fileio): Add Qdelete_by_moving_to_trash.
 -      (Frename_file): Avoid copying to trash if a rename involves
 -      a delete.  (Bug#964).
 -
 -2008-09-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * keyboard.c (Fset_quit_char, Fset_input_meta_mode)
 -      (Fset_output_flow_control, Fcurrent_input_mode): Support MSDOS
 -      frames as well as termcap frames.
 -      (handle_interrupt): Remove "#ifndef MSDOS" around the call to
 -      get_named_tty.
 -
 -2008-09-19  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (procfs_system_process_attributes): Fix cmdline in
 -      case /proc/PID/cmdline is empty.
 -
 -      * xterm.c (x_wm_set_size_hint): Use x_display_pixel_width and
 -      x_display_pixel_height.
 -
 -2008-09-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * frame.c (x_fullscreen_adjust): Declare var as Display_Info.
 -
 -      * w32fns.c (Fx_display_pixel_width, Fx_display_pixel_height)
 -      (compute_tip_xy): Use x_display_pixel_width, x_display_pixel_height.
 -
 -2008-09-19  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * dispextern.h (struct it): Move line_wrap away from the middle of
 -      bitfields.  Move voffset in struct iterator_stack_entry after the
 -      bitfields.  Move tab_width near after another short.
 -
 -2008-09-18  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * frame.h (struct frame): Move alpha from the middle of bitfields.
 -
 -      * window.h (struct window): Move frozen_window_start_p after the
 -      rest of the bitfields to reduce padding.
 -
 -2008-09-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.h (x_display_info): Remove `height' and `width' members.
 -
 -      * nsterm.h (ns_display_info): Remove `height' and `width' members.
 -
 -      * w32term.h (w32_display_info): Remove `height', `width',
 -      `height_in', and `width_in' members.
 -
 -      * xterm.c (x_display_pixel_height, x_display_pixel_width):
 -      New functions.
 -      (x_calc_absolute_position): Use them.
 -      (x_term_init): Omit removed `height' and `width' members.
 -
 -      * w32term.c (x_display_pixel_height, x_display_pixel_width):
 -      New functions.
 -      (w32_read_socket, x_calc_absolute_position): Use them.
 -      (w32_initialize_display_info, w32_term_init): Omit removed members
 -      of w32_display_info.
 -
 -      * nsterm.m (x_display_pixel_height, x_display_pixel_width):
 -      New functions.
 -      (ns_initialize_display_info): Omit removed members of ns_display_info.
 -
 -      * xterm.c (x_display_pixel_height, x_display_pixel_width):
 -      New functions.
 -      (x_calc_absolute_position): Use them.
 -      (x_term_init): Omit removed `height' and `width' members.
 -
 -      * xfns.c (Fx_display_pixel_width, Fx_display_pixel_height)
 -      (compute_tip_xy):
 -      * frame.c (x_fullscreen_adjust):
 -      * xmenu.c (menu_position_func): Use x_display_pixel_height and
 -      x_display_pixel_width.
 -
 -2008-09-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (fill_gstring_header): Don't check FROM and TO here.
 -      (composition_compute_stop_pos): Fix handling of static composition.
 -      (Fcomposition_get_gstring): Check FROM and TO at first.
 -
 -2008-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * composite.c (Fcomposition_get_gstring): Yet another int/Lisp_Object
 -      mixup (YAILOM).
 -
 -2008-09-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Use position reported by iterator
 -      instead of PT for determining screen motion (bug#943).
 -
 -2008-09-17  Romain Francoise  <romain@orebokech.com>
 -
 -      * composite.c (composition_adjust_point): Fix int/EMACS_INT mixup.
 -
 -2008-09-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_shape_by_flt): Downcase family name.
 -
 -      * composite.c (Fcomposition_get_gstring): Make bigger gstring_work
 -      if necessary.
 -
 -2008-09-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (make_conversion_work_buffer): Avoid calling
 -      Fget_buffer_create if it is not necessary.
 -
 -2008-09-15  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (Fselect_window): Don't update window_select_count and
 -      use_time when norecord is not nil.
 -
 -2008-09-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): Delete incorrect decrement of
 -      specpdl_ptr.
 -
 -2008-09-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * indent.c (scan_for_column): Don't handle automatic composition
 -      if the current buffer is not associated with a window.
 -
 -      * composite.c (composition_reseat_it): If the current buffer is
 -      not associated with a window, ignore the automatic composition.
 -      (find_automatic_composition): Likewise.
 -
 -2008-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * term.c (close_gpm): New fun extracted from Fgpm_mouse_stop.
 -      (Fgpm_mouse_stop): Use it.
 -      * termhooks.h (close_gpm): Declare.
 -      * keyboard.c (tty_read_avail_input): Forcefully close the gpm
 -      connection if Gpm_GetEvent fails.
 -
 -      * window.c (set_window_buffer): Always preserve current-buffer.
 -
 -2008-09-12  Glenn Morris  <rgm@gnu.org>
 -
 -      * charset.c (init_charset): Warn if etc/charsets not found.  (Bug#909)
 -
 -2008-09-11  Glenn Morris  <rgm@gnu.org>
 -
 -      * charset.c (charset-map-path): Doc fix.
 -
 -2008-09-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_composition_prop): Set it->cmp_it.ch to -1.
 -
 -      * font.c (Ffont_shape_gstring): Make glyphs of non-nil adjustment
 -      compose a grapheme cluster with the preceding base glyph.
 -
 -      * composite.c (composition_compute_stop_pos): Fix previous change.
 -      Reset cmp_it->id to -1 at first.
 -
 -2008-09-10  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (character.o, chartab.o): Fix config.h typo.
 -
 -2008-09-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_key_sequence): Reapply translation maps when
 -      switching keyboards.
 -
 -2008-09-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_shape_by_flt): Use "combining" FLT for ASCII
 -      characters.
 -
 -      * composite.c (FORWARD_CHAR): Fix calculation
 -      of (POSITION).pos_byte.
 -      (composition_compute_stop_pos): Limit the search of composition to
 -      at most 500 characters ahead.  If we reach the limit or find a
 -      newline, set cmp_it->ch to -2 and return 0.
 -      (composition_reseat_it): Handle the case that cmp_it->ch is -2.
 -
 -2008-09-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * indent.c (Fvertical_motion): Be sure to set
 -      it_overshoot_expected if it.cmp_it.id is non-negative.
 -
 -2008-09-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * callproc.c (Fcall_process): Don't hold references to string data
 -      across garbage collection.  Move initialisation of new_argv down
 -      to avoid compiler bug.
 -
 -2008-09-07  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
 -
 -      * process.c (Fsystem_process_attributes): Doc fix.
 -
 -2008-09-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * callproc.c (Fcall_process): Canonicalize current directory name.
 -
 -      * xdisp.c (move_it_to): When moving by vpos, ensure that the
 -      iterator advances to the next line if the current line ends in a
 -      continued tab.
 -
 -2008-09-07  Teodor Zlatanov  <tzz@lifelogs.com>
 -
 -      * nsfont.m (nsfont_draw): Fix the references to missing gidx data
 -      member to point to cmp_from.
 -
 -      * xdisp.c: Doc fix for references to gidx data member.
 -
 -2008-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fbuffer_swap_text): Reset window->point markers.
 -
 -2008-09-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (FORWARD_CHAR): Check STOP after
 -      incrementing (POSITION).pos.
 -
 -2008-09-06  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
 -
 -      * process.c (Fsystem_process_attributes): Doc fix.
 -
 -2008-09-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (Ftop_level): Doc fix.
 -
 -2008-09-06  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xmenu.c (xmenu_show) [!HAVE_X_WINDOWS]: If frame has a
 -      minibuffer, don't let lower part of menu invade the echo area.
 -
 -      * msdos.c (IT_menu_display): Use STRING_CHAR_ADVANCE instead of a
 -      "char *q" to access menu text and advance through it.  Revert the
 -      change that displayed ">" instead of ASCII character 0x10.
 -
 -2008-09-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * menu.c (single_menu_item) [!HAVE_BOXES]: Enable emulation of
 -      toggle boxes and radio buttons on MS-DOS as well.
 -
 -2008-09-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (autocmp_chars): Check lookback count.
 -      (composition_compute_stop_pos): Set cmp_it->lookback.
 -      (composition_reseat_it): Check lookback count.
 -      (struct position_record): New struct.
 -      (FORWARD_CHAR, BACKWARD_CHAR, CHAR_COMPOSABLE_P): New macros.
 -      (find_automatic_composition): New function.
 -      (composition_adjust_point): Use find_automatic_composition.
 -
 -      * dispextern.h (struct composition_it): New member lookback.
 -
 -2008-09-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Don't call move_it_by_lines again
 -      if moving by a single line.
 -
 -2008-09-02  Andreas Schwab  <schwab@suse.de>
 -
 -      * xterm.c (x_delete_display): Fix merge error.
 -
 -      * fileio.c (Fexpand_file_name): Remove unused variables.
 -
 -2008-09-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fexpand_file_name): Copy argument `name' into local
 -      storage on all platforms, not just on DOS_NT.
 -
 -2008-09-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (Fx_popup_menu, Fx_popup_dialog, w32_menu_show):
 -      Ensure mouse is not grabbed after menu is finished.
 -
 -2008-09-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (Finternal_set_alternative_font_family_alist)
 -      (Finternal_set_alternative_font_registry_alist): Properly copy
 -      entire alist structure.
 -
 -2008-09-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_spec_pattern): Don't create a charset if the
 -      representative chars of the script is a vector.
 -      (ftfont_list): Handle the case where the representative chars of
 -      the script is a vector.
 -
 -      * character.c (syms_of_character): Docstring of
 -      script-representative-chars fixed.
 -
 -2008-08-31  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (BUILD_CHAR_GLYPH): New macro.
 -      (IT_menu_display): Use it instead of SET_CHAR_GLYPH to construct
 -      the menu.  Allocate larger buffer for `text', to account for
 -      possible ^C characters.
 -
 -2008-08-31  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * xdisp.c (prepare_menu_bars): Don't call
 -      Vwindow_size_change_functions with arg Qt.
 -
 -2008-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * font.h (font_range):
 -      * fileio.c (report_file_error):
 -      * composite.c (composition_update_it): Yet another int/Lisp_Object
 -      mixup (YAILOM).
 -
 -2008-08-30  Glenn Morris  <rgm@gnu.org>
 -
 -      * data.c (Fmake_variable_frame_local): Doc fix.
 -
 -      * frame.c (Fmodify_frame_parameters): Doc fix.
 -
 -2008-08-30  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (init_user_info): Allocate buf[] with xmalloc using the size
 -      needed by GetTokenInformation.
 -      (w32_system_process_attributes): Check return values of all system
 -      APIs.
 -
 -      * msdos.c (IT_display_cursor): Write "CURSOR ON/OFF" to termscript
 -      only when the state changes.
 -      (IT_update_begin, IT_update_end): Add termscript trace.
 -
 -      * w16select.c (Fw16_set_clipboard_data): Don't encode text if
 -      clipboard is unavailable.  Set dst to NULL if it doesn't point to
 -      malloc'ed data.
 -      (Fw16_get_clipboard_data): Initialize htext to NULL, to avoid
 -      passing random values to xfree.
 -
 -      * dispnew.c (init_display): Set `tty's association in frame's
 -      parameters alist to the name of the terminal device, if that is known.
 -
 -2008-08-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_check_otf): Don't fallback on DFLT script.
 -
 -2008-08-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * composite.c (fill_gstring_body): Avoid compiler warnings.
 -
 -      * font.c (font_fill_lglyph_metrics): Use EMACS_INT in
 -      LGLYPH_SET_CODE to avoid compiler warnings.
 -
 -      * makefile.w32-in ($(BLD)/w32uniscribe.$(O)): Depend on composite.h.
 -
 -      * composite.h (LGLYPH_SET_CODE): Cast `val' to EMACS_INT.
 -
 -      * w32uniscribe.c (uniscribe_shape): Shut up compiler warning in
 -      LGLYPH_SET_CODE.
 -
 -2008-08-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (report_file_error): Don't downcase the first character
 -      of errstring if it is still unibyte.
 -
 -2008-08-29  Kenichi Handa  <handa@m17n.org>
 -
 -      These changes are to re-implement the automatic composition so
 -      that it doesn't use text properties.
 -
 -      * Makefile.in (ftfont.o): Depend on composite.h.
 -      (composite.o): Depend dispextern.h, font.h, frame, and window.h.
 -
 -      * character.h (Vunicode_category_table): Extern it.
 -
 -      * character.c (Vunicode_category_table): New variable.
 -      (syms_of_character): DEFVAR_LISP Vunicode_category_table.
 -
 -      * chartab.c (optimize_sub_char_table): Perform more greedy
 -      optimization.
 -
 -      * composite.h (enum composition_method):
 -      Delete COMPOSITION_WITH_GLYPH_STRING.
 -      (COMPOSITION_METHOD): Don't check COMPOSITION_WITH_GLYPH_STRING.
 -      (Vcomposition_function_table): Extern it.
 -      (LGSTRING_XXX, LGLYPH_XXX): Macros moved from font.h.
 -      (composition_gstring_put_cache, composition_gstring_from_id)
 -      (composition_gstring_p, composition_gstring_width)
 -      (composition_compute_stop_pos, composition_reseat_it)
 -      (composition_update_it, composition_adjust_point): Extern them.
 -      (Fcomposition_get_gstring): EXFUN it.
 -
 -      * composite.c: Include window.h, frame.h, dispextern.h, font.h.
 -      (Vcomposition_function_table)
 -      (get_composition_id): Don't handle COMPOSITION_WITH_GLYPH_STRING.
 -      (gstring_hash_table, gstring_work, gstring_work_headers):
 -      New variables.
 -      (gstring_lookup_cache, composition_gstring_put_cache)
 -      (composition_gstring_from_id, composition_gstring_p)
 -      (composition_gstring_width, fill_gstring_header)
 -      (fill_gstring_body, autocmp_chars, composition_compute_stop_pos)
 -      (composition_reseat_it, composition_update_it)
 -      (composition_adjust_point, Fcomposition_get_gstring): New functions.
 -      (syms_of_composite): Initialize gstring_hash_table, gstrint_work,
 -      and gstring_work_headers.  DEFVAR_LISP composition-function-table.
 -      Defsubr composition_get_gstring.
 -
 -      * dispextern.h (struct glyph): New union u.cmp.  Delete the member
 -      cmp_id.
 -      (struct glyph_string): Delete the member gidx.  New members
 -      cmp_id, cmp_from, and cmp_to.
 -      (enum it_method): Delete GET_FROM_COMPOSITION.
 -      (struct composition_it): New struct.
 -      (struct it): New member cmp_it, and iterator_stack_entry.cmp_it.
 -      Delete c, len, cmp_id, cmp_len in u.comp.
 -
 -      * font.h (enum lgstring_indices): Delete it.
 -      (LGSTRING_XXX, LGLYPH_XXX): Move these macros to composite.h.
 -      (enum lglyph_indices): Likewise.
 -      (font_range): Adjust extern.
 -      (font_fill_lglyph_metrics): Extern it.
 -
 -      * font.c (QCf): New variable.
 -      (check_gstring): Use LGSTRING_GLYPH_LEN, not LGSTRING_LENGTH.
 -      (font_prepare_composition): Delete this function.
 -      (font_range): Type and arguments changed.
 -      (Ffont_make_gstring, Ffont_fill_gstring): Delete them.
 -      (font_fill_lglyph_metrics): New function.
 -      (Ffont_shape_text): Rename to Ffont_shape_gstring and change arguments.
 -      (syms_of_font): DEFSYM QCf.  Delete defsubr for
 -      Sfont_make_gstring, Sfont_fill_gstring, Sfont_shape_text.
 -      Defsubr Sfont_shape_gstring.
 -
 -      * fontset.h (font_for_char): Extern it.
 -
 -      * fontset.c (font_for_char): New function.
 -
 -      * ftfont.c: Include composite.h.
 -      (ftfont_resolve_generic_family): Add langset "en" to pattern.
 -      (ftfont_shape_by_flt): Use LGSTRING_GLYPH_LEN, not LGSTRING_LENGTH.
 -
 -      * indent.c: Include composite.h and dispextern.h.
 -      (check_composition): Delete this function.
 -      (scan_for_column): Handle composition by
 -      composition_compute_stop_pos, composition_reseat_it, and
 -      composition_update_it.
 -      (compute_motion): Likewise.
 -      (Fvertical_motion): Fix checking of composition.
 -
 -      * keyboard.c (adjust_point_for_property): Check composition by
 -      composition_adjust_point.
 -
 -      * nsterm.m (ns_draw_glyph_string): Adjust for the change of
 -      struct glyph_string.
 -
 -      * term.c (encode_terminal_code): Adjust for the change of struct glyph.
 -      (append_composite_glyph): Adjust for the change of struct it and
 -      struct glyph.
 -      (produce_composite_glyph): Likewise.
 -
 -      * w32term.c (x_draw_composite_glyph_string_foreground):
 -      Adjust for the change of struct glyph_string.
 -      (x_draw_glyph_string): Likewise.
 -
 -      * w32uniscribe.c (struct uniscribe_font_info): Include composite.h.
 -      (uniscribe_shape): Use LGSTRING_GLYPH_LEN, not LGSTRING_LENGTH.
 -
 -      * xdisp.c: Include font.h.
 -      (it_props): Delete the entry for Qauto_composed.
 -      (init_iterator): Initialize it->cmp_it.id to -1.
 -      (compute_stop_pos): Call composition_compute_stop_pos.
 -      (face_before_or_after_it_pos): Adjust for the change of struct it.
 -      (handle_auto_composed_prop): Delete it.
 -      (handle_composition_prop): Handle only static composition.
 -      (next_overlay_string): Remove it->method == GET_FROM_COMPOSITION
 -      from xassert.  Initialize it->cmp_it.stop_pos.
 -      (push_it): Adjust for the change of struct it.
 -      (pop_it): Likewise.
 -      (get_next_element): Delete next_element_from_composition.
 -      (CHAR_COMPOSED_P): New macro.
 -      (get_next_display_element): For automatic composition, get a face
 -      from the font in the glyph-string.
 -      (set_iterator_to_next): For GET_FROM_BUFFER and GET_FROM_STRING,
 -      check composition by it->cmp_it.id.  Delete GET_FROM_COMPOSITION case.
 -      (next_element_from_string): Check if the character at the current
 -      position is composed by CHAR_COMPOSED_P.
 -      (next_element_from_buffer): Likewise.
 -      (next_element_from_composition): Adjust for the change of struct it.
 -      Update it->cmp_it.
 -      (dump_glyph): Adjust for the change of struct glyph.
 -      (fill_composite_glyph_string): Adjust for the change of struct
 -      it and struct glyph.  Don't handle automatic composition here.
 -      (fill_gstring_glyph_string): New function.
 -      (x_get_glyph_overhangs): Handle automatic composition.
 -      (BUILD_COMPOSITE_GLYPH_STRING): Adjust for the change of struct glyph.
 -      (BUILD_GSTRING_GLYPH_STRING): New macro.
 -      (BUILD_GLYPH_STRINGS): Call BUILD_GSTRING_GLYPH_STRING for
 -      automatic composition.
 -      (append_composite_glyph): Adjust for the change of struct it and
 -      struct glyph.
 -      (x_produce_glyphs): Adjust for the change of struct it.
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Adjust for
 -      the change of struct glyph_string.
 -      (x_draw_glyph_string): Likewise.
 -
 -2008-08-29  Glenn Morris  <rgm@gnu.org>
 -
 -      * buffer.c (word-wrap): Doc fix.
 -      * xdisp.c (truncate-partial-width-windows): Doc fix.
 -      Increase default to 50.
 -
 -2008-08-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (update_tool_bar_unwind): New function.
 -      (update_tool_bar): Temporarily set selected frame before building
 -      tool-bar items.
 -
 -2008-08-28  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (XD_ERROR, XD_DEBUG_MESSAGE): Use strncpy and
 -      snprintf, respectively.
 -      (xd_append_arg): Convert strings with Fstring_make_unibyte.
 -
 -2008-08-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Makefile.in: Revert (undocumented) 2008-08-20 change adding
 -      LDFLAGS to GNUstep CC invocation.
 -
 -2008-08-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Revert last change.  Handle the
 -      general case where we are moving forward, and PT spans multiple
 -      screen lines.
 -
 -      * eval.c (find_handler_clause): Temporarily increase
 -      max-lisp-eval-depth while printing the backtrace buffer, to
 -      guarantee that help-mode code can run.
 -
 -2008-08-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (Fmsdos_remember_default_colors): Don't reverse frame
 -      colors under -rv.
 -      (IT_set_frame_parameters): Don't swap foreground and background
 -      colors if `(reverse . t)' is present in the frame properties.
 -      (internal_terminal_init): Call init_frame_faces only for the
 -      initial frame.
 -
 -2008-08-27  Andreas Schwab  <schwab@suse.de>
 -
 -      * dired.c (Ffile_attributes): Avoid compiler warning in bitshift.
 -
 -2008-08-27  Andreas Schwab  <schwab@suse.de>
 -
 -      * search.c (search_buffer): Set char_base to zero only at the end.
 -
 -2008-08-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (report_file_error): Fix handling of multibyte error string.
 -
 -2008-08-27  Andreas Seltenreich  <seltenreich@gmx.de>
 -
 -      * xterm.c (x_term_init): Temporarily hide the partially
 -      initialized terminal while calling vendor-specific-keysyms.
 -
 -2008-08-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (internal_terminal_init): Most initializations done only
 -      once, especially initial_screen_colors[] and termscript open.
 -
 -2008-08-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * eval.c (Fcondition_case): Doc fix.
 -
 -      * widgetprv.h (EmacsFramePart): Change font member to the new font
 -      struct.
 -
 -      * widget.c: Include character.h and font.h for XSETFONT.
 -      (setup_frame_gcs): Compute X font id from font struct, just once.
 -
 -2008-08-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * term.c (get_named_tty): Fix last change.
 -
 -2008-08-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): If moving forward starting from a
 -      multi-line string, move the iterator to the last line of that string.
 -
 -2008-08-25  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.c (do_switch_frame): Mark previously displayed frame as
 -      obscured for FRAME_MSDOS_P frames as well.
 -
 -2008-08-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.c (make_terminal_frame): Initialize f->terminal,
 -      f->terminal->reference_count, and scroll bars on MS-DOS as well.
 -      Set the top frame to newly created frame.
 -      (Fmake_terminal_frame): Reuse the_only_display_info.
 -
 -      * vm-limit.c (get_lim_data) [MSDOS]: Use alternative methods of
 -      estimating available memory.
 -
 -2008-08-23  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsterm.m (ns_draw_window_cursor): Don't call
 -      NSDisableScreenUpdates and NSEnableScreenUpdates on
 -      non-NS_IMPL_COCOA systems.
 -
 -2008-08-23  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.c (procfs_system_process_attributes): Fix use of
 -      uninitialized variables.
 -
 -2008-08-23  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (main) [MSDOS]: Call syms_of_xmenu.
 -
 -      * dispnew.c (init_display): Remove MS-DOS specific conditions for
 -      calling tty-set-up-initial-frame-faces.
 -
 -      * xmenu.c (Fx_popup_dialog, Fx_popup_menu, xmenu_show):
 -      Allow MSDOS frames along with X frames.
 -
 -      * termhooks.h (TERMINAL_ACTIVE_P): Handle output_msdos_raw in
 -      addition to output_termcap.
 -
 -      * xdisp.c (redisplay_internal) [MSDOS]: Don't call set_tty_color_mode.
 -
 -      * termchar.h (FRAME_TTY): Support output_msdos_raw.
 -      (struct tty_display_info) [MSDOS]: Add fields related to mouse
 -      highlight.
 -
 -      * process.c [!subprocesses]: Define QCname.
 -      (syms_of_process): Intern and staticpro it.
 -
 -      * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
 -      Adjust for changes in encoding/decoding routines.
 -      Use encode_coding_object and decode_coding_object instead of
 -      encode_coding and decode_coding.
 -
 -      * sysdep.c (init_sys_modes): Call dos_ttraw with tty_out as argument.
 -
 -      * dosfns.c: Include frame.h before termhooks.h.
 -      (dos_cleanup): Use CURTTY ()->termscript instead of a global
 -      variable termscript.
 -
 -      * s/msdos.h (USER_FULL_NAME): Define.
 -      (SYSTEM_PURESIZE_EXTRA): Bump up to 100K.
 -
 -      * editfns.c (USER_FULL_NAME): Define to pw->pw_gecos if undefined.
 -      (Fuser_full_name): Use USER_FULL_NAME instead of a literal
 -      pw->pw_gecos.
 -
 -      * keyboard.c (handle_interrupt) [MSDOS]: Call cursor_to with
 -      SELECTED_FRAME as additional (1st) argument.
 -      (tty_read_avail_input): Handle output_msdos_raw in
 -      addition to output_termcap.
 -
 -      * msdos.c: Include frame.h before termhooks.h.
 -      (mouse_on, mouse_off, mouse_moveto, mouse_init)
 -      (msdos_set_cursor_shape, IT_set_face, IT_write_glyphs)
 -      (show_mouse_face, IT_clear_end_of_line, IT_clear_screen)
 -      (IT_clear_to_end, IT_cursor_to, IT_display_cursor, IT_cmgoto)
 -      (IT_set_terminal_modes, IT_reset_terminal_modes)
 -      (IT_set_frame_parameters): Use tty->termscript instead of a global
 -      variable termscript.
 -      (IT_write_glyphs): Use tty->terminal->terminal_coding instead of a
 -      global variable terminal_coding.  Don't refer to
 -      Vnonascii_translation_table.
 -      (internal_terminal_init): Set Vwindow_system in current_kboard.
 -      Don't use TTY_CHAR_INS_DEL_OK.  Set Vinitial_window_system.
 -      Announce date and time of session start, if termscript is open.
 -      Don't zero out the_only_display_info (it is done in
 -      term.c:init_tty).  Open termscript only of not already open.
 -      Log "SCREEN SAVED" here, instead of IT_set_terminal_modes.  Init mouse
 -      here instead of dos_ttraw.  Don't initialize display if this is an
 -      initial tty.  Don't set FRAME_FONT.
 -      (Vwindow_system_version): Bump to 23.
 -      (dos_ttraw): Accept a TTY argument; all callers fixed.  If mouse
 -      is available, set up mouse_position_hook.
 -      (dos_ttraw, IT_set_terminal_modes): If called with initial
 -      terminal, do nothing.
 -      (IT_set_frame_parameters): Handle the Qtty_type frame
 -      parameter by calling internal_terminal_init.
 -      (dos_set_window_size, show_mouse_face)
 -      (clear_mouse_face, IT_note_mode_line_highlight)
 -      (IT_note_mouse_highlight, IT_update_begin, IT_frame_up_to_date)
 -      (dos_rawgetc): Use tty_display_info instead of x_display_info.
 -      (initialize_msdos_display): New function.
 -      (IT_cursor_to, IT_clear_to_end, IT_clear_screen)
 -      (IT_clear_end_of_line, IT_insert_glyphs, IT_write_glyphs)
 -      (IT_delete_glyphs, IT_ring_bell, IT_reset_terminal_modes)
 -      (IT_set_terminal_modes, IT_set_terminal_window, IT_update_begin):
 -      Accept additional argument: a pointer to a frame.  Update all callers.
 -      (request_sigio, unrequest_sigio): Don't define, now defined on
 -      sysdep.c.
 -      (IT_write_glyphs): Rewrite to use encode_terminal_code.
 -
 -      * term.c [MSDOS]: Include msdos.h.
 -      (init_tty) [MSDOS]: Reuse most of WINDOWSNT branch.  Change cpp
 -      conditional to DOS_NT.  Allow only one call to this function in a
 -      session.  Don't allocate a new struct tty_display_info; instead,
 -      reuse the_only_display_info.  Call get_tty_size to get screen
 -      dimensions.  Call init_baud_rate to set bad_rate.
 -      (dissociate_if_controlling_tty) [MSDOS]: Ifdef away function body.
 -      (Fsuspend_tty) [MSDOS]: Don't close input and output.
 -      (Fresume_tty) [MSDOS]: Don't reopen the TTY; instead, use stdin/stdout.
 -      (get_tty_terminal, get_named_tty, Ftty_type)
 -      (Fcontrolling_tty_p): Handle output_msdos_raw in addition to
 -      output_termcap.
 -      (Fresume_tty, Fsuspend_tty, init_tty, delete_tty):
 -      Call add_keyboard_wait_descriptor and delete_keyboard_wait_descriptor
 -      only when subprocesses are supported.
 -
 -      * frame.c (make_terminal_frame) [MSDOS]: Adjust initialization of
 -      f->output_data.x.
 -      (Fmake_terminal_frame) [MSDOS]: Don't allow creation of new
 -      terminal devices.
 -
 -      * msdos.h: Remove definition of struct x_display_info and struct
 -      x_output.
 -      (FRAME_FONT): Use output_data.tty.
 -      (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Don't define.
 -      (struct x_display_info): Rename from display_info.  Update all users in
 -      msdos.c.
 -      (struct x_output): Remove background_pixel and foreground_pixel.
 -      (the_only_display_info): Rename from the_only_x_display.
 -      (dos_ttraw): Update prototype.
 -
 -      * Makefile.in (MSDOS_OBJ): Add xmenu.o.
 -      (SOME_MACHINE_LISP): Add ../lisp/term/pc-win.elc.
 -
 -2008-08-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (enum tiff_keyword_index, tiff_format): Add :index keyword.
 -      (fn_TIFFSetDirectory): New library function used.
 -      (init_tiff_functions) [HAVE_NTGUI]: Initialize it.
 -      (tiff_load): Use :index to select among multiple images.  Set count
 -      property when multiple images exist.
 -      (gif_format): Use :index, not :image.
 -
 -2008-08-23  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (try_scrolling): Check INT_MAX instead of
 -      MOST_POSITIVE_FIXNUM for maximum integer value.  Include limits.h
 -      to obtain INT_MAX.
 -
 -2008-08-21  İsmail Dönmez  <ismail@namtrac.org>  (tiny change)
 -
 -      * xterm.c (x_delete_display): Don't call XrmDestroyDatabase on GTK+.
 -
 -2008-08-21  Christian Faulhammer  <opfer@gentoo.org>  (tiny change)
 -
 -      * Makefile.in (temacs${EXEEXT}): On GNUstep, link to appropriate
 -      GNUstep library location.
 -
 -2008-08-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (x_update_menu_appearance): Check validity of menu font
 -      before using it.
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1250000.
 -
 -2008-08-20  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (ns-read-file-name): Add casts to avoid warning.
 -      (ns-convert-utf8-nfd-to-nfc): Warn if cannot execute correctly.
 -      * nsfont.m (nsfont_draw): Compare indexed colors to 0, not nil.
 -      * nsterm.h (EmacsView-unlockFocusNeedsFlush:): Add declaration.
 -      (EmacsApp-cursor_blink_handler): Remove declaration.
 -      * nsterm.m (ns_draw_glyph_string): Update first conditional body to
 -      match 01 Feb 2008 changes in xterm.c.
 -      (ns_read_socket): Add cast to avoid warning.
 -      (EmacsApp-application:openFiles:): Don't call replyToOpenOrPrint: on
 -      GNUstep.
 -
 -2008-08-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xselect.c (x_get_foreign_selection): Return nil if desired
 -      selection could not be obtained, instead of signalling an error.
 -
 -2008-08-20  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsfns.m (ns_lisp_to_cursor_type): Replace with generic xfns.c.
 -      * nsterm.m: Remove ns-specific code for cursor blinking.
 -      (ns_draw_window_cursor): Clear cursor properly rather than
 -      redrawing the area.  Respect width of bar cursors.
 -      These changes enable the use of generic blink-cursor-mode and
 -      generic cursor types in NS and support smooth cursor movements (do
 -      not blink off after command).
 -      * xdisp.c (get_phys_cursor_geometry): Redraw wider rectangle on
 -      Nextstep, too.
 -
 -2008-08-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (Vfont_log_deferred): New variable.
 -      (font_add_log): Check Vfont_log_deferred.
 -      (font_deferred_log): New function.
 -
 -      * font.h (font_deferred_log): Extern it.
 -
 -      * fontset.c (reorder_font_vector): Use encoding charset of fonts
 -      for sorting.
 -      (face_for_char): Use deferred log.
 -
 -2008-08-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (face_for_char): Add font log.
 -
 -      * font.c (font_add_log): Add the font properties :script, :lang,
 -      and :otf in the log.
 -
 -2008-08-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c: Remove dead code.
 -      (handle_invisible_prop, next_overlay_string): Defer call to
 -      setup_for_ellipsis.
 -      (handle_stop, set_iterator_to_next): Call setup_for_ellipsis.
 -
 -2008-08-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (lookup_derived_face): Properly handle possible zero
 -      return value of get_lface_attributes.
 -      (merge_faces): Don't tell lookup_derived_face to signal an error
 -      if face is not found.
 -
 -      * dired.c (Fdirectory_files): Doc fix.
 -
 -      * process.c (make_process): Initialize kill_without_query struct
 -      member.
 -
 -2008-08-15  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (w32_system_process_attributes) [_MSC_VER < 1300]:
 -      Alternative calculation of totphys for Visual Studio 6.
 -
 -      * w32fns.c [_MSC_VER && _MSC_VER < 1300]: Declare HMONITOR.
 -
 -      * w32.c (_MEMORY_STATUS_EX, MEMORY_STATUS_EX, LPMEMORY_STATUS_EX):
 -      Rename from _MEMORYSTATUSEX, MEMORYSTATUSEX, LPMEMORYSTATUSEX.
 -      All users changed.
 -      (stat): Only root directory passed to GetDriveType.  Allow RAM
 -      disk as well as local fixed disk when w32-get-true-file-attributes
 -      is set to `local'.
 -      (CopySid_Proc, EqualSid_Proc, GetLengthSid_Proc): New typedefs.
 -      (equal_sid, get_length_sid, copy_sid): New wrapper functions.
 -      (w32_cached_id, w32_add_to_cache): New functions.
 -      (get_name_and_id): Look account names in the cache before calling
 -      lookup_account_sid.
 -      (g_b_init_get_length_sid, g_b_init_equal_sid, g_b_init_copy_sid):
 -      New initialization flags.
 -      (globals_of_w32): Initialize them to zero.
 -      (w32_system_process_attributes): Use w32_cached_id and
 -      w32_add_to_cache.
 -
 -2008-08-14  Lawrence Mitchell  <wence@gmx.li>
 -
 -      * lread.c (Fread_char, Fread_char_exclusive): If no character
 -      event is read before timeout is reached, return nil, rather than
 -      converting to a number.
 -
 -2008-08-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fns.c (use_dialog_box): Doc fix.
 -
 -      * s/darwin.h: Undefine HAVE_RES_INIT, which appears to be harmful
 -      on OS X.
 -
 -2008-08-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (Qns_parse_geometry): New var.
 -      (Fx_parse_geometry): For HAVE_NS, call ns-parse-geometry.
 -
 -2008-08-11  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (x_produce_glyphs): Handle the case when font has no
 -      space character in calculating tabs.
 -
 -2008-08-11  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (bootstrap-emacs): Use ln -f in the CANNOT_DUMP case.
 -
 -2008-08-10  Glenn Morris  <rgm@gnu.org>
 -
 -      * process.c (procfs_system_process_attributes): Use EMACS_INTs to
 -      silence gcc "limited range of data type" warnings in some
 -      make_fixnum_or_float calls.
 -
 -2008-08-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (w32_system_process_attributes): If the process does not
 -      exist, return nil.
 -
 -      * w32.c: Include thelp32.h, psapi.h and coding.h.
 -      (_MEMORYSTATUSEX, _PROCESS_MEMORY_COUNTERS_EX): New struct
 -      declarations.
 -      (CreateToolhelp32Snapshot_Proc, Process32First_Proc)
 -      (Process32Next_Proc): New typedefs.
 -      (g_b_init_create_toolhelp32_snapshot, g_b_init_process32_first)
 -      (g_b_init_process32_next, g_b_init_open_thread_token)
 -      (g_b_init_impersonate_self, g_b_init_revert_to_self)
 -      (g_b_init_get_process_memory_info, g_b_init_global_memory_status)
 -      (g_b_init_get_process_working_set_size)
 -      (g_b_init_global_memory_status_ex): New static variables.
 -      (globals_of_w32): Initialize them.
 -      (create_toolhelp32_snapshot, process32_first, process32_next)
 -      (open_thread_token, impersonate_self, revert_to_self)
 -      (get_process_memory_info, get_process_working_set_size)
 -      (global_memory_status, global_memory_status_ex): New wrapper
 -      functions.
 -      (w32_list_system_processes, w32_system_process_attributes)
 -      (enable_privilege, restore_privilege, ltime, process_times):
 -      New functions.
 -      (convert_time_raw): New function.
 -      (convert_time): Remove conversion of FILETIME into time in 100
 -      nsec units, call convert_time_raw instead.
 -
 -      * process.h (w32_list_system_processes, w32_system_process_attributes):
 -      Add prototypes.
 -      (Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname)
 -      (Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcutime)
 -      (Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs, Quser, Qgroup)
 -      (Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime): Add extern declarations.
 -
 -      * process.c (Fsystem_process_attributes): Doc fix.
 -
 -2008-08-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (move_it_to): When stopping at a charpos, check if that's
 -      a continued multi-char glyph; if so, advance to the actual glyph.
 -
 -2008-08-07  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/darwin.h (OTHER_FILES): Do not define here, defined in config.in.
 -
 -      * Makefile.in (ALL_OBJC_CFLAGS): New variable.
 -      (.m.o): Use it.
 -      * config.in: Regenerate.
 -
 -2008-08-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): Revert last change.
 -      (try_window): Check bottom scroll margin too.
 -
 -2008-08-06  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * config.in: Regenerate.
 -
 -      * Makefile.in (emacs): Remove ifndef NS conditional for 'emacs
 -      -list-load-path-shadows'.
 -      (nsgui.h): Reduce number of things depending on it.
 -
 -2008-08-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (try_scrolling): Use iterator to find the scroll margin,
 -      instead of window-end which does the wrong thing at eob.
 -      (try_cursor_movement): Minor optimization.
 -      (redisplay_window): If scroll margin is defined, don't assume
 -      window doesn't need scrolling.
 -
 -2008-08-06  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * config.in: Regenerate.
 -
 -      * Makefile.in: Move nsXXX.m dependencies into big alphabetical list.
 -      (mostlyclean): Don't delete *.d under NS.
 -
 -      * nsterm.h (NS_HAVE_INTEGER): Change to NS_HAVE_NSINTEGER.
 -
 -2008-08-06  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_list_family): Return a list of symbols, not strings.
 -
 -2008-08-06  Andreas Schwab  <schwab@suse.de>
 -
 -      * config.in: Regenerate.
 -
 -2008-08-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): Don't enforce scroll-margin when
 -      forcing a window start.
 -
 -      * fileio.c (Vauto_save_list_file_name): Move here from file.el.
 -      (auto_save_1): Update modtime when auto-save-list-file-name is on.
 -
 -2008-08-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * emacs.c (main): Under NS, set working dir to HOME when get a "psn"
 -      argument.
 -
 -2008-08-05  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <scroll-up-aggressively>:
 -      <scroll-down-aggressively, before-change-functions>:
 -      <after-change-functions>: Reflow docstrings.
 -
 -2008-08-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -          Ken Raeburn  <raeburn@gnu.org>
 -
 -      Dock menu customization, based on a patch by Ken Raeburn, plus some
 -      other fixes.
 -      * nsmenu.m (dockMenu): New variable.
 -      (EmacsDialog -clicked:): Fix mistake in change of 2008-07-17.
 -
 -      * nsterm.h (dockMenu): Declare.
 -
 -      * nsterm.m (KEY_NS_NEW_FRAME): New definition.
 -      (ns_term_init): Initialize dockMenu.
 -      (EmacsApp -newFrame:, -applicationDockMenu:): New methods.
 -      (EmacsView -windowShouldClose:): Don't behave specially if <= 1 frame
 -      left.
 -
 -      * lisp.h (LSB_TAG): Use on DARWIN_OS, not NS_IMPL_COCOA.
 -
 -2008-08-04  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.h: Test directly for NS_HAVE_INTEGER before defining it.
 -
 -      * config.in: Regenerate.
 -
 -2008-08-04  Seiji Zenitani  <zenitani@mac.com>
 -
 -      * nsfns.m (x-create-frame): Set the frame parameter alpha to nil.
 -
 -2008-08-04  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.h (find_and_call_menu_selection): Fix prototype.
 -
 -2008-08-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * emacs.c (main: unexec_init_emacs_zone): Call if on DARWIN_OS.
 -
 -      * keyboard.h: Comment an #endif.
 -
 -      * lisp.h (have_menus_p): Adjust comment.
 -
 -      * menu.c (find_and_return_menu_selection): Fix comparison with
 -      client_data.
 -
 -      * nsmenu.m (popup_activated_flag): New variable.
 -      (popup_activated): New function.
 -      (menu-or-popup-active-p): New exported lisp definition.
 -      (ns_popup_menu): Set popup_activated_flag.  Call discard_menu_items()
 -      when popup done.
 -      (ns_popup_dialog): Set popup_activated_flag.
 -
 -      * nsterm.m (EmacsView -conversationIdentifier): Use NSInteger
 -      version for GNUstep (handled by conditional typedef in nsterm.m).
 -      (ns_get_color): Remove special-casing for "darkblue", "dark blue" (now
 -      in rgb.txt).
 -
 -      * process.c (init_process): Use DARWIN_OS, not DARWIN.
 -
 -      * sysselect.h: Conditionalize init_process undef on DARWIN_OS.
 -
 -      * syssignal.h (FORWARD_SIGNAL_TO_MAIN_THREAD): Do it also under NS.
 -
 -      * xdisp.c (redisplay_internal, note_mouse_highlight): Under NS,
 -      shortcircuit if popup_activated like GTK and X toolkit.
 -
 -      * m/inter386.h: Change DARWIN to DARWIN_OS.
 -
 -      * s/darwin.h: Add #define DARWIN_OS.  Get rid of C_SWITCH_SYSTEM def.
 -      Change LIBS_MACGUI to LIBS_NSGUI.  Move temacs-conditionalized defs
 -      closer to C_SWITCH_SYSTEM_TEMACS so usage is understood.  Expand
 -      comment on NO_SOCK_SIGIO.
 -
 -2008-08-03  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsterm.m (windowDidResize): Remove stopModal call.
 -
 -2008-08-03  Andreas Schwab  <schwab@suse.de>
 -
 -      * vm-limit.c (get_lim_data) [HAVE_GETRLIMIT && RLIMIT_AS]: Define.
 -      (check_memory_limits): Don't handle HAVE_GETRLIMIT here.
 -
 -2008-08-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * vm-limit.c (check_memory_limits): Don't use getrlimit on cygwin.
 -      Don't use uninitialized pointer variable when using getrlimit.
 -
 -2008-08-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (compute_metrics): Don't mess with glyph_idx setting here.
 -
 -2008-08-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * alloc.c (NSTATICS): Bump to 0x640.
 -
 -      * s/gnu-linux.h (HAVE_PROCFS, LISTPROC, PROCATTR): New defines.
 -
 -      * lisp.h: Add prototype for directory_files_internal.
 -
 -      * process.c (Fsystem_processes_list, Fsystem_process_attributes):
 -      New functions.
 -      (syms_of_process): Defsubr them.  Add initializations for various
 -      Q* symbols used in procfs_system_process_attributes.
 -      (procfs_list_system_processes, procfs_system_process_attributes)
 -      [HAVE_PROCFS]: New functions.
 -      (time_from_jiffies, ltime_from_jiffies, get_up_time, procfs_ttyname)
 -      (procfs_get_total_memory): New functions.
 -
 -2008-08-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xfaces.c (Fx_load_color_file): Fix previous change;
 -      it is #ifdef WINDOWSNT, not WINDOWS_NT.
 -
 -2008-08-01  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_read_message): Handle D-Bus error messages.
 -
 -2008-08-01  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.h (NSInteger, NSUInteger): Add defines for non-Leopard.
 -
 -2008-08-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsfns.m (ns_frame_parm_handlers): Add empty entry for x_set_alpha.
 -
 -      * nsterm.m (EmacsApp -application:openFiles:): GNUstep does not
 -      define NSApplicationDelegateReplySuccess.
 -      (EmacsView -converstationIdentifier): Use long instead of
 -      NSInteger for GNUstep, since it doesn't have NSInteger.
 -
 -      * xmenu.c: Revert last change.
 -
 -      * keyboard.h: Fix last change.
 -
 -2008-08-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xfaces.c (x-load-color-file): Use RGB() instead of manually shifting
 -      on Windows.
 -
 -2008-08-01  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      Warning clearing and clean-up in NS port.
 -      * keyboard.h (xmalloc_widget_value, digest_single_submenu):
 -      Add prototypes.
 -      * nsgui.h (FACE_DEFAULT): Remove, unused.
 -      (XGCValues): Change colors to unsigned long.
 -      * nsterm.h (EmacsApp): Add declaration of all methods implemented in
 -      nsterm.m.
 -      (EmacsMenu -addItemWithWidgetValue:): Change to use NSMenuItem class.
 -      (ns_list_fonts): Remove, unused.
 -      (ns_font_to_xlfd, ns_fontname_to_xlfd): Drop prototypes.
 -      * nsfns.m (interpret_services_menu): Use NSMenuItem class.
 -      * nsfont.m (nsfont_open): Fix cast error in glyphs,metrics alloc.
 -      (nsfont_draw): Compare face colors to 0, not nil.
 -      * nsmenu.m (struct widget_value): Drop unneeded declaration.
 -      (EmacsMenu -addItemWithWidgetValue:, -fillWithWidgetValue:)
 -      (-addSubmenuWithTitle:): Use NSMenuItem class.
 -      (ns_popup_menu): Use NO, not NULL, for enabled setting.
 -      * nsterm.m (ns_draw_glyph_string): Don't compare font to ~0.
 -      (ns_clip_to_row): Make gc arg a BOOL.
 -      (ns_draw_fringe_bitmap, ns_draw_window_cursor): Use YES, NO in
 -      ns_clip_to_row() call.
 -      (ns_draw_glyph_string): Drop face comparison to ~0 (no longer
 -      used).  Cast FRAME_FONT assignments.
 -      (ns_read_socket): Cast call to EmacsApp-fulfillService:withArg:.
 -      (ns_string_to_lispmod): Change arg to const char.
 -      (ns_term_init): Use NSMenuItem class.
 -      (EmacsApp -openFile:): Move to different section of file.
 -      (EmacsApp -application:openFiles:): Don't return a value, call
 -      -replyToOpenOrPrint:.
 -      (EmacsView -keyDown:): Fix up cast.
 -      (EmacsView -converstationIdentifier): Use NSInteger instead of long.
 -      (EmacsView -menuDown:): Cast tag in call to
 -      find_and_call_menu_selection().
 -      (ns_list_fonts): Remove, unused.
 -      (ns_font_to_xlfd): Make static.  Cast result of UTF8String.
 -      (ns_fontname_to_xlfd): Make static.
 -      * w32menu.c (xmalloc_widget_value, digest_single_submenu):
 -      Remove prototypes (now in keyboard.h).
 -      (next_menubar_widget_id): Remove, unused.
 -      * xmenu.c (xmalloc_widget_value, digest_single_submenu):
 -      Remove prototypes (now in keyboard.h).
 -      * xfaces.c (ns_list_fonts, w32_list_fonts): Remove, unused.
 -
 -2008-08-01  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (dispnew.o, gtkutil.o, sound.o, atimer.o)
 -      (floatfns.o): Depend on syssignal.h.
 -      (term.o): Depend on syssignal.h, systty.h, and $(INTERVAL_SRC).
 -
 -      * systty.h: Fix previous change that removed BSD_TERMIOS.
 -      Add comments to #ifdefs.
 -
 -2008-08-01  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * w32fns.c (w32-load-color-file): Remove.
 -      (x-open-connection): Use renamed Fx_load_color_file.
 -      * xfaces.c (x-load-color-file): Add.
 -      * nsterm.m (ns_initialize): Load colors from etc/rgb.txt instead of
 -      Emacs.clr.
 -      (hide_hourglass): BLOCK_INPUT before UNBLOCK.
 -
 -2008-07-31  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_call_method_asynchronously)
 -      (Fdbus_method_error_internal): New defuns.
 -      (xd_read_message): Handle also reply messages.
 -      (Vdbus_registered_functions_table): Extend docstring.
 -
 -2008-07-31  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * keyboard.c (gobble_input): Fix previous change.
 -
 -2008-07-31  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * bitmaps/README:
 -      * xfns.c:
 -      * termcap.c:
 -      * term.c:
 -      * syswait.h:
 -      * systty.h:
 -      * systime.h:
 -      * syssignal.h:
 -      * sysdep.c:
 -      * process.h:
 -      * process.c:
 -      * print.c:
 -      * ndir.h:
 -      * lread.c:
 -      * keyboard.c:
 -      * getpagesize.h:
 -      * floatfns.c:
 -      * fileio.c:
 -      * emacs.c:
 -      * doc.c:
 -      * dispnew.c:
 -      * dired.c:
 -      * data.c:
 -      * callproc.c:
 -      * buffer.c:
 -      * README:
 -      * Makefile.in:
 -      * s/template.h:
 -      * s/msdos.h:
 -      * m/vax.h: Remove VMS support.
 -      * s/vms.h:
 -      * vlimit.h:
 -      * uaf.h:
 -      * temacs.opt:
 -      * param.h:
 -      * ioctl.h: Remove file.
 -
 -2008-07-31  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/ms-w32.h (MULTI_KBOARD): Remove.
 -      * xterm.c:
 -      * xselect.c:
 -      * xfns.c:
 -      * window.c:
 -      * w32term.c:
 -      * w32fns.c:
 -      * terminal.c:
 -      * termhooks.h:
 -      * term.c:
 -      * sysdep.c:
 -      * keyboard.h:
 -      * keyboard.c:
 -      * frame.h:
 -      * frame.c:
 -      * frame.c: Remove references to MULTI_KBOARD, it is now the default.
 -      * config.in: Regenerate.
 -
 -2008-07-30  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.h (struct w32font_info): Use unicode version of textmetrics.
 -
 -      * w32font.c (w32font_encode_char): Leave as unicode if in range.
 -      (w32font_open_internal): Get unicode version of textmetrics.
 -      Don't enable or disable glyph indices here.
 -      (w32font_open): Disable use of glyph indices.
 -
 -      * w32uniscribe.c (uniscribe_open): Enable use of glyph indices.
 -
 -2008-07-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * minibuf.c (Vread_buffer_function): Doc fix.
 -
 -2008-07-30  John Paul Wallington  <jpw@pobox.com>
 -
 -      * minibuf.c (read_buffer_completion_ignore_case): New var.
 -      (Fread_buffer): Use it.
 -
 -2008-07-30  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * systty.h (sensemode): Remove empty #if.  Remove reference to
 -      BSD_TERMIOS, unused.
 -
 -      * sysdep.c: Remove reference to DGUX.
 -      (closedir): Remove reference to BROKEN_CLOSEDIR, unused.
 -
 -      * config.in: Regenerate.
 -
 -2008-07-30  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_encode_char): Fix glyph buffer size.
 -
 -2008-07-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_shape): Avoid using context if cache
 -      is populated.
 -      (uniscribe_encode_char): Always use uniscribe.
 -      Avoid using context if cache is populated.
 -
 -2008-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (Fx_menu_bar_open_internal): Use activate_item signal to
 -      open menu.
 -
 -      * gtkutil.c (menu_nav_ended): Remove.
 -      (create_menus): Remove signal connect for menu_nav_ended.
 -
 -2008-07-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): Check return value of
 -      compute_window_start_on_continuation_line before forcing a window
 -      start.
 -
 -2008-07-28  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_text_extents): Use w32_metric_cache consistently.
 -
 -      * w32term.c (w32_enable_unicode_output, cleartype_active):
 -      Remove obsolete display options.
 -      (x_draw_glyph_string_background): Don't use old cleartype_active
 -      workaround.
 -      (w32_initialize): Remove cleartype_active initialization.
 -      (syms_of_w32term): Remove w32_enable_unicode_output initialization.
 -
 -2008-07-28  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h (init_weak_hash_tables, syms_of_font)
 -      (xd_read_queued_messages, syms_of_dbusbind): Declare.
 -      (remove_hash_entry): Don't declare.
 -      * eval.c (maybe_call_debugger): Make static and move before use.
 -      * gtkutil.c: Include <X11/Xft/Xft.h> if HAVE_XFT.
 -      * xdisp.c: Include "gtkutil.h" if USE_GTK.
 -      * xterm.h (x_set_frame_alpha): Declare.
 -
 -2008-07-28  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (menu_nav_ended): Revert change from 2008-07-24.
 -      (create_menus): Connect selection-done to menu_nav_ended.
 -
 -2008-07-27  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (x-create-frame): Add copy of parms argument to beginning.
 -      Set Vx_resource_name to a fallback.  Replace read of 'buffered'
 -      parameter with read of 'alpha' one.
 -      (Qns_frame_parameter): Remove.
 -      * nsselect.m (selection-coding-system)
 -      (next-selection-coding-system, Vselection_coding_system)
 -      (Vnext_selection_coding_system): Drop.
 -
 -2008-07-27  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (do-applescript, do_applescript): Rename to
 -      ns-do-applescript, ns_do_applescript, and move within file.
 -
 -2008-07-27  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      Remove support for Mac Carbon.
 -      * mactoolbox.c:
 -      * macterm.h:
 -      * macterm.c:
 -      * macselect.c:
 -      * macmenu.c:
 -      * macgui.h:
 -      * macfns.c:
 -      * mac.c: Remove file.
 -      * s/darwin.h:
 -      * m/intel386.h:
 -      * xfaces.c:
 -      * xdisp.c:
 -      * window.c:
 -      * tparam.c:
 -      * termhooks.h:
 -      * termcap.c:
 -      * term.c:
 -      * syssignal.h:
 -      * sysselect.h:
 -      * sysdep.c:
 -      * process.c:
 -      * lread.c:
 -      * lisp.h:
 -      * keyboard.c:
 -      * image.c:
 -      * fringe.c:
 -      * frame.h:
 -      * frame.c:
 -      * fontset.c:
 -      * font.h:
 -      * font.c:
 -      * fns.c:
 -      * fileio.c:
 -      * emacs.c:
 -      * dispnew.c:
 -      * dispextern.h:
 -      * config.in:
 -      * atimer.c:
 -      * Makefile.in: Remove code for Carbon.
 -
 -2008-07-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (XDrawLine) [USE_MAC_IMAGE_IO]: Remove spurious return.
 -
 -2008-07-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.h (kCGBitmapByteOrder32Host): New define for
 -      non-universal SDKs.
 -
 -      * image.c (mac_create_cg_image_from_image, image_load_image_io)
 -      [USE_MAC_IMAGE_IO]: Remove conditionals for kCGBitmapByteOrder32Host.
 -
 -      * macterm.c (XDrawLine, XCreatePixmapFromBitmapData)
 -      [USE_MAC_IMAGE_IO]: Remove conditionals for kCGBitmapByteOrder32Host.
 -
 -2008-07-26  David Robinow  <drobinow@gmail.com>  (tiny change)
 -
 -      * w32inevt.c: Include dispextern.h.
 -
 -2008-07-26  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c (print_object): Fix off-by-one in last change.
 -
 -2008-07-25  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * term.c (syms_of_term): Don't initialize default_orig_pair,
 -      default_set_foreground and default_set_background on Windows.
 -
 -2008-07-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_shape): Pass NULL for control arg to
 -      ScriptItemize.  Clean up return value checking.  Remove unused
 -      variables.
 -      (uniscribe_encode_char): Encode non-BMP characters with uniscribe
 -      shaping engine.
 -
 -      * w32font.c (w32font_has_char): Handle the case where we can't
 -      determine the script for a character.
 -
 -2008-07-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * term.c (syms_of_term): Initialize default_orig_pair,
 -      default_set_foreground, and default_set_background.
 -
 -      * getloadavg.c (nl): Rename to name_list to avoid ncurses.h
 -      clash (bug#86).
 -      (getloadavg): Callers changed.
 -
 -      * image.c (svg_load_image): Fix last change.
 -      (svg_load_image): Use rsvg_handle_get_dimensions to check that
 -      image size is valid.  Use g_object_unref instead of deprecated
 -      rsvg_handle_free to free rsvg handle.
 -      (x_from_xcolors): Don't initialize pixmap (silence compiler).
 -
 -2008-07-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_encode_char): Encode characters outside BMP as
 -      surrogates before looking up glyph index.
 -      (w32font_text_extents): Encode as surrogates if falling back to
 -      functions that need UTF-16 wide chars.
 -
 -      * w32uniscribe.c (uniscribe_encode_char): Encode characters outside
 -      BMP as surrogates before looking up glyph index.
 -
 -2008-07-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (svg_load_image): Check for failure in return value of
 -      rsvg_handle_get_pixbuf.  Free rsvg handle when done.
 -
 -2008-07-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (Fx_select_font): Reverse sense of second arg.
 -
 -2008-07-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (struct lisp_parse_state, char_quoted, inc_bytepos)
 -      (dec_bytepos, find_defun_start): Use EMACS_INT for buffer positions.
 -
 -      * puresize.h (PURESIZE_CHECKING_RATIO): New macro.
 -      (PURESIZE): Use it.
 -
 -2008-07-24  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/amdx86-64.h (HAVE_LIB64_DIR): Consolidate ifdefs.
 -      * m/alpha.h (TEXT_END):
 -      * m/ibmrs6000.h (TEXT_END):
 -      * m/macppc.h (TEXT_END):
 -      * s/darwin.h (TEXT_END):
 -      * s/msdos.h (TEXT_END): Remove, unused.
 -      * s/gnu-linux.h (BSD_PGRPS): Add a comment.
 -      * s/cygwin.h: Remove comment.
 -
 -      * ecrt0.c (NODOT_GLOBAL_START): Remove code, unused.
 -      (DOT_GLOBAL_START): Remove conditional, redundant for CRT0_DUMMIES.
 -      * m/intel386.h (DOT_GLOBAL_START):
 -      * m/vax.h (DOT_GLOBAL_START): Remove, redundant with CRT0_DUMMIES.
 -      (USG): Remove, file not used on USG platforms.
 -
 -      * Makefile.in (HAVE_X11): Remove empty #else.
 -
 -2008-07-24  Andreas Schwab  <schwab@suse.de>
 -
 -      * fileio.c (Finsert_file_contents): Properly adjust undo list
 -      after format conversion.
 -
 -2008-07-24  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_font_name): Cast w to GTK_FONT_SELECTION_DIALOG.
 -      (menu_nav_ended): Remove.
 -      (create_menus): Remove signal connect for menu_nav_ended.
 -      (xg_update_menubar): Also take deactivate_cb as parameter, pass it to
 -      create_menus.
 -      (xg_modify_menubar_widgets): Pass deactivate_cb to xg_update_menubar.
 -
 -2008-07-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32_enumfont_pattern_entity): Return height consistent
 -      with opened font.
 -      (w32font_open): Set font type to gdi.
 -
 -      * w32uniscribe.c (uniscribe_open): Set font type to uniscribe.
 -
 -2008-07-23  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/usg5-4.h (ADDR_CORRECT): Remove, unused.
 -      * unexaix.c (ADDR_CORRECT): Remove conditional, the only user
 -      defines it.
 -      * unexec.c (ADDR_CORRECT): Define unconditionally.
 -
 -      * m/ibmrs6000.h (C_SWITCH_MACHINE): Remove.
 -
 -      * unexec.c: Remove code depending on !COFF and USG, the file is
 -      not used for such systems.
 -
 -      * s/netbsd.h (A_TEXT_OFFSET, A_TEXT_SEEK):
 -      * s/freebsd.h (A_TEXT_OFFSET, A_TEXT_SEEK): Remove, unused.
 -      (LD_SWITCH_SYSTEM_1): Remove, update users.
 -
 -      * s/darwin.h (DATA_END):
 -      * m/intel386.h (DATA_END):
 -      * m/ibmrs6000.h (DATA_END):
 -      * m/alpha.h (DATA_END): Remove, unused.
 -
 -      * config.in: Regenerate.
 -      * s/ms-w32.h (subprocesses): Define unconditionally.
 -      * s/template.h (subprocesses): Update comment.
 -      * s/vms.h (subprocesses):
 -      * s/usg5-4.h (subprocesses):
 -      * s/hpux10-20.h (subprocesses):
 -      * s/gnu-linux.h (subprocesses):
 -      * s/cygwin.h (subprocesses):
 -      * s/bsd-common.h (subprocesses):
 -      * s/aix4-2.h (subprocesses):
 -      * s/darwin.h (subprocesses): Do not define, defined by default now.
 -
 -      * Makefile.in (C_SWITCH_SITE, LD_SWITCH_SITE): Remove, unused.
 -      Remove all references.
 -      (temacs): Add GNUstep specific ld flags.
 -
 -      * nsterm.m (syms_of_nsterm): Provide ns, not ns-windowing,
 -      similarly to what X does.
 -
 -2008-07-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (x-list-fonts): Remove.
 -      (syms_of_nsfns): Drop the x-list-fonts declaration.
 -      * nsterm.m: Get rid of remaining "//" comments.
 -
 -2008-07-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xselect.c (Fx_rotate_cut_buffers_internal): Doc fix.
 -
 -      * nsselect.m (Fns_selection_exists_p, Fns_selection_owner_p)
 -      (Fx_get_selection_internal, Fns_rotate_cut_buffers_internal)
 -      (Fns_own_selection_internal, Fx_disown_selection_internal)
 -      (Fns_get_cut_buffer_internal, Fns_store_cut_buffer_internal):
 -
 -      * nsmenu.m (Fns_reset_menu, Fx_popup_menu): Change to use 'doc: /*
 -      ... */' style of docstrings.  Doc fixes.
 -
 -2008-07-22  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * terminfo.c (UP, BC, PC): Undo previous change.
 -
 -      * nsfns.m: Rename ns prefixed functions/variables to the
 -      corresponding x versions.  Update references.
 -
 -2008-07-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (char_quoted): Check "charpos > beg" before decrementing.
 -
 -2008-07-22  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * nsfns.m (x_set_menu_bar_lines, x_set_tool_bar_lines):
 -      Remove forwarding functions.
 -      (ns_set_menu_bar_lines): Rename to x_set_menu_bar_lines, make
 -      non-static.
 -      (ns_set_tool_bar_lines): Rename to x_set_tool_bar_lines, make
 -      non-static.
 -      (ns_frame_parm_handlers): Use the new names.
 -      (syms_of_nsfns): Move to the end of file.
 -
 -      * nsterm.m (syms_of_nsterm): Move to the end of file.
 -
 -      * dispnew.c (init_display): Remove code for X10.
 -
 -2008-07-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32proc.c (Fw32_long_file_name): Don't append dir separator to
 -      bare drive.
 -
 -2008-07-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (syms_of_nsterm): Remove debugging println.
 -
 -2008-07-22  David Reitter  <david.reitter@gmail.com>
 -
 -      * nsfns.m (do_applescript, F_do_applescript): NS version of the
 -      Carbon implementation of the same functionality: execute arbitrary
 -      AppleScript code.
 -
 -2008-07-21  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsfns.m (Fx_create_frame, Fx_read_file_name, Fx_get_resource)
 -      (Fx_set_resource, Fx_set_alpha, 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_open_connection)
 -      (Fx_close_connection, Fx_hide_emacs, Fx_font_name)
 -      (Fx_list_colors, Fx_perform_service, Fx_color_defined_p)
 -      (Fx_color_values, Fxw_display_color_p, Fx_display_grayscale_p)
 -      (Fx_display_pixel_width, Fx_display_pixel_height)
 -      (Fx_display_usable_bounds, Fx_display_planes)
 -      (Fx_display_color_cells, Vns_icon_type_alist): Change to use 'doc: /*
 -      ... */' style of docstrings.
 -
 -2008-07-21  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/mips.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Do not define, not used
 -      on this platform.
 -      (mips):
 -      * m/iris4d.h (mips): Do not define.
 -      * sysdep.c (init_sys_modes): Use __mips__ instead of mips.
 -
 -      * m/ibmrs6000.h (LD_SWITCH_SITE): Remove.
 -
 -      * image.c:
 -      * nsfns.m:
 -      * nsselect.m:
 -      * nsterm.h:
 -      * nsterm.m: Rename ns prefixed functions/variables to the
 -      corresponding x versions.  Update references.
 -
 -      * m/ibms390x.h (NO_REMAP): Do not undefine.
 -
 -      * m/amdx86-64.h: Use SOLARIS2 instead of sun.
 -
 -2008-07-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsfns.m: Change NS to Nextstep in docstrings and error messages.
 -      (Fns_create_frame, Fns_read_file_name, Fns_get_resource)
 -      (Fns_set_resource, Fns_set_alpha, Fns_server_max_request_size)
 -      (Fns_server_vendor, Fns_server_version, Fns_display_screens)
 -      (Fns_display_mm_height, Fns_display_mm_width)
 -      (Fns_display_backing_store, Fns_display_visual_class)
 -      (Fns_display_save_under, Fns_open_connection)
 -      (Fns_close_connection, Fns_hide_emacs, Fns_font_name)
 -      (Fns_list_colors, Fns_perform_service, Fns_color_defined_p)
 -      (Fns_color_values, Fxw_display_color_p, Fx_display_grayscale_p)
 -      (Fns_display_pixel_width, Fns_display_pixel_height)
 -      (Fns_display_usable_bounds, Fx_display_planes)
 -      (Fns_display_color_cells, Vns_icon_type_alist): Doc fixes.
 -
 -2008-07-21  Ami Fischman  <ami@fischman.org>  (tiny change)
 -
 -      * print.c (print_object): Check print_depth before searching for
 -      circularities.
 -
 -2008-07-21  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_register_signal): Use sprintf + strcat instead
 -      only sprintf.
 -
 -2008-07-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (adjust_anchor): Check if DeltaValue is not NULL.
 -
 -2008-07-20  Andreas Schwab  <schwab@suse.de>
 -
 -      * syntax.c (find_start_pos, find_start_value)
 -      (find_start_value_byte, find_start_begv, find_defun_start)
 -      (back_comment, scan_sexps_forward): Use EMACS_INT for buffer positions.
 -
 -2008-07-20  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/sol2-3.h: Insert contents of s/sol2.h.
 -      (LD_SWITCH_SYSTEM): Remove redundant definition.
 -      * s/sol2.h: Remove, unused.
 -
 -2008-07-20  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_get_color): Recognize HSB,AHSB be synonyms for HSV,AHSV.
 -
 -2008-07-20  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * Makefile.in (ns_appdir): Fix typo in find command.
 -
 -2008-07-20  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/intel386.h (NO_REMAP): Do no define for USG, not used.
 -
 -      * s/usg5-4.h (LIBS_SYSTEM): Remove, system for which this was
 -      added not supported anymore.
 -
 -      * s/usg5-4-2.h (LIBS_SYSTEM):
 -      * s/sol2.h (LIBS_SYSTEM): Do not undefine.
 -
 -      * s/netbsd.h (GETPGRP_NO_ARG, N_TRELOFF):
 -      * s/lynxos.h (GETPGRP_NO_ARG):
 -      * s/hpux10-20.h (NO_SIOCTL_H):
 -      * s/gnu.h (GETPGRP_NO_ARG):
 -      * s/gnu-linux.h (NO_SIOCTL_H):
 -      * s/freebsd.h (GETPGRP_NO_ARG, N_TRELOFF):
 -      * s/cygwin.h (GETPGRP_NO_ARG):
 -      * s/irix6-5.h (LIBS_SYSTEM, GETPGRP_NO_ARG): Remove, unused.
 -      (C_DEBUG_SWITCH): Remove duplicate definition.
 -
 -      * m/ibms390.h: Remove boilerplate comments.
 -
 -      * sysdep.c (closedir): Use SOLARIS2 instead of sun && USG5_4.
 -
 -      * process.c (HAVE_SERIAL): Consolidate ifdefs.
 -      (wait_reading_process_output): Remove code for SunOS, platform not
 -      supported anymore.  Use SOLARIS2 instead of sun.
 -
 -2008-07-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * font.c (font_open_by_name): Under NS, default lface height to zero.
 -      (font_open_for_lface): Under NS, set size based on frame fontsize.
 -      * nsterm.m (EmacsView-changeFont:): Remove some commented code.
 -      * frame.c (x_set_frame_parameters): Remove HAVE_NS ifdef.
 -
 -2008-07-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_antialias_text, ns_use_qd_smoothing)
 -      (ns_use_system_highlight_color): Switch these from DEFVAR_BOOL to
 -      DEFVAR_LISP and change all code accordingly to use Qt/Qnil instead of
 -      YES/NO.
 -      * nsterm.h (prevUseHighlightColor): Make a Lisp_Object.
 -      * nsfont.m (nsfont_draw): Treat ns_use_qd_smoothing as Lisp_Object.
 -      * Makefile.in (clean): Clear out build destination dir.
 -
 -2008-07-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * Makefile.in (nsgui.h-related dependencies): Remove abbrev, xfns,
 -      xterm, xselect.
 -      * lisp.h: Remove declaration of hash_remove.
 -      * nsgui.h: Remove redefinitions of hash_remove.
 -      * fns.c (hash_remove): Rename to hash_remove_from_table.
 -
 -2008-07-19  Seiji Zenitani  <zenitani@mac.com>
 -
 -      * nsfont.m (nsfont_fmember_to_entity, nsfont_make_fontset_for_font):
 -      strdup() the family UTF8String before modifying it.
 -
 -2008-07-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * nsterm.m (ns_maybe_dumpglyphs_background): Compare result from
 -      NS_FACE_BACKGROUND with 0 instead of nil.
 -      * nsfont.m (nsfont_draw): Same.
 -
 -2008-07-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * nsfns.m (ns_set_background_color): Fix crash.
 -
 -2008-07-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Makefile.in (SOME_MACHINE_LISP): Remove ns-carbon-compat.elc.
 -
 -2008-07-18  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1240000.
 -
 -2008-07-17  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * gtkutil.c: Include <config.h> instead of "config.h".
 -
 -      * lisp.h (Foverlay_buffer): Add EXFUN.
 -
 -      * process.c (create_process) [!WINDOWSNT && FD_CLOEXEC]: Wait for
 -      child process to complete child_setup.  Undo 2005-09-21 change.
 -
 -      * s/darwin.h: Mention setsid after vfork.
 -
 -2008-07-17  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (frame.o, keyboard.o, xdisp.o, xfaces.o):
 -      Depend on macgui.h.
 -
 -      * macfns.c (Fx_server_version): Don't use gestaltSystemVersionMajor,
 -      gestaltSystemVersionMinor, or gestaltSystemVersionBugFix.
 -
 -      * macterm.c (keycode_to_xkeysym_table): Add entries for f17, f18,
 -      and f19.
 -      [MAC_OSX] (fn_keycode_to_keycode_table): Likewise.
 -
 -      * macterm.h (gestaltSystemVersionMajor, gestaltSystemVersionMinor)
 -      (gestaltSystemVersionBugFix) [MAC_OS_X_VERSION_MAX_ALLOWED < 1040]:
 -      Remove enumerators.
 -
 -      * mactoolbox.c [USE_MAC_TSM] (mac_handle_text_input_event):
 -      Check if FACE_FROM_ID returns NULL.
 -
 -2008-07-17  David Robinow  <drobinow@gmail.com>  (tiny change)
 -
 -      * w32inevt.c (change_frame_size): Remove extern declaration.
 -      (resize_event, maybe_generate_resize_event): Pass SAFE arg to
 -      change_frame_size.
 -
 -2008-07-17  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * getloadavg.c: Revert last change (2008-07-15).
 -
 -2008-07-17  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * Makefile.in: Replace emacsapp, emacsbindir, emacsappsrc variables
 -      set here with ns_appdir, ns_appresdir, ns_appbindir, ns_appsrc set
 -      from configure.
 -
 -2008-07-17  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/sol2.h:
 -      * s/sol2-4.h: Reorganize conditionals.
 -
 -      * ecrt0.c: Remove code depending on m68000, not used anymore.
 -
 -      * fns.c (hash_remove): Make static.
 -      * lisp.h (hash_remove): Don't prototype.
 -
 -      * m/ibmrs6000.h:
 -      * m/ibms390x.h:
 -      * m/macppc.h: Remove boilerplate comments.
 -
 -      * m/sparc.h (A_TEXT_OFFSET, A_TEXT_SEEK): Remove, only used on
 -      Solaris, which does not need them.
 -
 -      * m/vax.h: Remove comments about unsupported systems.
 -
 -      * s/darwin.h: Reorganize ifdefs.
 -
 -2008-07-17  Andreas Schwab  <schwab@suse.de>
 -
 -      * s/cygwin.h (LIB_STANDARD_LIBSRC): Don't define.
 -
 -2008-07-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Use SDATA.  Follow coding convention of placing operators at
 -      beginning of next line rather than end of previous line, and placing
 -      spaces around infix operators.
 -
 -      * Makefile.in: Undef LIB_STANDARD before defining it to silence warning
 -      in case it was defined already.
 -      USE @GNUSTEP_MAKEFILES@ rather than envvars.
 -      * nsterm.m (ns_term_init): Pass Qt and Qnil rather than YES/NO to
 -      ns_default.
 -      (applicationShouldTerminate, setValuesFromPanel): Use EQ to compare
 -      Lisp_Objects.
 -      * nsterm.h (Fx_display_grayscale_p, Fx_display_planes)
 -      (ns_defined_color, ns_color_to_lisp): Declare.
 -      * nsselect.m (ns_handle_selection_request, ns_handle_selection_clear)
 -      (Fns_own_selection_internal): Make the big ugly hack more explicit, so
 -      it's accepted even with USE_LISP_UNION_TYPE.
 -      * nsmenu.m (ns_update_menubar): Use EQ to compare Lisp_Objects.
 -      (update_frame_tool_bar): Remove apparently obsolete tests for
 -      non-integerness of f->tool_bar_lines.
 -      (windowShouldClose, addButton, clicked, runDialogAt): Make the big ugly
 -      hack more explicit, so it's accepted even with USE_LISP_UNION_TYPE.
 -      * nsfont.m (nsfont_driver): Use just 0 rather than an invalid cast.
 -      (nsfont_open): Don't confuse NULL for Qnil.
 -      * nsfns.m (ns_implicitly_set_icon_type): Use EQ to compare Lisp_Objects.
 -      * menu.h (find_and_call_menu_selection):
 -      * menu.c (find_and_call_menu_selection): Use just int for vector size.
 -      (find_and_return_menu_selection): Always return something.
 -      * frame.h: Include dispextern.h for Display_Info.
 -      (display_x_get_resource): Declare.
 -
 -2008-07-16  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * syntax.c: Remove stdio.h include accidentally introduced in
 -      Emacs.app commit.
 -      * Makefile.in: Change GNUSTEP to NS_IMPL_GNUSTEP, COCOA to
 -      NS_IMPL_COCOA.
 -      * keyboard.c (handle_async_input, input_available_signal): Remove
 -      BSD4_1 conditional code, introduced accidentally in Emacs.app commit.
 -
 -2008-07-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * nsterm.m (lisp_to_mod): Use parse_solitary_modifier instead.
 -      (ns_lisp_to_color): Don't mess with internal Lisp data fields.
 -      (ns_term_init, ns_term_shutdown, initFrameFromEmacs, ns_list_fonts):
 -      Use SDATA.
 -
 -      * keymap.c: Remove all NS-specific code.
 -      (where_is_preferred_modifier, Vwhere_is_preferred_modifier): New vars.
 -      (preferred_sequence_p): Rename from ascii_sequence_p; pay attention to
 -      where_is_preferred_modifier, return a different value depending on how
 -      preferred is the binding.
 -      (where_is_internal): Adjust accordingly.
 -      (Fwhere_is_internal): Refresh where_is_preferred_modifier.
 -      Adjust to new preferred_sequence_p.
 -      (syms_of_keymap): Declare `where-is-preferred-modifier'.
 -      * keyboard.c (parse_solitary_modifier): Not static any more.
 -      * keyboard.h (parse_solitary_modifier): Declare.
 -
 -2008-07-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in (SOME_MACHINE_LISP): Remove easy-mmode, fix spelling
 -      of easymenu.
 -
 -2008-07-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (move_it_in_display_line): Account for word wrap, so
 -      that we don't move off the line.
 -
 -2008-07-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (Qsuper): Remove.
 -      (parse_menu_item): Don't call where_is_internal specially for NS.
 -
 -2008-07-16  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/gnu-linux.h: Remove boilerplate comments.
 -
 -      * m/alpha.h (__ELF__): Consolidate conditions.
 -
 -      * m/m68k.h (linux): Use GNU_LINUX instead.
 -      Remove boilerplate comments.
 -
 -      * m/intel386.h: Undo refactoring from previous change.
 -      (LIB_STANDARD): All systems that define USG define LIB_STANDARD
 -      too, remove dead code.
 -      (linux): Use GNU_LINUX instead.
 -
 -2008-07-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32gui.h: Repeat 26 June changes lost by last change.
 -
 -2008-07-16  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * systty.h: Remove code for Aix on 386, unsupported platform.
 -
 -      * s/ms-w32.h: Remove boilerplate comments.
 -      (fcloseall, fgetchar, flushall, fputchar, getw, putw): Remove, unused.
 -
 -      * s/gnu-linux.h (TERM): Remove support.
 -      (HAVE_SYSVIPC): Remove, unused.
 -      (A_TEXT_OFFSET, A_TEXT_SEEK, ADJUST_EXEC_HEADER): Remove, not used
 -      for this system.
 -
 -      * process.c: Remove support for IRIS, unused.
 -      Remove support for TERM, not relevant anymore.
 -
 -      * unexalpha.c (DEFAULT_ENTRY_ADDRESS): Remove, replace the only
 -      used with the definition.
 -
 -      * s/aix4-2.h (static): Do not undef.
 -
 -      * m/ibmrs6000.h: Remove code depending on USG5_4, this file is
 -      only used on Aix.
 -      (HAVE_SYSVIPC): Remove, unused.
 -
 -      * m/hp800.h (CANNOT_DUMP): Do not undef.
 -
 -      * m/alpha.h: Fix comment.
 -
 -      * s/usg5-4.h (HAVE_SYSVIPC): Remove, unused.
 -      (USG_SHARED_LIBRARIES): Remove, only used in unexec.c which is not
 -      used by this configuration.
 -      * emacs.c: Remove code depending on USG_SHARED_LIBRARIES.
 -      * unexec.c: Remove code depending on HPUX and
 -      USG_SHARED_LIBRARIES, not used with this file.  Remove code
 -      depending on IRIS, unused.  Remove if 0-ed code.
 -
 -      * s/template.h: Remove comments about static.
 -
 -      * sysdep.c: Remove code depending on NEED_PTEM_H, unused.
 -      Remove if 0-ed code.
 -      (baud_convert): Don't depend on BAUD_CONVERT, all definitions the
 -      were the same as the default.
 -      * s/vms.h (BAUD_CONVERT): Remove, same as the default.
 -      Remove boilerplate comments.
 -      * s/hpux10-20.h (BAUD_CONVERT): Remove, same as the default.
 -      (HAVE_SYSVIPC): Remove, unused.
 -      (LD_SWITCH_SYSTEM_TEMACS): Simplify, hp9000s700 not supported anymore.
 -
 -      * m/ia64.h (PNTR_COMPARISON_TYPE): Remove, same as the default.
 -      Remove boilerplate comments.
 -      * m/amdx86-64.h (PNTR_COMPARISON_TYPE): Remove, same as the default.
 -      Remove boilerplate comments.
 -      * m/ibms390x.h (PNTR_COMPARISON_TYPE): Remove, same as the default.
 -      Remove boilerplate comments.
 -      * lisp.h (PNTR_COMPARISON_TYPE): Define it unconditionally.
 -
 -      * m/intel386.h (DATA_SEG_BITS): Remove definitions, only used on
 -      USG systems which do not use DATA_SEG_BITS.
 -      Refactor code.  Remove boilerplate comments.
 -
 -      * m/ibms390.h:
 -      * m/m68k.h:
 -      * s/bsd-common.h:
 -      * s/cygwin.h:
 -      * s/darwin.h:
 -      * s/freebsd.h:
 -      * s/gnu.h:
 -      * s/msdos.h: Remove boilerplate comments.
 -
 -      * m/iris4d.h: Remove boilerplate comments and code for systems that
 -      do not use this file.
 -      (IRIS_4D): Remove, unused.
 -
 -      * m/mips.h: Remove boilerplate comments and code for systems that
 -      do not use this file.
 -      (SIGN_EXTEND_CHAR):
 -      * m/arm.h (SIGN_EXTEND_CHAR): Remove, unused.
 -      * unexmips.c: Remove file, unused.
 -
 -      * editfns.c (Fuser_full_name): Replace the only use of
 -      USER_FULL_NAME with its value.
 -      * config.in: Regenerate.
 -
 -2008-07-16  David Reitter  <david.reitter@gmail.com>
 -
 -      * Makefile.in: Add ns-win, ns-carbon-compat, easy-mmode and
 -      easy-menu to SOME_MACHINE_LISP for the new NeXTstep port.
 -
 -2008-07-16  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (system-type): Doc fix.
 -
 -2008-07-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (parse_menu_item): Don't use cachelist, even under NS.
 -      If the cache doesn't work, let's fix it, rather than work around it.
 -
 -2008-07-15  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * Makefile.in: Correct additions for nsfont.o in last commit.
 -      * nsfont.m: New file (forgot last commit).
 -
 -2008-07-15  Chris Hall  <chris@web.workinglinux.com>  (tiny change)
 -
 -      * callproc.c (set_initial_environment): Initialize
 -      Vprocess_environment under CANNOT_DUMP (fixes crash when
 -      batch-compiling for bootstrap).
 -
 -2008-07-15  Chris Hall  <chris@web.workinglinux.com>  (tiny change)
 -          YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      (make_initial_frame): Call init_frame_faces(f) in CANNOT_DUMP case --
 -      fix crash due to different init order.
 -
 -2008-07-15  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      Changes and additions for NeXTstep windowing system (Cocoa and
 -      GNUstep) support.
 -
 -      * Makefile.in:
 -      * config.in: Support defines and build commands for NS port.
 -      * blockinput.h (BLOCK_INPUT, UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT)
 -      (UNBLOCK_INPUT_TO): Don't use under NS unless EXPERIMENTAL_CONTROL_G.
 -      * dispextern.h: Include nsgui.h and add needed typedefs under NS
 -      windowing.
 -      (struct face): Add synth_ital field.
 -      * dispnew.c: Include nsterm.h when compiling under NS windowing.
 -      (init_display): Initialize Vinitial_window_system to "ns" when so
 -      compiled.
 -      * emacs.c: Include GSConfig.h when compiling under GNUstep.
 -      (display_arg): Use under NS.
 -      (main): Under NS, allocate autorelease pool and handle command line
 -      args.  Move syms_of_xmenu() call under #ifdef HAVE_X_WINDOWS.
 -      (standard_args): Add NS-specific args.
 -      (shut_down_emacs): Shut down NS terminal if compiled under NS.
 -      * font.c (DEFAULT_ENCODING): New variable.
 -      (font_find_for_lface): Use it.
 -      (syms_of_font): Load syms_of_nsfont under NS.
 -      * font.h: Declare nsfont_driver when compiled under NS.
 -      * fontset.c: When compiling under NS, include nsterm.h.
 -      (fontset_from_font): Autoconstruct fontset under NS.
 -      * frame.c (various): Under NS, include nsterm.h, add Qns window system
 -      symbol, document and use it.
 -      (do_switch_frame): When for_deletion under Cocoa, add
 -      Fraise_frame(Qnil).
 -      (x_set_frame_parameters): Ensure font attribute changes are picked up.
 -      (x_get_arg): Allow "yes" and "no" as boolean values.
 -      (syms_of_frame): Declare Qns.  Init Vdefault_frame_scroll_bars to
 -      Qright under Cocoa.
 -      (focus-follows-mouse): Default to 0 under NS.
 -      * frame.h (enum output_method): Add output_ns.
 -      (external_tool_bar, external_menu_bar, FRAME_EXTERNAL_TOOLBAR)
 -      (FRAME_EXTERNAL_MENU_BAR): Use under NS.
 -      (FRAME_WINDOW_P): NS-specific definition.
 -      * fringe.c (max_used_fringe_bitmap): Make public.
 -      * getloadavg.c (mach/mach.h): Include it under NeXT descendant OS's.
 -      (getloadavg): Use NeXT code under descendant OS's.
 -      * image.c (includes and header section, x_create_bitmap_from_data)
 -      (x_create_bitmap_from_file, free_bitmap_record, image_background)
 -      (image_background_transparent, x_clear_image_1)
 -      (x_create_x_image_and_pixmap, x_destroy_x_image, x_put_x_image)
 -      (Create_Pixmap_From_Bitmap_Data, xpm_load_image, lookup_rgb_color)
 -      (x_to_xcolors, x_from_xcolors, x_disable_image)
 -      (x_build_heuristic_mask, syms_of_image): Add NS support parallel to
 -      other GUIs, including XPM support using code originally written for
 -      Carbon GUI.
 -      (png_load, jpeg_load, tiff_load, gif_load): Add implementations
 -      using NS API.
 -      (image_ascent): Use font metrics macros instead of direct struct field
 -      access.
 -      * keyboard.c (includes): Add nsterm.h when compiling under NS.
 -      (kbd_buffer_get_event): Handle NS as other GUI windowing systems.
 -      Also, handle NS as GTK for menu bar purposes.
 -      (make_lispy_event): Handle NS as other GUI windowing systems, and as X
 -      toolkit where they differ.
 -      (parse_menu_item): Prefer keybindings using 'super' modifier.  Also,
 -      use cachelist, still needed under NS.
 -      * keyboard.h (ENCODE_MENU_STRING, XtPointer, Boolean): Handle as NTGUI.
 -      (struct widget_value): Define it here for menu.c.
 -      * keymap.c (includes): Include modifier internals.
 -      (lisp_to_mod, modifier_sequence_p): New functions, compiled only under
 -      NS.
 -      (where_is_internal, Fwhere_is_internal): When compiled under NS, add
 -      support for preferring sequences using certain modifiers, specified by
 -      the FIRSTONLY argument.
 -      * lisp.h (hash_remove): Rename to avoid name clash when compiling
 -      under NS GNUstep implementation.
 -      (USE_LSB_TAG): Use it under Cocoa when compiling under NS.
 -      * lread.c (init_lread): Treat NS as HAVE_CARBON for turn_off_warning.
 -      * menu.c: Include nsterm.h under NS.
 -      (single_menu_item, parse_single_submenu, xmalloc_widget_value)
 -      (free_menubar_widget_tree_value, update_submenu_strings)
 -      (find_and_call_menu_selection): Treat NS as X and NT.
 -      (find_and_return_menu_selection): New function, used for popup menus.
 -      * nsgui.h:
 -      * nsterm.h:
 -      * nsfns.m:
 -      * nsimage.m:
 -      * nsmenu.m:
 -      * nsselect.m:
 -      * nsterm.m: New files.
 -      * process.c (wait_reading_process_output): Under NS, call ns_select()
 -      instead of plain select().
 -      * syntax.c (char_quoted): Under NS, avoid a crash when called near
 -      beginning of buffer.
 -      * sysselect.h (init_process): Rename when compiling under Cocoa to
 -      avoid name conflict.
 -      * termhooks.h (display_info): Add ns_display_info to union.
 -      * terminal.c (Fterminal_live_p): Add ns to terminal types.
 -      * terminfo.c (UP, BC, PC): Don't declare when compiling under NS in
 -      COCOA environment.
 -      * unexnext.c: Update to work with mach API on Mac OS X, and to use new
 -      unexec() signature.  (Note, this will dump, but the resulting file
 -      crashes; unexosx is used instead; keeping around for reference and
 -      possible aid in getting dump working under GNUstep.)
 -      * w32gui.h (button_type, widget_value): Remove definitions (now in
 -      keyboard.h).
 -      * window.c: Include nsterm.h when compiling under NS.
 -      * xdisp.c (includes): Include nsterm.h when compiling under NS.
 -      (set_frame_menubar, update_menu_bar, display_menu_bar): Handle NS as
 -      other GUI windowing systems.
 -      (update_tool_bar, redisplay_tool_bar, redisplay_window): Handle NS as
 -      GTK.
 -      (x_consider_frame_title): Under NS, set icon type and frame
 -      modified-state indicator; use ns_set_name_as_filename() when using
 -      formatted title.
 -      (update_window_cursor): Make public when compiling under NS.
 -      (display_hourglass_p, syms_of_xdisp, hourglass_shown_p)
 -      (hourglass_atimer, Vhourglass_delay
 -      * xfaces.c (header section, init_frame_faces, clear_font_table)
 -      (defined_color, unload_color, x_face_list_fonts)
 -      (prepare_face_for_display): Add NS support parallel to other GUIs.
 -      Emulate GCs like other non-X GUIs.
 -      (split_font_name): Don't lowercase font name under NS.
 -      (merge_face_ref, Finternal_set_lisp_face_attribute): Support stippling
 -      under NS.
 -      * s/darwin.h: Add support for compilation under NS.
 -
 -2008-07-15  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fx_create_frame): Remove duplicate unwind_protect.
 -      (w32_show_hourglass): Rename from show_hourglass.
 -      (w32_hide_hourglass): Rename from hide_hourglass.
 -      (DEFAULT_HOURGLASS_DELAY): Revert from last change.
 -      (Vhourglass_delay): Declare extern.
 -      (hourglass_started): Remove.
 -
 -      * xdisp.c (Vhourglass_delay): Remove static.
 -      (hourglass_started, start_hourglass, cancel_hourglass):
 -      Don't include these versions on WINDOWSNT.
 -
 -2008-07-15  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -
 -      * dispextern.h (hourglass_shown_p, hourglass_atimer): New extern
 -      variables (formerly in xfns.c).
 -      (show_hourglass, hide_hourglass): New prototypes (same).
 -      * xdisp.c (display_hourglass_p, hourglass_shown_p, hourglass_atimer)
 -      (Vhourglass_delay, DEFAULT_HOURGLASS_DELAY): New variables (formerly
 -      in xfns.c).
 -      (syms_of_xdisp): Declare/initialize display-hourglass,
 -      hourglass-delay.  Initialize hourglass_atimer, hourglass_shown_p.
 -      (hourglass_started, start_hourglass, cancel_hourglass): New functions,
 -      formerly in xfns.c.
 -      * xfns.c (display_hourglass_p, hourglass_atimer, hourglass_shown_p)
 -      (Vhourglass_delay, DEFAULT_HOURGLASS_DELAY, hourglass_started)
 -      (start_hourglass, cancel_hourglass): Remove.
 -      (show_hourglass, hide_hourglass): Remove prototypes and static
 -      modifiers.
 -      (syms_of_xfns): Remove display-hourglass, hourglass-delay,
 -      hourglass_atimer, hourglass_shown_p declaration/initialization.
 -      * macfns.c (display_hourglass_p, hourglass_atimer, hourglass_shown_p)
 -      (Vhourglass_delay, DEFAULT_HOURGLASS_DELAY, hourglass_started)
 -      (start_hourglass, cancel_hourglass): Remove.
 -      (show_hourglass, hide_hourglass): Remove prototypes and static
 -      modifiers.
 -      (syms_of_macfns): Remove display-hourglass, hourglass-delay,
 -      hourglass_atimer, hourglass_shown_p declaration/initialization.
 -      * w32fns.c (display_hourglass_p, Vhourglass_delay)
 -      (DEFAULT_HOURGLASS_DELAY): Remove.
 -      (syms_of_w32fns): Remove display-hourglass, hourglass-delay,
 -      hourglass_shown_p declaration/initialization.
 -
 -2008-07-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_get_arg): Remove wrapper function.
 -      (w32_createwindow, x_icon, x_create_tip_frame): Use x_get_arg
 -      directly.
 -      (Fx_create_frame): Sync with xfns.c.  Use x_get_arg directly.
 -
 -2008-07-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_open): Add workaround for X's bug.
 -
 -2008-07-14  Emanuele Giaquinta  <emanuele.giaquinta@gmail.com>  (tiny change)
 -
 -      * fontset.c: Include <stdio.h> unconditionally.
 -
 -2008-07-13  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_register_signal): Allow also signal arguments
 -      for filtering.
 -
 -2008-07-13  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/vms.h: Use __GNUC__ instead of _GNUC_.
 -
 -      * m/macppc.h:
 -      * m/alpha.h: Use GNU_LINUX instead of LINUX.  Reorganize conditionals.
 -
 -      * m/ibms390x.h (XINT, XUINT): Don't define, same as the default
 -      (SPECIAL_EMACS_INT):
 -      * m/ia64.h (SPECIAL_EMACS_INT):
 -      * m/amdx86-64.h (SPECIAL_EMACS_INT):
 -      * s/gnu.h (NLIST_STRUCT):
 -      * s/aix4-2.h (X11R5_INHIBIT_I18N):
 -      * s/gnu-linux.h (LINUX):
 -      * s/msdos.h (HAVE_FACES):
 -      * s/ms-w32.h (HAVE_FACES): Don't define, unused.
 -
 -      * systty.h:
 -      * sysdep.c (setup_pty): Don't depend on SYSV_PTYS, it is not used
 -      anymore.
 -
 -2008-07-12  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * syswait.h: Remove old if 0 code.  Do not define WAITTYPE, it was
 -      always defined as int.
 -
 -      * s/netbsd.h (HAVE_UNION_WAIT, HAVE_WAIT_HEADER, WAIT_USE_INT):
 -      * s/gnu.h (HAVE_WAIT_HEADER, WAIT_USE_INT, HAVE_UNION_WAIT):
 -      * s/gnu-linux.h (HAVE_WAIT_HEADER):
 -      * s/freebsd.h (HAVE_WAIT_HEADER):
 -      * s/bsd-common.h (HAVE_UNION_WAIT):
 -      * s/aix4-2.h (HAVE_WAIT_HEADER):
 -      * m/mips.h (HAVE_UNION_WAIT):
 -      * s/usg5-4.h (HAVE_WAIT_HEADER, WAITTYPE): Do not define, not used.
 -      (COFF, static): Do not define, they are undefined later in the file.
 -
 -      * process.c (update_status): Don't use a union.
 -      (status_convert):
 -      (sigchld_handler): Use int instead of WAITTYPE.
 -
 -2008-07-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Restore hscroll before moving to
 -      goal column.
 -
 -2008-07-11  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * lisp.h: Remove left over code.
 -
 -2008-07-11  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h: Fix logic in last change.
 -
 -      * menu.h: New file.
 -      * menu.c: Include it.
 -      * xmenu.c: Likewise.
 -      * Makefile.in: Update dependencies.
 -
 -2008-07-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_from_font): Cancel the previous change.
 -
 -2008-07-11  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * lisp.h:
 -      * w32heap.c:
 -      * emacs.c:
 -      * alloc.c: Replace all references of NO_UNION_TYPE with
 -      USE_LISP_UNION_TYPE.
 -
 -      * m/xtensa.h (NO_UNION_TYPE):
 -      * m/vax.h (NO_UNION_TYPE):
 -      * m/template.h (NO_UNION_TYPE):
 -      * m/sparc.h (NO_UNION_TYPE):
 -      * m/mips.h (NO_UNION_TYPE):
 -      * m/macppc.h (NO_UNION_TYPE):
 -      * m/m68k.h (NO_UNION_TYPE):
 -      * m/iris4d.h (NO_UNION_TYPE):
 -      * m/intel386.h (NO_UNION_TYPE):
 -      * m/ibms390x.h (NO_UNION_TYPE):
 -      * m/ibms390.h (NO_UNION_TYPE):
 -      * m/ibmrs6000.h (NO_UNION_TYPE):
 -      * m/ia64.h (NO_UNION_TYPE):
 -      * m/hp800.h (NO_UNION_TYPE):
 -      * m/arm.h (NO_UNION_TYPE):
 -      * m/amdx86-64.h (NO_UNION_TYPE):
 -      * m/alpha.h (NO_UNION_TYPE): Remove definition, all platform were
 -      defining it the same.
 -
 -2008-07-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (move_it_to): Backtrack if past the edge of a wrapped line.
 -
 -2008-07-10  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * fileio.c:
 -      * sysdep.c
 -      * systty.h:
 -      * m/ibmrs6000.h:
 -      * m/iris4d.h:
 -      * s/aix4-2.h:
 -      * s/freebsd.h:
 -      * s/gnu-linux.h:
 -      * s/hpux10-20.h:
 -      * s/hpux11.h:
 -      * s/netbsd.h:
 -      * s/sol2-3.h:
 -      * s/sol2-4.h:
 -      * s/sol2.h:
 -      * s/usg5-4.h:
 -      * s/vms.h: Remove references to unused variables.
 -
 -2008-07-10  Andreas Schwab  <schwab@suse.de>
 -
 -      * ftfont.c (ftfont_resolve_generic_family): Remove foundry from
 -      pattern before matching the generic family.
 -
 -2008-07-10  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * unexec.c:
 -      * s/vms.h:
 -      * s/usg5-4-2.h:
 -      * s/sol2-5.h:
 -      * s/freebsd.h:
 -      * s/darwin.h: Remove dead code.
 -
 -      * m/template.h:
 -      * m/sparc.h:
 -      * m/mips.h:
 -      * m/m68k.h:
 -      * m/iris4d.h:
 -      * m/intel386.h:
 -      * m/ibms390x.h:
 -      * m/ibms390.h:
 -      * m/ia64.h:
 -      * m/hp800.h:
 -      * m/arm.h:
 -      * m/amdx86-64.h: Remove dead code and references to unused
 -      and compiler defined symbols.
 -
 -      * unexmips.c:
 -      * unexelf.c: Remove references to desupported systems.
 -
 -      * m/powermac.h: Remove file, it is now identical to m/macppc.h.
 -
 -      * m/powermac.h: Remove boilerplate comments.
 -      (NO_REMAP): Remove unused definition.
 -
 -      * m/macppc.h (UNEXEC, NO_TERMIO): Don't define, the s/ files
 -      define them.
 -
 -2008-07-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_open): Log the reason of failure.
 -
 -2008-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fontset.c (fontset_get_font_group):
 -      * font.c (font_check_otf): Specify argument types.
 -
 -2008-07-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_utf_8): Set detect_info->found only when
 -      non-ASCII char is found.
 -
 -      * fontset.c (fontset_compare_rfontdef): Fix plus/minus.
 -      (reorder_font_vector): Change the arg preferred_family to font.
 -      Prefer the spec matching with font.
 -      (fontset_get_font_group): New function.
 -      (fontset_find_font): Change the format of an element of a realized
 -      fontset.  Use fontset_get_font_group.
 -      (fontset_font): Try the current fontset, the default fontset, the
 -      fallbacks of the current fontset, and the fallbacks of the default
 -      fontset in this order.
 -      (face_for_char): Delete the shortcut to use the current font.
 -      (fontset_from_font): Don't set fonts for Latin in the fontset.
 -
 -      * font.h (font_make_object, font_match_p): Adjust prototypes.
 -
 -      * ftfont.h [FT_BDF_H]: Include FT_BDF_H.
 -
 -      * font.c (font_make_object): New arg entity and pixelsize.
 -      (font_check_otf_features, font_check_otf): New functions.
 -      (font_match_p): Check :lang, :script, and :otf properties.
 -
 -      * xfont.c (xfont_open): Adjust it for the change of
 -      font_make_object.
 -      (xfont_text_extents): Fix initial setting of metrics.
 -
 -      * ftfont.c (struct ftfont_info): New member index, delete member
 -      fc_charset_idx.  Make the member order compatible with struct
 -      xftfont_info.
 -      (fc_charset_table): Change charset names to registry names.
 -      (ftfont_pattern_entity): Delete the args registry and
 -      fc_charset_idx.  Change the value of :font-entity property
 -      to (FONTNAME . INDEX).  Always set :registry property to
 -      `iso10646-1'.
 -      (struct ftfont_cache_data): New struct.
 -      (ftfont_lookup_cache): New arg for_face.
 -      (ftfont_get_fc_charset, ftfont_get_otf): New functions.
 -      (ftfont_driver): Set the member otf_capability.
 -      (ftfont_get_charset): Adjust it for the change of
 -      fc_charset_table.
 -      (OTF_TAG_SYM): New macro.
 -      (ftfont_spec_pattern): Delete the arg fc_charset_idx.  Adjust it
 -      for the change of fc_charset_table.
 -      (ftfont_list): Adjust it for the change of ftfont_spec_pattern and
 -      ftfont_pattern_entity.  Add FC_INDEX to objset.
 -      (ftfont_match): Adjust it for the change of ftfont_spec_pattern
 -      and ftfont_pattern_entity.
 -      (ftfont_open): Adjust it for the change of ftfont_lookup_cache,
 -      font_make_object, struct ftfont_info.
 -      (ftfont_has_char): Use ftfont_get_fc_charset.
 -      (ftfont_otf_features, ftfont_otf_capability): New functions.
 -      (ftfont_shape): Use ftfont_get_otf.
 -      (ftfont_text_extents): Fix initial setting of metrics.
 -
 -      * xftfont.c (struct xftfont_info): New member ft_size.  Make the
 -      member order compatible with struct ftfont_info.
 -      (xftfont_open): Add FC_CHARSET to the pattern.  Set
 -      xftfont_info->ft_size.  Don't unlock the face.  Check BDF
 -      properties if appropriate.
 -      (xftfont_close): Unlock the face.
 -      (xftfont_anchor_point, xftfont_shape): Deleted.
 -      (syms_of_xftfont): Don't set members anchor_point and shape of
 -      xftfont_driver.
 -
 -      * w32uniscribe.c (uniscribe_open): Adjust it for the change of
 -      font_make_object.
 -
 -      * w32font.c (w32font_open): Adjust it for the change of
 -      font_make_object.
 -      (w32font_open_internal): Don't set properties of font_object here.
 -
 -2008-07-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * macfns.c (x_create_tip_frame):
 -      * w32fns.c (x_create_tip_frame):
 -      * xfns.c (x_create_tip_frame): Pass parameter argument to
 -      face-set-after-frame-default.
 -
 -      * xfaces.c (Finternal_merge_in_global_face): Save merged
 -      attributes for the default face back into the face vector.
 -
 -2008-07-08  Andreas Schwab  <schwab@suse.de>
 -
 -      * fontset.h: Declare fontset_from_font.  Don't declare
 -      new_fontset_from_font and fontset_from_font_name.
 -      * xterm.c: Include "fontset.h".
 -      * Makefile.in (xterm.o): Update dependencies.
 -
 -2008-07-08  Glenn Morris  <rgm@gnu.org>
 -
 -      * m/sparc.h: Define __sparc__ rather than sparc.  (Bug#507.)
 -      * alloc.c, ecrt0.c: Use __sparc__ rather than sparc.
 -
 -2008-07-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (Qinhibit_face_set_after_frame_default): Var deleted.
 -      (x_set_frame_parameters): Don't bind it.
 -
 -2008-07-07  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (map_w32_filename): Declare extern.
 -
 -2008-07-07  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (WS_EX_LAYERED): Define if not already.
 -
 -2008-07-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (set_font_frame_param): Don't try to set the font
 -      parameter if it is still unspecified in the lface.
 -
 -2008-07-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (Finternal_merge_in_global_face): Don't realize default
 -      face if it didn't already exist.
 -
 -      * xdisp.c (try_window_id): Give up if word-wrapping is on.
 -
 -2008-07-05  Andreas Schwab  <schwab@suse.de>
 -
 -      * xdisp.c (get_it_property): Move out of HAVE_WINDOW_SYSTEM section.
 -
 -2008-07-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Turn it off if
 -      word-wrapping.
 -      (IT_DISPLAYING_WHITESPACE): New macro.
 -      (move_it_in_display_line_to): Handle MOVE_TO_X requests properly
 -      when word-wrapping.  Simplify word-wrapping logic.  Use correct
 -      pixel positions when saving copies of the iterator.
 -      (display_line): Use proper wrap point if the last character on a
 -      line was preceded by whitespace.
 -
 -2008-07-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in (${etc}DOC): Depend on ${lisp} rather than ${shortlisp}.
 -
 -2008-07-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (Fstring_to_unibyte): Delete the arg ACCEPT-LATIN-1.
 -
 -      * lisp.h: EXFUN adjusted for the change of Fstring_to_unibyte.
 -
 -2008-07-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * xfns.c (syms_of_xfns): Only define x-select-font when both
 -      HAVE_FREETYPE and USE_GTK.
 -
 -      * xdisp.c (next_element_from_display_vector): Move assignment out
 -      of if statement.
 -
 -2008-07-02  Toru Tsuneyoshi  <t_tuneyosi@hotmail.com>
 -
 -      * lisp.h (Qdelete_file, Qdelete_directory): Declare extern.
 -
 -      * fileio.c (delete_by_moving_to_trash, Qmove_file_to_trash): New vars.
 -      (syms_of_fileio): Initialize and export them.
 -      (Fdelete_directory, Fdelete_file): Optionally delete via trash.
 -
 -      * w32fns.c (FOF_NO_CONNECTED_ELEMENTS): Define if not already.
 -      (Fsystem_move_file_to_trash): New function.
 -      (syms_of_w32fns): Export it to lisp.
 -
 -2008-07-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_text_extents): Don't count overhang as part
 -      of width.
 -
 -2008-06-30  Miles Bader  <miles@gnu.org>
 -
 -      * dispextern.h (struct glyph, struct it, struct iterator_stack_entry):
 -      Add `avoid_cursor_p' field.
 -
 -      * xdisp.c (push_it, pop_it): Save/restore avoid_cursor_p field.
 -      (set_cursor_from_row): Skip glyphs with avoid_cursor_p set.
 -      (append_glyph, append_composite_glyph, produce_image_glyph)
 -      (append_stretch_glyph): Initialize avoid_cursor_p.
 -      (get_it_property): Rename from `get_line_height_property'.
 -      (x_produce_glyphs): Use get_it_property.
 -      (handle_line_prefix, push_display_prop): New functions.
 -      (display_line, move_it_in_display_line_to): Handle line/wrap prefixes.
 -      (Vwrap_prefix, Qwrap_prefix, Vline_prefix, Qline_prefix):
 -      New variables.
 -      (syms_of_xdisp): Initialize them.
 -
 -2008-06-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): Don't call FcConfigSubstitute and
 -      XftDefaultSubstitute (they are called in XftFontMatch).
 -      (xftfont_open): Fix args to ftfont_font_format.
 -
 -      * ftfont.c (fc_charset_table): New member lang.
 -      (ftfont_resolve_generic_family): New arg pattern.
 -      (ftfont_spec_pattern): Check fc_charset_table[]->lang.
 -      (ftfont_list): Call ftfont_resolve_generic_family with `pattern'.
 -      (ftfont_open): Fix args to ftfont_font_format.
 -      (ftfont_font_format): New arg filename.
 -
 -2008-06-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (Finternal_merge_in_global_face): If default face was
 -      modified, realize it again.  Update the font face attribute.
 -
 -2008-06-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_set_frame_alpha): Fix logic.
 -
 -2008-06-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Finternal_char_font): Return font-object instead of
 -      font-name.
 -
 -      * composite.c (get_composition_id): Fix the width calculation for TAB.
 -
 -2008-06-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * indent.c (Fvertical_motion): Properly handle float column arg.
 -
 -2008-06-28  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (pfnGetFontUnicodeRanges): Remove unused function pointer.
 -      (pfnSetLayeredWindowAttributes): New function pointer.
 -      (w32_initialize): Initialize it when supported.
 -      (x_set_frame_alpha): New function.
 -
 -      * w32fns.c (Fx_create_frame): Initialize frame parameter `alpha'.
 -      (w32_frame_parm_handlers): Set alpha handler.
 -
 -      * frame.c (x_set_alpha) [HAVE_NTGUI]: Call x_set_frame_alpha.
 -
 -2008-06-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_to_w32_font, w32_to_x_font, x_to_w32_weight)
 -      (w32_to_x_weight, w32_to_all_x_charsets): Remove obsolete functions.
 -      (w32_to_x_charset, x_to_w32_charset)
 -      (Qw32_charset_ansi, Qw32_charset_symbol, Qw32_charset_default)
 -      (Qw32_charset_shiftjis, Qw32_charset_hangeul, Qw32_charset_johab)
 -      (Qw32_charset_chinesebig5, Qw32_charset_gb2312, Qw32_charset_oem)
 -      (Qw32_charset_easteurope, Qw32_charset_turkish, Qw32_charset_baltic)
 -      (Qw32_charset_russian, Qw32_charset_arabic, Qw32_charset_greek)
 -      (Qw32_charset_hebrew, Qw32_charset_vietnamese, Qw32_charset_thai)
 -      (Qw32_charset_mac, Vw32_charset_info_alist): Move to w32font.c.
 -      (Qw32_charset_unicode): Remove.
 -      (syms_of_w32fns): Update for above changes.
 -
 -      * w32font.c (w32_to_x_charset, x_to_w32_charset)
 -      (Qw32_charset_ansi, Qw32_charset_symbol, Qw32_charset_default)
 -      (Qw32_charset_shiftjis, Qw32_charset_hangeul, Qw32_charset_johab)
 -      (Qw32_charset_chinesebig5, Qw32_charset_gb2312, Qw32_charset_oem)
 -      (Qw32_charset_easteurope, Qw32_charset_turkish, Qw32_charset_baltic)
 -      (Qw32_charset_russian, Qw32_charset_arabic, Qw32_charset_greek)
 -      (Qw32_charset_hebrew, Qw32_charset_vietnamese, Qw32_charset_thai)
 -      (Qw32_charset_mac, Vw32_charset_info_alist): Move from w32fns.c.
 -      (syms_of_w32font): Update for above changes.
 -
 -2008-06-27  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/usg5-4.h: Fix previous change: keep the correct branch of a
 -      removed #if.
 -      (USG_SHARED_LIBRARIES): Remove duplicate definition.
 -
 -2008-06-26  Juanma Barranquero  <lekktu@gmail.com>
 -          Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in (LOCAL_FLAGS):
 -      Don't include WINDOWSNT, DOS_NT and _UCHAR_T.
 -
 -      * sysdep.c (_spawnlp, _getpid):
 -      Declare with explicit _cdecl instead of _CRTAPI1.
 -
 -      * editfns.c (Fget_internal_run_time):
 -      Check for WINDOWSNT with #ifdef, not #if.
 -
 -2008-06-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.h (FONT_HANDLE, FONT_TEXTMETRIC): New macros.
 -
 -      * w32term.c (x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground): Sync with xterm.c.
 -      Use FONT_HANDLE macro.
 -      (x_draw_glyph_string): Use FONT_TEXTMETRIC macro.
 -
 -      * w32uniscribe.c (uniscribe_otf_capability, uniscribe_shape)
 -      (uniscribe_encode_char): Use FONT_HANDLE macro.
 -
 -      * w32font.c (Fx_select_font): Use FONT_HANDLE macro.
 -      (w32font_text_extents): Use precast w32_font.
 -      (w32font_close): Free cached metrics.
 -      (w32font_open_internal): Allocate space for name on stack.
 -
 -2008-06-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (extend_face_to_end_of_line): Fix last change.
 -
 -2008-06-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.h (FONT_AVG_WIDTH): Remove obsolete macro.
 -      (CP_8BIT, CP_UNICODE, CP_UNKNOWN): Remove obsolete constants.
 -
 -2008-06-26  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * Makefile.in (SOME_MACHINE_OBJECTS): Remove w32bdf.o.
 -
 -2008-06-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32bdf.c, w32bdf.h: Remove obsolete files.
 -
 -      * makefile.w32-in: Remove refs to w32bdf.h and w32bdf.c.
 -
 -      * w32gui.h: Don't include w32bdf.h.
 -      (XCharStruct, enum w32_char_font_type, W32FontStruct):
 -      Remove obsolete font support.
 -
 -      * w32font.h (struct w32font_info): Remove compat_w32_font.
 -      Add hfont member.
 -      (FONT_COMPAT): Remove obsolete macro.
 -
 -      * w32font.c (w32font_close): Remove compat code.  Delete hfont member.
 -      (w32font_encode_char, w32font_text_extents): Use new hfont member.
 -      (w32font_open_internal): Remove compat code.  Set new hfont member.
 -      (Fx_select_font): Use new hfont member.
 -
 -      * w32uniscribe.c (uniscribe_otf_capability, uniscribe_shape)
 -      (uniscribe_encode_char): Use new hfont member.
 -
 -      * w32term.c (x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground): Use new hfont member.
 -      (x_draw_glyph_string): Use metrics in w32font_info.
 -
 -2008-06-26  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_auto_composed_prop): Fix for the terminal case.
 -
 -2008-06-26  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * unexnext.c:
 -      * m/ews4800.h:
 -      * m/hp9000s300.h:
 -      * m/ibm370aix.h:
 -      * m/mips-siemens.h:
 -      * m/ncr386.h:
 -      * m/next.h:
 -      * m/pmax.h:
 -      * m/powerpcle.h:
 -      * m/tandem-s2.h:
 -      * s/386bsd.h:
 -      * s/bsd386.h:
 -      * s/bsd4-1.h:
 -      * s/bsd4-2.h:
 -      * s/bsdos2-1.h:
 -      * s/bsdos2.h:
 -      * s/bsdos3.h:
 -      * s/bsdos4.h:
 -      * s/nextstep.h:
 -      * s/ultrix4-3.h:
 -      * s/usg5-0.h:
 -      * s/usg5-2-2.h:
 -      * s/usg5-2.h:
 -      * s/usg5-4-3.h:
 -      * s/ux4800.h:
 -      * s/uxpds.h:
 -      * s/uxpv.h: Remove support for obsolete systems.
 -      * s/hpux.h, s/hpux10.h, s/hpux8.h, s/hpux9.h, s/hpux9shr.h:
 -      Remove, insert contents in s/hpux10-20.h.
 -      * s/aix3-1.h, s/aix3-2-5.h, s/aix3-2.h, s/aix4-1.h, s/aix4.h:
 -      Remove, insert contents in s/aix4-2.h.
 -      * s/usg5-3.h: Remove, insert contents in s/usg5-4.h.
 -      * s/bsd4-3.h: Rename to ...
 -      * s/bsd-common.h: ... this.
 -      * data.c:
 -      * doc.c:
 -      * ecrt0.c:
 -      * emacs.c:
 -      * fileio.c:
 -      * floatfns.c:
 -      * keyboard.c:
 -      * mem-limits.h:
 -      * print.c:
 -      * process.c:
 -      * sysdep.c:
 -      * syssignal.h:
 -      * systty.h:
 -      * syswait.h:
 -      * term.c:
 -      * unexec.c:
 -      * unexelf.c:
 -      * unexhp9k800.c:
 -      * m/hp800.h:
 -      * m/ibmrs6000.h:
 -      * m/mips.h:
 -      * m/vax.h:
 -      * s/darwin.h:
 -      * s/freebsd.h:
 -      * s/gnu.h:
 -      * s/ms-w32.h:
 -      * s/msdos.h:
 -      * s/netbsd.h:
 -      * s/template.h: Remove references to obsolete variables.
 -
 -      * Makefile.in: Add dependencies for all unexec files.
 -      (admindir): Remove unused variable.
 -      (UNEXEC_SRC): Remove references.
 -
 -2008-06-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (x_default_font_parameter): If Xft is available, first
 -      try Monospace-12 for the default font.
 -
 -2008-06-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * xdisp.c (get_glyph_face_and_encoding): Encode invalid glyphs as 0.
 -
 -2008-06-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * bytecode.c (Fbyte_code): Disable debugging code that doesn't compile.
 -
 -      * buffer.c (syms_of_buffer): Remove default-word-wrap.
 -
 -2008-06-25  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xdisp.c (syms_of_xdisp) <truncate-partial-width-windows>: Doc fix.
 -      <scroll-conservatively>: Fix typo in docstring.
 -
 -      * xselect.c (Fx_send_client_event): Doc fix.
 -
 -2008-06-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (Fx_list_fonts): Call Flist_fonts with the arg PREFER.
 -
 -      * font.c (font_parse_fcname): Remove unused variables.
 -      (font_sort_entites): Delete the arg SPEC.  Caller changed.
 -      Fix for the case of ! best_only.
 -      (font_delete_unmatched): Check DPI and AVGWIDTH too.
 -
 -      * lisp.h (Fstring_to_unibyte): EXFUN it.
 -
 -      * character.h (str_to_unibyte): Extern it.
 -
 -      * character.c (str_to_unibyte): New function.
 -
 -      * fns.c (Fstring_to_unibyte): New function.
 -      (syms_of_fns): Defsubr it.
 -
 -2008-06-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_score): Even if the PIXEL_SIZE is the same, check
 -      DPI too.
 -      (font_sort_entites): Setup prefer_prop[FONT_DPI_INDEX] too.
 -
 -2008-06-24  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in (${lispsource}loaddefs.el): Rename from
 -      ../lisp/loaddefs.el.
 -      (bootstrap-clean): Do what distclean does but don't remove
 -      Makefile.
 -      (distclean): Depend on bootstrap-clean and remove Makefile.
 -
 -2008-06-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * buffer.h (struct buffer): New member word_wrap.
 -
 -      * buffer.c (syms_of_buffer): New variables default-word-wrap and
 -      word-wrap.
 -      (init_buffer_once): Initialize them.
 -
 -      * dispextern.h (struct it): Replace bool truncate_lines_p with a
 -      line_wrap enum possessing three possible values.
 -
 -      * termopts.h: Replace truncate_partial_width_windows with
 -      Vtruncate_partial_width_windows.
 -
 -      * dispnew.c (direct_output_for_insert): Avoid direct output when
 -      inserting a space with word wrap on.
 -
 -      * indent.c (compute_motion): Obey integer values of
 -      truncate-partial-width-windows.
 -
 -      * xdisp.c (Vtruncate_partial_width_windows): New Lisp_Object,
 -      replacing truncate_partial_width_windows.
 -      (init_iterator): If Vtruncate_partial_width_windows is an integer,
 -      truncate only if the window width is below that integer.
 -      (start_display, resize_mini_window, produce_stretch_glyph)
 -      (display_string, move_it_in_display_line_to): Use line_wrap.
 -      (back_to_previous_visible_line_start, reseat_1): Reset
 -      string_from_display_prop_p.
 -      (display_line): Extend default face to end of line when wrapping.
 -
 -2008-06-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (display_line, move_it_in_display_line_to): Add ability
 -      to wrap continued lines at word boundaries.
 -
 -2008-06-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * font.c (Ffont_face_attributes): Multiply pixel size before point
 -      conversion to avoid multiplying rounding error.
 -
 -2008-06-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_draw_glyph_string_background)
 -      (x_draw_glyph_string): Remove old bdf font code.
 -
 -      * w32term.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE): Remove.
 -
 -2008-06-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_find_for_lface): Try the adstyle specified in
 -      the property of LFACE_FONT of LFACE (if any).
 -
 -2008-06-21  Seiji Zenitani  <zenitani@mac.com>
 -          Ryo Yoshitake  <ryo@shiftmode.net>
 -
 -      * xterm.c (x_set_frame_alpha): Add x_catch_errors for bug#437.
 -
 -2008-06-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in (${lisp} ${SOME_MACHINE_LISP}, ../lisp/loaddefs.el):
 -      Use $(BOOTSTRAPEMACS) rather than witness-emacs.
 -      (bootstrap-emacs${EXEEXT}): Merge witness-emacs into it.
 -      (witness-emacs): Remove.
 -      (lisp, shortlisp): Move loaddefs.el earlier.
 -      (mostlyclean): Forget about witness-emacs.
 -
 -2008-06-22  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (witness-emacs): Depend on temacs${EXEEXT}.
 -      (.SUFFIXES): Declare .el.elc as a suffix rule, for non-GNU makes.
 -
 -2008-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in (PRECOMP): Remove.
 -      (${lisp} ${SOME_MACHINE_LISP}): Remove pseudo dependency on PRECOMP.
 -      (witness-emacs): Run `compile-first'.
 -      (.el.elc): Use the new compile-onefile target.
 -
 -2008-06-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): Handle QCembolden only when
 -      FC_EMBOLDEN is defined.
 -
 -2008-06-21  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in (witness-emacs): Use ../lisp, not $(lispsource).
 -      (.el.elc): Likewise.
 -
 -2008-06-21  Miles Bader  <miles@gnu.org>
 -
 -      * Makefile.in (../lisp/loaddefs.el): Build autoloads in the lisp
 -      build dir, not the lisp source dir.
 -
 -2008-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in (emacs${EXEEXT}): Link the new emacs to bootstrap-emacs.
 -      (bootstrapclean): Remove.
 -      (.el.elc): New rule.
 -      (PRECOMP): New var.
 -      (../lisp/subdirs.el): Remove.
 -      (bootstrap-emacs${EXEEXT}): Remove subdirs.el and charpro.el dependency.
 -      (witness-emacs): New target.
 -      (mostlyclean): Remove witness-emacs as well.
 -      (../lisp/loaddefs.el, ${lisp} ${SOME_MACHINE_LISP}):
 -      Add witness-emacs dependency.
 -
 -2008-06-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (Ffont_face_attributes): Omit key-attribute pairs not
 -      defined by the font.
 -
 -2008-06-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in (emacs${EXEEXT}): Depend on the machine-specific files.
 -      (bootstrap-clean): New target that keeps TAGS around.
 -      (../lisp/subdirs.el, ../lisp/loaddefs.el): New targets.
 -      (bootstrap-emacs${EXEEXT}): Depend on subdirs.el.
 -
 -2008-06-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c, w32term.c, w32term.h, w32gui.h [OLD_FONT]:
 -      Remove obsolete font code.
 -
 -      * w32font.c (font_matches_spec): Use csb bitfield from font signature
 -      to determine language support.
 -
 -2008-06-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * sysdep.c (cfsetspeed): New fun extracted from the code.
 -      (cfmakeraw): Move before first use.
 -
 -2008-06-20  Angelo Graziosi  <angelo.graziosi@alice.it>  (tiny change)
 -
 -      * sysdep.c (cfmakeraw): Provide fallback implementation.
 -      (serial_configure): Provide fallback implementation of cfsetspeed.
 -
 -2008-06-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): Add FOUNDRY, SPACING, DPI, SCALABLE to
 -      the pattern.
 -
 -      * fontset.c (fontset_from_font): Copy font_spec before changing
 -      the elements.
 -
 -      * xfns.c (x_default_font_parameter): Try "monospace-12" too.
 -
 -2008-06-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * w32fns.c, xfns.c (x_default_font_parameter): Only set `font-param'
 -      for explicit `font' parameters.
 -
 -      * frame.c (x_set_font): Remove unexplained call to fix inf-recursion.
 -
 -2008-06-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * frame.c: Include <ctype.h>.
 -      (x_set_font_backend): Allow spacing characters in the X resource
 -      for FontBackend.
 -
 -2008-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * w32fns.c, xfns.c (Qfont_param): New var.
 -      (syms_of_w32fns): Initialize it.
 -      (x_default_font_parameter): Record explicit `font' into
 -      `font-parameter'.
 -
 -2008-06-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_parse_xlfd): Fix previous change.
 -      (font_parse_fcname): Don't use :fc-unknown-spec.
 -      (FRAME_X_DISPLAY_INFO): Be sure to have at least 1 pixel height.
 -      (Fcopy_font_spec): Preserve the order of elements in FONT_EXTRA.
 -      (font_add_log): Prepend the driver name to the resulting fonts.
 -
 -      * ftfont.c (ftfont_pattern_entity): New arg extra.  Caller changed.
 -      (ftfont_spec_pattern): Don't check QCfc_unknown_spec and QCname.
 -      (ftfont_list) [FC_FONTFORMAT]: Include FC_FONTFORMAT in objset.
 -
 -      * xftfont.c (QChinting , QCautohint, QChintstyle, QCrgba)
 -      (QCembolden): New variables.
 -      (syms_of_xftfont): DEFSYM them.
 -      (xftfont_open): Call XftFontMatch.  Don't trust the result of
 -      XftTextExtents8 if the pixel_size is less than 5.
 -
 -2008-06-18  Andreas Schwab  <schwab@suse.de>
 -
 -      * font.c (Ffont_face_attributes): Only define if HAVE_WINDOW_SYSTEM.
 -      (syms_of_font): Only defsubr if HAVE_WINDOW_SYSTEM.
 -
 -2008-06-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_list, w32font_match): Add logging.
 -
 -      * w32uniscribe.c (uniscribe_list, uniscribe_match): Add logging.
 -
 -2008-06-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Store divider characters for
 -      unknown-spec list.  For known key symbols, intern using correct
 -      symbol name.
 -
 -2008-06-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (realize_default_face): If the frame is not on window
 -      system, set the fontset of face to nil.
 -
 -2008-06-17  Naohiro Aota  <nao.aota@gmail.com>  (tiny change)
 -
 -      * fontset.c (fontset_pattern_regexp): Escape some reg-expr characters.
 -
 -2008-06-16  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * dispextern.h (lookup_non_ascii_face, split_font_name_into_vector)
 -      (build_font_name_from_vector): Delete externs.
 -
 -      * xfaces.c (struct font_name): Don't declare.
 -
 -2008-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * font.c (font_unparse_gtkname): Use EQ to compare Lisp_Objects.
 -
 -2008-06-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Fix handling of unknown-spec string.
 -
 -2008-06-16  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * font.c (Ffont_spec): Fix usage in docstring.
 -      (Ffont_face_attributes): Doc fix.
 -
 -2008-06-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * font.c (Ffont_face_attributes): Fix definition.
 -
 -2008-06-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * font.h (font_style_symbolic_from_value): Remove.
 -
 -      * font.c (font_style_symbolic_from_value): Remove.
 -      (font_style_symbolic): Revert to pre 2008-06-13 version.
 -
 -      * w32font.c (w32_to_fc_weight): New function.
 -      (w32font_full_name, logfont_to_fcname): Use it.
 -
 -2008-06-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_check_object): Delete it.
 -      (font_clear_cache): Check if a font-object is alive.
 -      (font_open_entity): Likewise.  Set FONT_OBJLST_INDEX of a
 -      font-object to nil.
 -      (font_close_object): Don't check FONT_CLOSE_OBJECT.
 -      (font_at): Don't call font_check_object.
 -      (Ffont_get): Return a symbol for :weight, :slant, and :width.
 -
 -2008-06-16  Katsumi Yamaoka  <yamaoka@jpl.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1230000.
 -
 -2008-06-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Correctly parse KEY=VAL values.
 -
 -2008-06-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Only one decimal point.
 -      (font_unparse_fcname): Handle data in family and foundry indices
 -      as symbols, not strings.
 -      (font_unparse_gtkname, Ffont_face_attributes): New functions.
 -
 -      * xfns.c (Fx_select_font): Give GTK font dialog the default font name.
 -
 -      * font.h (font_unparse_gtkname): Add prototype.
 -
 -2008-06-15  Naohiro Aota  <nao.aota@gmail.com>  (tiny change)
 -
 -      * fontset.c (fontset_pattern_regexp): Escape `+' characters in pattern.
 -
 -2008-06-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * font.c (font_update_drivers): Fix crash when no drivers match.
 -
 -2008-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xfns.c (Fx_create_frame): internal-border-width default to 0 for Gtk.
 -      * gtkutil.c (xg_create_frame_widgets): Don't set internal_border_width.
 -
 -2008-06-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (syms_of_xdisp): Default underline-minimum-offset to 1.
 -
 -2008-06-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (Fserial_process_configure, Fprocess_send_eof):
 -      Use EQ to compare Lisp_Objects.
 -
 -2008-06-13  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fw32_select_font): Remove old font API function.
 -
 -      * w32font.c (logfont_to_fcname): New function.
 -      (Fx_select_font): New font dialog function compatible with
 -      GTK/fontconfig version.
 -
 -      * font.c (font_style_symbolic_from_value): New function.
 -      (font_style_symbolic): Use it.
 -
 -      * font.h (font_style_symbolic_from_value): Declare new function.
 -
 -2008-06-13  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * font.c (syms_of_font) <font-weight-table, font-slant-table>:
 -      <font-width-table>: Fix typos in docstrings.
 -
 -2008-06-13  Daniel Engeler  <engeler@gmail.com>
 -
 -      These changes add serial port access.
 -      * process.c: Add HAVE_SERIAL.
 -      (Fdelete_process, Fprocess_status, Fset_process_buffer)
 -      (Fset_process_filter, Fset_process_sentinel, Fprocess_contact)
 -      (list_processes_1, select_wrapper, Fstop_process)
 -      (Fcontinue_process, Fprocess_send_eof, kill_buffer_processes)
 -      (status_notify): Modify to handle serial processes.
 -      [HAVE_SERIAL] (Fserial_process_configure)
 -      [HAVE_SERIAL] (make_serial_process_unwind, Fmake_serial_process):
 -      New functions.
 -      * process.h (struct Lisp_Process): Add `type'.
 -      * sysdep.c [HAVE_TERMIOS] (serial_open, serial_configure):
 -      New functions.
 -      * w32.c (_sys_read_ahead, sys_read, sys_write): Modify to handle
 -      serial ports.
 -      (serial_open, serial_configure): New functions.
 -      * w32.h: Add FILE_SERIAL.
 -      (struct _child_process): Add ovl_read, ovl_write.
 -
 -2008-06-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * dispextern.h (enum lface_attribute_index): New member
 -      LFACE_FOUNDRY_INDEX.
 -
 -      * font.c (font_score): Delete arg alternate_families.  Check only
 -      weight, slant, width, and size.  Ignore the difference of alias
 -      style symbols.
 -      (font_sort_entites): Adjust for the above change.  Reflect the
 -      order of font-driver to scores.
 -      (font_list_entities): Don't check alternate_familes here.
 -      (font_clear_prop): Handle foundry.
 -      (font_update_lface): Don't parse "foundry-family" form here.
 -      Handle FONT_FOUNDRY_INDEX.
 -      (font_find_for_lface): Likewise.  Handle alternate families here.
 -      If registry is nil, try iso8859-1 and ascii-0.
 -      (font_open_for_lface): Pay attention to size in ENTITY.
 -      (font_open_by_name): Simplify by calling font_load_for_lface.
 -      (free_font_driver_list): Delete it.
 -      (font_update_drivers): Preserve the order of backends.
 -      (syms_of_font): Setting of sort_shift_bits adjusted for the change
 -      of font_score and font_sort_entites.
 -      (font_update_sort_order): Likewise.
 -
 -      * xfaces.c (LFACE_FOUNDRY): New macro.
 -      (check_lface_attrs): Check foundry.
 -      (set_lface_from_font): Don't parse "FOUNDRY-FAMILY" form.
 -      (merge_face_vectors): Check foundry.
 -      (merge_face_ref): Likewise.
 -      (Finternal_set_lisp_face_attribute): Likewise.
 -      (x_update_menu_appearance): Likewise.
 -      (Finternal_get_lisp_face_attribute): Likewise.
 -      (lface_hash): Likewise.
 -      (lface_same_font_attributes_p): Likewise.
 -      (x_supports_face_attributes_p): Likewise.
 -      (tty_supports_face_attributes_p): Likewise.
 -      (Finternal_set_alternative_font_family_alist): Intern strings.
 -      (Finternal_set_alternative_font_registry_alist): Downcase strings.
 -      (realize_default_face): Set LFACE_FOUNDRY (lface).
 -
 -      * xfns.c (Fx_create_frame, x_create_tip_frame): Register X
 -      font-driver at first.
 -
 -      * ftfont.c (ftfont_font_format) [! FC_FONTFORMAT]: Declare "int len;".
 -
 -2008-06-12  Emanuele Giaquinta  <emanuele.giaquinta@gmail.com>  (tiny change)
 -
 -      * lread.c (Fload): Use xfree, not free on saved_doc_string.
 -
 -2008-06-12  Jim Meyering  <meyering@redhat.com>
 -
 -      Make unexec_free handle NULL the same way free does.
 -      * unexmacosx.c (unexec_free): Ignore a NULL argument.
 -
 -2008-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * character.h (CHAR_TO_BYTE_SAFE): New macro.
 -      * character.c (Fmultibyte_char_to_unibyte): Obey the docstring.
 -      * regex.c (RE_CHAR_TO_UNIBYTE): Use the new macro.
 -      (WEAK_ALIAS): Simplify.
 -      * syntax.c (skip_chars): Don't mark non-byte chars in the fastmap
 -      when searching a unibyte buffer.
 -
 -2008-06-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (Fx_select_font): Rename from x-font-dialog.
 -
 -2008-06-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32font.c: Include ctype.h.
 -
 -2008-06-11  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_encode_char): Detect missing glyphs that are
 -      misreported as space.
 -      (add_font_entity_to_list): Support unicode-bmp and unicode-sip
 -      as aliases for registry iso10646-1.
 -
 -2008-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (clone_per_buffer_values): Skip `name'.
 -
 -2008-06-11  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Fix last change; accept decimal
 -      points in font size.
 -
 -2008-06-10  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (add_opentype_font_name_to_list):
 -      Skip non unicode fonts.
 -
 -2008-06-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (Fx_font_dialog): New function.
 -
 -      * gtkutil.c (xg_dialog_response_cb): Rename from
 -      xg_file_response_callback.
 -      (pop_down_dialog): Rename from pop_down_file_dialog.
 -      (xg_get_file_name): Callers changed.
 -      (xg_get_font_name): New function.
 -
 -      * gtkutil.h (xg_get_font_name): Insert prototype.
 -
 -2008-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (underline_minimum_offset): Rename from xterm.c's
 -      x_underline_minimum_display_offset.
 -      (syms_of_xdisp): Declare it here rather than in xterm.c.
 -      * dispextern.h (underline_minimum_offset): Declare it.
 -      * w32term.c (x_draw_glyph_string): Use it.
 -      * xterm.c (x_underline_minimum_display_offset): Move to xdisp.c.
 -      (syms_of_xterm): Don't declare it any more.
 -      (x_draw_glyph_string): Adjust to the new name.
 -
 -2008-06-10  David De La Harpe Golden  <david@harpegolden.net>
 -
 -      * xterm.c (x_underline_minimum_display_offset): New var.
 -      (x_draw_glyph_string): Use it.
 -      (syms_of_xterm): Declare it.
 -
 -2008-06-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * font.c (font_parse_fcname): Accept GTK-style font names too.
 -
 -2008-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (file_name_completion): Don't return t if the match is exact
 -      but with different capitalization.
 -      * minibuf.c (Ftry_completion): Simplify.
 -
 -      * window.c (Vwindow_point_insertion_type): New var.
 -      (set_window_buffer): Use it.
 -      (syms_of_window): Init and export it to Lisp.
 -
 -2008-06-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (font_intern_prop): Prototype adjusted.
 -
 -      * font.c (font_intern_prop): New arg force_symbol.
 -      (font_parse_xlfd, font_parse_fcname, font_parse_family_registry):
 -      Adjust for the change of font_intern_prop.
 -
 -      * ftfont.c (ftfont_pattern_entity):
 -      * w32font.c (add_font_name_to_list, w32_enumfont_pattern_entity)
 -      (w32_registry):
 -      * w32uniscribe.c (add_opentype_font_name_to_list): Adjust for
 -      the change of font_intern_prop.
 -
 -2008-06-09  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32menu.c (digest_single_submenu): Declare extern.
 -
 -2008-06-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_make_frame_visible): Use alternate restore flags.
 -
 -      * w32menu.c (Fx_popup_menu): Unwind protect while building menu.
 -      (parse_single_submenu): Remove.
 -      (digest_single_submenu): Remove.
 -      (syms_of_w32menu): Don't initialise variables that have moved
 -      to menu.c.
 -      (set_frame_menubar): Sync with version in xmenu.c.
 -      (w32_menu_show): Sync with xmenu_show in xmenu.c.
 -
 -      * menu.c (single_keymap_panes, push_menu_pane, push_menu_item):
 -      Make static again.
 -
 -2008-06-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      Changes to w32 files related to the move of common menu code
 -      to menu.c on 2008-06-08 by Chong Yidong.
 -
 -      * menu.c [HAVE_NTGUI]: Include w32term.h, move widget related
 -      defs to w32gui.h.
 -      (single_keymap_panes, push_menu_item, push_menu_pane):
 -      Make globally visible.
 -
 -      * w32menu.c (enum button_type, widget_value, local_heap, local_alloc)
 -      (local_free, malloc_widget_value, free_widget_value)
 -      (MENU_ITEMS_ITEM_NAME, MENU_ITEMS_ITEM_ENABLE, MENU_ITEMS_ITEM_VALUE)
 -      (MENU_ITEMS_ITEM_EQUIV_KEY, MENU_ITEMS_ITEM_DEFINITION)
 -      (MENU_ITEMS_ITEM_TYPE, MENU_ITEMS_ITEM_SELECTED, MENU_ITEMS_ITEM_HELP)
 -      (MENU_ITEMS_ITEM_LENGTH, enum menu_item_idx): Remove defs.
 -      (menu_items, menu_items_allocated, menu_items_used)
 -      (menu_items_n_panes, menu_items_submenu_depth): Remove global vars.
 -      (init_menu_items, finish_menu_items, discard_menu_items)
 -      (grow_menu_items, push_submenu_start, push_submenu_end)
 -      (push_left_right_boundary, push_menu_pane, push_menu_item)
 -      (keymap_panes, single_keymap_panes, list_of_panes, list_of_items)
 -      (free_menubar_widget_tree_value, parse_single_submenu)
 -      (update_submenu_strings): Remove functions.
 -      (xmalloc_widget_value): Remove and declare extern.
 -
 -      * makefile.w32-in ($(SRC)/menu.$(O)): New target.
 -      (OBJ1): Build it.
 -
 -      * w32gui.h (widget_value, XtPointer, Boolean, enum button_type)
 -      (local_heap, local_alloc, local_free, malloc_widget_value)
 -      (free_widget_value): Define here.
 -
 -2008-06-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (Qascii_0): Extern it.
 -
 -      * font.c (Qascii_0): New variable.
 -      (syms_of_font): DEFSYM it.
 -      (font_open_by_name): If the registry "iso8859-1" fails, try also
 -      "ascii-0".
 -
 -      * ftfont.c (ftfont_spec_pattern): Accept the registry `ascii-0'.
 -
 -2008-06-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * .gdbinit (xfont): New command.
 -
 -2008-06-08  Andreas Schwab  <schwab@suse.de>
 -
 -      * menu.c [HAVE_X_WINDOWS]: Include "xterm.h".
 -      * Makefile.in (menu.o): Update dependencies.
 -
 -      * Makefile.in (obj): Always add menu.o.
 -      * emacs.c (main): Always call syms_of_menu.
 -      * keyboard.h: Remove extra #ifdef HAVE_X_WINDOW.
 -
 -2008-06-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Makefile.in: Compile menu.c.
 -
 -      * lisp.h: Declare syms_of_menu.
 -
 -      * emacs.c (main): Call syms_of_menu.
 -
 -      * keyboard.h: Relocate platform-independent menu definitions from
 -      xmenu.c.
 -
 -      * menu.c: New file.  Relocate platform-independent menu
 -      definitions from xmenu.c.  Suggested by Adrian Robert.
 -
 -      * xmenu.c: Remove platform-independent menu definitions.
 -      (menu_items menu_items_inuse, menu_items_allocated)
 -      (menu_items_used, menu_items_n_panes)
 -      (menu_items_submenu_depth): Move to keyboard.h.
 -      (init_menu_items, finish_menu_items, unuse_menu_items)
 -      (discard_menu_items, restore_menu_items, save_menu_items)
 -      (grow_menu_items, push_submenu_start, push_submenu_end)
 -      (push_left_right_boundary, push_menu_pane, push_menu_item)
 -      (keymap_panes, single_keymap_panes, single_menu_item)
 -      (list_of_panes, list_of_items, find_and_call_menu_selection)
 -      (xmalloc_widget_value, free_menubar_widget_value_tree)
 -      (parse_single_submenu, digest_single_submenu)
 -      (update_submenu_strings): Move to menu.c.
 -
 -2008-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dispnew.c (Flast_nonminibuf_frame): Handle the NULL case.
 -
 -2008-06-06  Miles Bader  <miles@gnu.org>
 -
 -      * xdisp.c (x_produce_glyphs): Calculate tab width based on current
 -      face, not frame default.
 -
 -2008-06-05  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (pop_up_windows, pop_up_frames)
 -      (display_buffer_reuse_frames, Vpop_up_frame_function)
 -      (Vdisplay_buffer_function, Veven_window_heights)
 -      (Vspecial_display_buffer_names, Vspecial_display_regexps)
 -      (Vspecial_display_function, Vsame_window_buffer_names)
 -      (Vsame_window_regexps, split_height_threshold)
 -      (Vsplit_window_preferred_function): Move those vars to window.el.
 -      (display_buffer_1, Fspecial_display_p, Fsame_window_p)
 -      (Fdisplay_buffer): Move those functions to window.el.
 -      (syms_of_window): Remove corresponding declarations.
 -      (display_buffer): New function.
 -      (temp_output_buffer_show, Fother_window_for_scrolling): Use it.
 -      * dispnew.c (Flast_nonminibuf_frame): New function.
 -      * buffer.c (Fpop_to_buffer): Move to window.el.
 -
 -2008-06-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * data.c (set_internal): Fix up call to let_shadows_buffer_binding_p.
 -
 -2008-06-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding): Fix previous change.
 -      (detect_coding_system): Likewise.
 -
 -2008-06-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * character.h (MAKE_CHAR_MULTIBYTE): Check the arg is a (uni)byte.
 -
 -      * keymap.c (Vminibuffer_local_filename_must_match_map):
 -      Rename from Vminibuffer_local_must_match_filename_map.
 -      (syms_of_keymap):
 -      * minibuf.c (Fcompleting_read): Adjust accordingly.
 -      * commands.h: Rename declaration as well.
 -
 -2008-06-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (Ffont_spec): Don't use font_parse_family_registry for
 -      family name.
 -      (Ffont_put): Likewise.
 -
 -      * fontset.c (fontset_find_font): Call font_open_for_lface with the
 -      current font-spec.
 -
 -      * xfont.c (xfont_list): Don't set registry to iso8859-1 even if it
 -      is unspecified.
 -
 -      * xfaces.c (realize_x_face): If the font-related face attributes
 -      are the same as those of default face, realize a new fontset from
 -      default->fontset.
 -      (Fx_family_fonts): Use font_parse_family_registry instead of Ffont_put.
 -
 -2008-06-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (move_it_in_display_line_to): Improve the type of its args.
 -      (move_it_in_display_line): New wrapper.
 -
 -      * window.c (window_scroll_pixel_based_preserve_x)
 -      (window_scroll_preserve_hpos, window_scroll_preserve_vpos): New vars.
 -      (window_scroll_pixel_based, window_scroll_line_based):
 -      Use them to preserve column positions.
 -      (syms_of_window): Initialize them.
 -
 -      * indent.c (Fvertical_motion): Extend first arg to allow passing an
 -      (HPOS . VPOS) pair.
 -
 -      * dispextern.h (move_it_in_display_line): Declare.
 -
 -2008-06-05  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fwindow_parameter): Return VALUE, not (PARAMETER . VALUE).
 -      (Fwindow_parameters): Return copy of parameter alist.  Doc fix.
 -      (Fset_window_parameter): Return VALUE, not parameter alist.  Doc fix.
 -
 -2008-06-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fset_window_parameter): Doc fix.
 -      (Fwindow_parameters, Fwindow_parameter): Remove redundant check.
 -
 -2008-06-04  Joakim Verona  <joakim@verona.se>
 -
 -      * window.h (struct window): Add new member window_parameters.
 -
 -      * window.c (Fwindow_parameters, Fwindow_parameter)
 -      (Fset_window_parameter): New defuns.
 -      (syms_of_window): Defsubr the new defuns.
 -      (make_window): Initialize window_parameters to nil.
 -
 -2008-06-04  John Paul Wallington  <jpw@pobox.com>
 -
 -      * eval.c (Fdefmacro): Doc fix.
 -
 -2008-06-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding): Fix handling of coding->head_ascii.
 -      Be sure to call setup_coding_system when we find a proper coding system.
 -      (detect_coding_system): Fix handling of coding->head_ascii.
 -
 -2008-06-03  Andreas Schwab  <schwab@suse.de>
 -
 -      * font.c (font_prop_validate_spacing): Fix last change.
 -
 -2008-06-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_prop_validate_spacing): Handle uppercase symbols.
 -      (font_parse_fcname): Fix handling of unknown key.
 -
 -      * xfont.c (xfont_list): Try an alias.
 -
 -      * charset.c (char_charset): Return NULL if the arg charset_list is
 -      specified and C doesn't belong to any of them.
 -
 -2008-06-02  Chip Coldwell  <coldwell@redhat.com>
 -
 -      * font.c (font_pixel_size): Don't take cdr of an integer.
 -
 -2008-06-02  Jim Meyering  <meyering@redhat.com>
 -
 -      Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
 -      * alloc.c (xfree): Return right away for a NULL arg.
 -      * lread.c (nosuffix): Remove now-useless if-before-xfree tests.
 -      * gtkutil.c (xg_gtk_scroll_destroy): Likewise.
 -      * mac.c (create_apple_event_from_event_ref): Likewise.
 -      (create_apple_event_from_drag_ref, cfstring_create_normalized):
 -      Likewise.
 -      * doprnt.c (doprnt1): Likewise.
 -      * frame.c (frame): Likewise.
 -      * keyboard.c (wipe_kboard): Likewise.
 -      * macterm.c (x_free_frame_resources, xlfdpat_destroy, XFreePixmap)
 -      (init_font_name_table, mac_unload_font, x_delete_display): Likewise.
 -      * term.c (tty_default_color_capabilities, maybe_fatal)
 -      (delete_tty): Likewise.
 -      * w16select.c (string): Likewise.
 -      * w32.c (w32_get_resource, SET_ENV_BUF_SIZE): Likewise.
 -      * w32bdf.c (w32_free_bdf_font): Likewise.
 -      * w32fns.c (w32_unload_font): Likewise.
 -      * w32font.c (w32font_close): Likewise.
 -      * window.c (size_window): Likewise.
 -      * xselect.c (receive_incremental_selection): Likewise.
 -      * xterm.c (x_free_frame_resources, x_delete_display): Likewise.
 -      * mactoolbox.c (create_apple_event_from_drag_ref): Likewise.
 -      * w32.c (stat): Likewise.
 -
 -      Remove useless if-before-free tests.
 -      * editfns.c (Fset_time_zone_rule): Likewise.
 -      * lread.c (nosuffix): Likewise.
 -      * ralloc.c (get_bloc): Likewise.
 -      * regex.c (reg_free): Likewise.
 -      * xftfont.c (xftfont_open, xftfont_close): Likewise.
 -      * xrdb.c (get_user_app, get_environ_db, x_load_resources): Likewise.
 -      * xsmfns.c (smc_save_yourself_CB): Likewise.
 -
 -2008-06-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_find_for_lface): Handle float font size.
 -      (font_open_for_lface): Likewise.
 -
 -      * xfaces.c (x_supports_face_attributes_p): Check face->font before
 -      comparing the properties.
 -
 -2008-06-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32_enumfont_pattern_entity): Use requested registry.
 -      Treat iso10646-1 and Windows DEFAULT_CHARSET specially.
 -      Duplicate iso8859-1 fonts as iso10646-1 if no registry specified.
 -      Don't add empty script list.
 -      (w32_registry): Only map DEFAULT_CHARSET to iso10646-1 here.
 -
 -2008-06-01  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (dot, dotdot): Remove, update users.
 -      ".." has been used elsewhere in the file for a long time.
 -      (LIBXT_STATIC): Remove conditional based on unused variable.
 -
 -2008-06-01  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (Vface_remapping_alist): New variable.
 -      (syms_of_xfaces): Initialize it.
 -      (enum named_merge_point_kind): New type.
 -      (struct named_merge_point): Add `named_merge_point_kind' field.
 -      (push_named_merge_point): Make cycle detection respect different
 -      named-merge-point kinds.
 -      (lface_from_face_name_no_resolve): Rename from `lface_from_face_name'.
 -      Remove face-name alias resolution.
 -      (lface_from_face_name): New definition using
 -      `lface_from_face_name_no_resolve'.
 -      (get_lface_attributes_no_remap): Rename from `get_lface_attributes'.
 -      Call lface_from_face_name_no_resolve instead of lface_from_face_name.
 -      (get_lface_attributes): New definition that layers face-remapping on
 -      top of get_lface_attributes_no_remap.  New arg `named_merge_points'.
 -      (lookup_basic_face): New function.
 -      (lookup_derived_face): Pass new last arg to `get_lface_attributes'.
 -      (realize_named_face): Call `get_lface_attributes_no_remap' instead of
 -      `get_lface_attributes'.
 -      (face_at_buffer_position): Use `lookup_basic_face' to lookup
 -      DEFAULT_FACE_ID if necessary.  When optimizing the default-face case,
 -      return default_face's face-id instead of the constant DEFAULT_FACE_ID.
 -
 -      * xdisp.c (init_iterator): Pass base_face_id through
 -      `lookup_basic_face' when we actually use it as a face-id.
 -      (handle_single_display_prop): Use `lookup_basic_face' to lookup
 -      DEFAULT_FACE_ID.
 -
 -      * fontset.c (Finternal_char_font): Use `lookup_basic_face' to
 -      lookup the initial face-id.
 -
 -      * dispextern.h (lookup_basic_face, Vface_remapping_alist): New decls.
 -
 -2008-06-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * textprop.c (syms_of_textprop) <text-property-default-nonsticky>:
 -      (Fremove_text_properties): Fix typos in docstrings.
 -
 -2008-05-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_list_entities): Fix the car part of data to be
 -      stored in the cache.
 -
 -      * ftfont.c (ftfont_font_format): Don't use strcasestr.
 -
 -2008-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * chartab.c (Foptimize_char_table, optimize_sub_char_table):
 -      Add a `test' argument so another predicate than `equal' can be used.
 -      (map_sub_char_table): Use `eq' rather than `equal' to merge ranges.
 -      (map_char_table): Remove unused vars `c' and `i'.
 -      * lisp.h (Foptimize_char_table): Adjust declaration.
 -      * charset.c (Fclear_charset_maps): Adjust call to Foptimize_char_table.
 -
 -2008-05-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (Ffont_info): Define only if HAVE_WINDOW_SYSTEM is defined.
 -      (syms_of_font): Defsubr Sfont_info only if HAVE_WINDOW_SYSTEM is
 -      defined.
 -
 -2008-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * data.c (Fmake_variable_buffer_local, Fmake_local_variable)
 -      (Fmake_variable_frame_local): Disallow mixing buffer-local and
 -      frame-local settings for the same variable.
 -
 -2008-05-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Ffont_info): Move to font.c.
 -      (syms_of_fontset): Delete defsubr of Sfont_info.
 -
 -      * font.c (font_style_to_value, font_score): Delete casting of the
 -      args to xstcasecmp.
 -      (register_font_driver): Increment num_font_drivers only when
 -      registering the driver globally.
 -      (Ffont_info): Move from fontset.c.  Handle a font object too.
 -      (syms_of_font): Defsubr Sfont_info.
 -
 -2008-05-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.h (enum define_coding_utf8_arg_index): New enum.
 -      (enum coding_attr_index): Change coding_attr_utf_16_bom to
 -      coding_attr_utf_bom.
 -      (enum utf_bom_type): Rename from utf_16_bom_type.
 -      (struct utf_16_spec): Adjust for the above change.
 -      (struct coding_system): Add utf_8_bom in `spec' union.
 -
 -      * coding.c (CODING_UTF_8_BOM): New macro.
 -      (enum coding_category): Delete coding_category_utf_8, add
 -      coding_category_utf_8_auto, coding_category_utf_8_nosig, and
 -      coding_category_utf_8_sig.
 -      (CATEGORY_MASK_UTF_8): Delete it.
 -      (CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
 -      (CATEGORY_MASK_UTF_8_SIG): New macros.
 -      (CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
 -      CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
 -      CATEGORY_MASK_UTF_8_SIG.
 -      (CATEGORY_MASK_UTF_8): New macro.
 -      (UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
 -      (detect_coding_utf_8): Check BOM.
 -      (decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
 -      (decode_coding_utf_16): Adjust for the change of enum utf_bom_type.
 -      (encode_coding_utf_16): Likewise.
 -      (setup_coding_system): Likewise.  Set CODING_UTF_8_BOM (coding).
 -      (detect_coding, detect_coding_system): Handle utf-8-auto.
 -      (Fdefine_coding_system_internal): Handle `bom' property for utf-8.
 -      (syms_of_coding): Fix setting up of Vcoding_category_table.
 -
 -2008-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (Faccept_process_output): If `millisec' is non-nil,
 -      `seconds' default to 0.
 -      (wait_reading_process_output): Also return non-nil if we read output
 -      from a non-running process.
 -
 -2008-05-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open_internal): Prefer truetype fonts unless
 -      `raster' specified.
 -      (add_font_entity_to_list): Allow non-opentype truetype fonts back
 -      in the uniscribe backend, but disallow any font that has no
 -      unicode subrange support.
 -
 -2008-05-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xfaces.c (Fx_list_fonts, Finternal_copy_lisp_face):
 -      Fix typos in docstrings.
 -
 -2008-05-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (Fx_list_fonts): Make it return a list of font names.
 -      (Fx_family_fonts): Set frame correctly.
 -
 -2008-05-28  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_draw_glyph_string): Use clipmask if specified.
 -
 -2008-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fwrite_region): Delay the defaulting to beg&z to after
 -      calling build_annotations.
 -
 -2008-05-28  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * coding.c (Fdecode_coding_region, Fencode_coding_region)
 -      (Fencode_coding_string):
 -      (syms_of_coding) <coding-system-for-read, coding-system-for-write>:
 -      <latin-extra-code-table>: Fix typos in docstrings.
 -      (syms_of_coding) <coding-system-alist>: Doc fix.
 -      (syms_of_coding) <translation-table-for-input>: Reflow docstring.
 -
 -2008-05-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Ffont_info): Don't call font_close_object.
 -
 -      * font.c (font_parse_family_registry): Use Ffont_put to validate
 -      foundry and family.
 -      (font_delete_unmatched): Don't check spacing.
 -      (font_list_entities): Add spacing to the spec to list fonts.
 -
 -      * ftfont.c (ftfont_spec_pattern): Don't set FC_SPACING to pattern.
 -      (ftfont_list): Check spacing here.  Don't include FC_CHARSET in objset.
 -
 -      * coding.c (encode_coding_raw_text): Fix previous change.
 -      (encode_coding_object): When the dst_object is a buffer and is
 -      different from src_object, move gap to PT.
 -
 -2008-05-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_draw_glyph_string): If a clipmask is specified, use it.
 -
 -2008-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * coding.c (encode_coding_raw_text): Set coding->produced_char for
 -      all branches.  Compute it differently.
 -
 -      * xdisp.c [!HAVE_WINDOW_SYSTEM]: Include font.h for --without-x.
 -
 -2008-05-27  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32font.c (compute_metrics): Rewrite an "else { if () ... else ... }"
 -      into "else if () ... else ...".
 -
 -2008-05-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open_internal): Determine if glyph indices
 -      are likely to work here.
 -
 -2008-05-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (draw_glyphs): If mouse-highlighting is on, attempt to
 -      draw overlap glyphs with appropriate highlighting.
 -
 -2008-05-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_open): Fix calculation of font->average_width.
 -
 -2008-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * casefiddle.c (casify_object): Try to guess better whether the
 -      argument is a byte or a char.
 -
 -2008-05-26  Andreas Schwab  <schwab@suse.de>
 -
 -      * xselect.c (x_reply_selection_request): Properly handle format == 32.
 -      Always send multiples of format size.
 -
 -      * xterm.c (x_set_frame_alpha): Fix type mismatch.
 -
 -2008-05-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_text_extents): Zero whole metrics struct first.
 -      (compute_metrics): Don't set failure if we just cleared the cache.
 -      (w32_weight_table): Remove unused variable.
 -      (w32_enumfont_pattern_entity): Use FONT_SPACING_CHARCELL for
 -      backwards compatibility.
 -
 -2008-05-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * w32term.c (x_draw_glyph_string):
 -      * xterm.c (x_draw_glyph_string): Fix calculation of underline position.
 -
 -      * xfaces.c: Delete unused function prototypes.
 -      (xstrlwr, font_frame): Delete them.
 -      (clear_face_cache): Delete unused variable.
 -
 -      * xftfont.c (xftfont_open): Delete unused variable.
 -      If underline_thickness is not 1, adjust underline_position.
 -
 -      * ftxfont.c (ftxfont_open): Delete unused variable.
 -
 -      * fontset.c (face_for_char): Optimize for the case of no charset
 -      property.
 -
 -      * font.c (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE)
 -      (check_gstring, check_otf_features, otf_list, otf_tag_symbol)
 -      (otf_open, font_otf_capability, generate_otf_features)
 -      (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
 -      Comment out by surrounding "#if 0" and "#endif" for the moment.
 -      (Ffont_drive_otf, Ffont_otf_alternates): Likewise.
 -      (syms_of_font): Codes for accessing above commented out.
 -
 -2008-05-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32proc.c: Include dispextern.h.
 -
 -      * w32.c: Include dispextern.h.
 -
 -2008-05-23  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * charset.c (Fencode_char, Fsplit_char): Doc fixes.
 -      (Fget_unused_iso_final_char, Fdecode_char, Fiso_charset):
 -      Fix typos in docstrings.
 -
 -2008-05-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * xsmfns.c: Remove includes that are already included by config.h.
 -
 -2008-05-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Qemacs, charset_emacs): New variables.
 -      (char_charset): Fix for non-Unicode characters.
 -      (syms_of_charset): Define charset_emacs.
 -
 -      * w32term.c (x_draw_glyph_string): Be sure to update
 -      s->underline_thickness and s->underline_position.  Be sure to draw
 -      underline within the current line area.
 -
 -      * xterm.c (x_draw_glyph_string): Be sure to update
 -      s->underline_thickness and s->underline_position.  Be sure to draw
 -      underline within the current line area.
 -
 -      * fontset.c: Delete unused variables and add casting for char *
 -      throughout the file.
 -      (fontset_font): Try the fallback fonts of the current fontset
 -      before consulting the default fontset.
 -
 -      * ftfont.c (ftfont_spec_pattern): Free charset if necessary.
 -
 -      * xfont.c (xfont_list_pattern): Free names returned from XListFonts.
 -
 -2008-05-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * font.c: Don't include strings.h.
 -
 -      * dispextern.h, xfaces.c (xstrcasecmp): Rename from xstricmp.
 -
 -      * dosfns.c, fileio.c, font.c, fontset.c, image.c, macfns.c:
 -      * macterm.c, process.c, w32.c, w32fns.c, w32proc.c, xfaces.c:
 -      * xfns.c, xfont.c: All callers of stricmp and strcasecmp changed
 -      to call xstrcasecmp.
 -
 -      * xfont.c (xfont_list_pattern, compare_font_names): Use xstrcasecmp.
 -
 -      * fontset.c (fs_query_fontset): Use xstrcasecmp.
 -
 -      * font.c (font_style_to_value, font_score): Use xstrcasecmp.
 -
 -      * dosfns.c (msdos_stdcolor_idx): Use xstrcasecmp.
 -
 -2008-05-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1220000.
 -
 -      * font.c (font_prop_validate_style): Adjust for the format
 -      change of font_style_table.
 -
 -      * w32font.c (w32font_open_internal): Call Ffont_xlfd_name with
 -      two args.
 -
 -      * xfaces.c (x_update_menu_appearance): Call Ffont_xlfd_name with
 -      two args.
 -
 -2008-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (keys_of_minibuf): Delete.
 -      * lisp.h (keys_of_minibuf): Delete.
 -      * emacs.c (main): Don't call keys_of_minibuf.
 -
 -2008-05-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_resolve_generic_family): Rename from
 -      ftfont_list_generic_family.  Return a single family for each
 -      generic family.
 -      (ftfont_spec_pattern): Add FC_FAMILY to pattern.
 -      (ftfont_list): Adjust for the change of ftfont_resolve_generic_family.
 -      Call font_add_log.
 -      (ftfont_match): Call font_add_log.
 -
 -      * font.h (Ffont_xlfd_name): EXFUN adjusted.
 -      (FONT_DEBUG): Define it.
 -      (font_add_log): Extern it.
 -      (font_assert): Rename from xassert.
 -
 -      * xfont.c (xfont_get_pcm): Change xassert to font_assert.
 -      (xfont_list_family): Call font_add_log.
 -      (xfont_match): Likewise.
 -      (memq_no_quit): Delete.
 -
 -      * fontset.c (fontset_from_font, Ffontset_info): Add the 2nd arg in
 -      call of Ffont_xlfd_name.
 -
 -      * xfaces.c (struct table_entry, slant_table, weight_table)
 -      (swidth_table): Move to font.c.
 -
 -      * font.c: Checking of FONT_DEBUG is moved to font.h.  All calls of
 -      xassert are changed to font_assert.  Delete many unused variables.
 -      (Vfont_weight_table, Vfont_slant_table, Vfont_width_table):
 -      New variables.
 -      (struct table_entry): Move from xfaces.c and modified.
 -      (weight_table, slant_table, width_table): Move from xfaces.c and
 -      contents adjusted for the change of struct table_entry.
 -      (font_style_to_value, font_style_symbolic): Adjust for the
 -      format change of font_style_table.
 -      (font_parse_family_registry): Don't overwrite existing foundry and
 -      family of font_spec.
 -      (font_score): Fix calculation of diff for sizes.
 -      (font_sort_entites): Call font_add_log.
 -      (font_delete_unmatched): Return a newly created list.
 -      (font_list_entities): Fix previous change.  Call font_add_log.
 -      (font_matching_entity, font_open_entity, font_close_entity):
 -      Call font_add_log.
 -      (Ffont_xlfd_name): New arg FOLD-WILDCARDS.
 -      (Finternal_set_font_style_table): Delete.
 -      (BUILD_STYLE_TABLE): New macro.
 -      (build_style_table): New function.
 -      (Vfont_log, font_log_env_checked): New variables.
 -      (font_add_log): New function.
 -      (syms_of_font): Delete defsubr Sinternal_set_font_style_table.
 -      Declare Lisp variables "font-weight-table", "font-slant-table",
 -      "font-width-table", and "font-log".  Initialize font_style_table.
 -
 -2008-05-21  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xterm.c (x_set_frame_alpha): Move declarations before statements.
 -
 -2008-05-21  Seiji Zenitani  <zenitani@mac.com>
 -          Ryo Yoshitake  <ryo@shiftmode.net>
 -
 -      * frame.c (Qalpha): Add a new frame parameter `alpha'.
 -      (Vframe_alpha_lower_limit): New variable.
 -      (x_set_alpha): New function.
 -
 -      * frame.h (Qalpha, Vframe_parameter_lower_limit): Export them.
 -
 -      * xfns.c (x-create-frame, Qalpha):
 -      Initialize the frame parameter `alpha'.
 -      * xterm.c (OPAQUE, OPACITY): New.
 -      (x_set_frame_alpha): New function.
 -      (frame_highlight, frame_unhighlight): Call x_set_frame_alpha.
 -
 -      * macfns.c (mac_frame_parm_handlers): A null handler for x_set_alpha.
 -      * w32fns.c (w32_frame_parm_handlers): Likewise.
 -
 -2008-05-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (add_font_entity_to_list): Don't add non-opentype
 -      truetype fonts to opentype list.
 -
 -2008-05-20  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fontset.c (Ffontset_info): Doc fix.
 -      (syms_of_fontset) <font-encoding-charset-alist, use-default-ascent>:
 -      <ignore-relative-composition>: Fix typos in docstrings.
 -
 -      * font.c (syms-of-font) <font-encoding-alist>:
 -      (Ffontp, Ffont_make_gstring): Fix typos in docstrings.
 -      (Flist_fonts, Ffont_family_list, Ffont_fill_gstring, Fquery_font)
 -      (Ffont_otf_alternates): Doc fixes.
 -
 -2008-05-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (FONTSRC): Delete it.  Change all $(FONTSRC) to
 -      font.h through out the file.
 -      (FONT_DRIVERS): Rename from FONTOBJ.
 -      (obj): Change $(FONTOBJ) to $(FONT_DRIVERS).  Add font.o.
 -      (SOME_MACHINE_OBJECTS): Change $(FONTOBJ) to $(FONT_DRIVERS).
 -
 -      * emacs.c (main): Call syms_of_font unconditionally.
 -
 -      * font.h (find_font_encoding): Extern it.
 -
 -      * font.c (Vfont_encoding_alist, find_font_encoding): Move from
 -      fontset.c.
 -      (font_pixel_size) [! HAVE_WINDOW_SYSTEM]: Return 1.
 -      (font_open_entity): Update FRAME_X_DISPLAY_INFO (f)->n_fonts,
 -      FRAME_SMALLEST_CHAR_WIDTH (f), and FRAME_SMALLEST_FONT_HEIGHT (f)
 -      only when HAVE_WINDOW_SYSTEM is defined.
 -      (font_close_object): Update FRAME_X_DISPLAY_INFO (f)->n_fonts only
 -      when HAVE_WINDOW_SYSTEM is defined.
 -
 -      * fontset.c (Vfont_encoding_alist, find_font_encoding): Move to font.c.
 -      (syms_of_fontset): Move declaration of font-encoding-alist to font.c.
 -
 -      * xfaces.c: Include font.h unconditionally.
 -      (merge_face_ref, merge_face_vectors)
 -      (Finternal_set_lisp_face_attribute): Cancel the previous change.
 -
 -2008-05-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (select_frame_for_redisplay): Adjust for last change to
 -      indirect_variable.
 -      * eval.c (lisp_indirect_variable): New fun.
 -      (Fuser_variable_p): Use it.
 -
 -2008-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (indirect_variable):
 -      * data.c (indirect_variable, let_shadows_buffer_binding_p):
 -      Use Lisp_Symbol pointers rather than Lisp_Object.
 -      Adjust callers.
 -      * buffer.c (buffer_slot_type_mismatch): Use wrong-type-argument.
 -      To this end, change calling-convention.
 -
 -      * minibuf.c (Finternal_complete_buffer): Only strip out hidden buffers
 -      if some non-hidden buffers are selected by string&pred.
 -
 -2008-05-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * process.c (wait_reading_process_output): Always check status
 -      when in batch mode.
 -
 -2008-05-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_list_entities): Fix handling of cache.
 -      (font_matching_entity): Likewise.
 -
 -      * ftfont.c (cs_iso8859_1): Delete.
 -      (ft_face_cache): New variable.
 -      (struct ftfont_info): New member fc_charset_idx.
 -      (ftfont_build_basic_charsets): Delete.
 -      (fc_charset_table): New variable.
 -      (ftfont_pattern_entity): New arg fc_charset_idx.  Store (FILENAME
 -      . FC_CHARSET_IDX) as :font-entity property in the font entity.
 -      Callers changed.
 -      (ftfont_lookup_cache, ftfont_get_charset): New functions.
 -      (ftfont_spec_pattern): New argument fc_charset_idx.
 -      Check registry more rigidly.  Change callers.
 -      (ftfont_open, ftfont_close, ftfont_has_char): Adjust for the
 -      change of :font-entity property of the font.
 -
 -      * xftfont.c (xftfont_open): Adjust for the change of :font-entity
 -      property of the font.
 -
 -2008-05-18  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * coding.c (Fcoding_system_p): Rename argument to match docstring.
 -      (Funencodable_char_position, Fcheck_coding_systems_region)
 -      (Fdecode_coding_string, Fencode_coding_string): Fix typos in docstrings.
 -      (Fdetect_coding_region, Fdetect_coding_string, Fencode_coding_region)
 -      (Ffind_operation_coding_system, Fset_coding_system_priority)
 -      (Fcoding_system_eol_type): Doc fixes.
 -
 -2008-05-17  Glenn Morris  <rgm@gnu.org>
 -
 -      * sysdep.c (child_setup_tty): Handle systems with NLDLY, without FFDLY.
 -
 -2008-05-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Shut up GCC warnings about st_uid
 -      and st_gid.
 -
 -      * frame.c (Fdelete_frame): Don't call font_update_drivers if
 -      HAVE_WINDOW_SYSTEM is not defined.
 -
 -      * xfaces.c (merge_face_ref, merge_face_vectors)
 -      (Finternal_set_lisp_face_attribute): Use FONT_*_INDEX only when
 -      HAVE_WINDOW_SYSTEM is defined.
 -      (Fface_font): Fix non-HAVE_WINDOW_SYSTEM case.
 -
 -2008-05-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (parse_menu_item): Do not cache key shortcut any more.
 -
 -2008-05-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_draw_relief_rect): Remove unused variable `dpy'.
 -
 -2008-05-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_find_for_lface): Reflect LFACE_FONT in the font
 -      preference.
 -
 -2008-05-15  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (USAGE1, standard_args): Remove -disable-font-backend.
 -
 -2008-05-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fns.c (init_fns): Don't initialize weak_hash_tables here.
 -      (init_weak_hash_tables): New fun.  Initialize weak_hash_tables.
 -
 -      * alloc.c (init_alloc_once): Call init_weak_hash_tables.
 -
 -2008-05-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_list): Downcase family name to check generic
 -      families.
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Be sure to make a
 -      font-spec for QCfont value.
 -
 -      * fontset.c (Fnew_fontset): Call font_unparse_xlfd with 256-byte
 -      buffer.  Check the return value of it.
 -
 -2008-05-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_get_glyph_overhangs): Remove.
 -      (w32_redisplay_interface): Use x_get_glyph_overhangs instead.
 -
 -2008-05-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_prop_validate): Make nil a valid value.
 -      (font_clear_cache): Check if the cached vector of entities is nil
 -      or not.
 -
 -2008-05-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (main_thread): Conditionalize on
 -      FORWARD_SIGNAL_TO_MAIN_THREAD instead of HAVE_GTK_AND_PTHREAD.
 -      (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it.
 -
 -      * syssignal.h (FORWARD_SIGNAL_TO_MAIN_THREAD): New define.
 -      (main_thread, SIGNAL_THREAD_CHECK): Conditionalize on
 -      FORWARD_SIGNAL_TO_MAIN_THREAD instead of HAVE_GTK_AND_PTHREAD.
 -
 -2008-05-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_iso_2022): Ignore a coding category that
 -      has no corresponding coding system.
 -
 -2008-05-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * font.h (struct font) [WINDOWSNT]: Remove codepage member.
 -
 -      * w32font.h (w32font_open_internal): Update declaration.
 -
 -      * w32font.c (w32font_open_internal): Change last argument from
 -      w32font_info struct to font object.  Fill in font object from
 -      font_entity.  Get Outline metrics if possible.  Use them to
 -      calculate underline position and thickness.  Use xlfd name as name
 -      property.  Don't set codepage.
 -      (w32font_open): Pass font_object to w32font_open_internal.  Don't
 -      update dpyinfo->smallest_font_height and dpyinfo->smallest_char_width.
 -      (w32font_draw): Use s->font.
 -      (clear_cached_metrics): Don't clear non-existent blocks.
 -
 -      * w32term.c (w32_compute_glyph_string_overhangs): Don't compute if
 -      font was not found.
 -      (x_draw_glyph_string): Use underline position and thickness from font.
 -
 -      * w32uniscribe.c (uniscribe_open): Pass font_object to
 -      w32font_open_internal.
 -
 -2008-05-14  Kenichi Handa  <handa@m17n.org>
 -
 -      These changes are to delete all legacy font-handling codes, and
 -      make Emacs use only font-backends.
 -
 -      * Makefile.in: Delete USE_FONT_BACKEND conditionals.
 -      (frame.o, image.o, print.o): Depend on $(FONTSRC).
 -
 -      * makefile.w32-in (WIN32OBJ): Add w32reg.$(O), remove w32bdf.$(O).
 -
 -      * charset.h (Vcharset_non_preferred_head)
 -      (Vcurrent_iso639_language): Extern them.
 -
 -      * charset.c (Vcharset_non_preferred_head): New variable.
 -      (Vcurrent_iso639_language): New variable.
 -      (syms_of_charset): Declare it as a Lisp variable.
 -      (char_charset): Don't check non preferred charsets.  As a last
 -      resort, return charset_unicode.
 -      (Fset_charset_priority): Update Vcharset_non_preferred_head.
 -
 -      * composite.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.
 -
 -      * dispextern.h (struct glyph_string): Change type of `font' to
 -      `struct font *'.
 -      (struct glyph_string): New member underline_position and
 -      underline_thickness.
 -      (enum lface_attribute_index): Remove LFACE_AVGWIDTH_INDEX.
 -      (struct face): Change type of `font' to `struct font *'.  Remove
 -      members `font_name', `font_info_id'.
 -      (per_char_metric, encode_char): Delete externs.
 -      (calc_pixel_width_or_height): Adjust the prototype.
 -
 -      * emacs.c (enable_font_backend): Delete extern.
 -      (main): Don't set enable_font_backend.  Don't check the command
 -      line argument "-disable-font-backend".
 -
 -      * font.h (Qfont_spec, Qfont_entity, Qfont_object): Extern them.
 -      (enum font_property_index): New members FONT_DPI_INDEX,
 -      FONT_SPACING_INDEX, FONT_AVGWIDTH_INDEX, FONT_NAME_INDEX,
 -      FONT_FULLNAME_INDEX, FONT_FILE_INDEX, FONT_FORMAT_INDEX,
 -      FONT_OBJECT_MAX.  Delete FONT_FRAME_INDEX.
 -      (FONT_WEIGHT_NUMERIC, FONT_SLANT_NUMERIC, FONT_WIDTH_NUMERIC)
 -      (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC, FONT_WIDTH_SYMBOLIC)
 -      (FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE, FONT_WIDTH_FOR_FACE)
 -      (FONT_WEIGHT_NAME_NUMERIC, FONT_SLANT_NAME_NUMERIC)
 -      (FONT_WIDTH_NAME_NUMERIC, FONT_SET_STYLE): New macros.
 -      (struct font_spec, struct font_entity): New structs.
 -      (FONT_ENCODING_NOT_DECIDED): Moved from fontset.h.
 -      (struct font): Many members from old "struct font_info" moved to
 -      here.  Members font and entity deleted.
 -      (FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P, FONTP): Modified for
 -      the new font-related objects.
 -      (CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
 -      (CHECK_FONT_GET_OBJECT): Likewise.
 -      (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, XSETFONT): New macros.
 -      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Moved from font.h.
 -      (struct font_driver): New members case_sensitive anc check.  Type
 -      of the member list and open changed.
 -      (enable_font_backend, font_symbolic_weight, font_symbolic_slant)
 -      (font_symbolic_width, font_find_object, font_get_spec)
 -      (font_set_lface_from_name): Delete extern.
 -      (Fcopy_font_spec, Fmerge_font_spec, Ffont_family_list): New EXFUNs.
 -
 -      * font.c: Include <strings.h>.
 -      (enable_font_backend): Delete it.
 -      (Qfont_spec, Qfont_entity, Qfont_object): New variables.
 -      (CHECK_VALIDATE_FONT_SPEC): Delete it.
 -      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Moved to font.h.
 -      (null_string): Delete it.
 -      (null_vector): Make it static.
 -      (font_family_alist): Delete it.
 -      (Qnormal): Extern it.
 -      (QCextra, QClanguage): Delete it.
 -      (QClang, QCavgwidth, QCfont_entity, QCfc_unknown_spec): New variables.
 -      (font_make_spec, font_make_entity, font_make_object)
 -      (font_intern_prop): Renamed from intern_downcase.  Don't downcase
 -      the string.  Callers changed.
 -      (font_pixel_size): Adjusted for the format change of font-related
 -      objects.
 -      (prop_name_to_numeric, prop_numeric_to_name): Delete them.
 -      (font_style_to_value, font_style_symbolic): New function.
 -      (build_font_family_alist): Delete it.
 -      (font_registry_charsets): Use Fassoc_string instead of
 -      assq_no_quit.
 -      (font_prop_validate_symbol): Don't return null_string.
 -      (font_prop_validate_style): Adjusted for the change of
 -      style-related values in a font vector.
 -      (font_property_table): Delete entries for QClanguage and
 -      QCantialias, add entries for QCavgwidth.
 -      (get_font_prop_index): Delete the 2nd argument FROM.
 -      (font_prop_validate): Arguments changed.
 -      (font_put_extra): Adjusted for the change of font-related objects.
 -      (font_expand_wildcards, font_parse_xlfd, font_unparse_xlfd)
 -      (font_parse_fcname, font_unparse_fcname)
 -      (font_prepare_composition): Likewise.
 -      (font_parse_family_registry): Renamed from font_merge_old_spec.
 -      (otf_open): Delete the 1st arg entity.
 -      (font_otf_capability): Adjusted for the above change.
 -      (font_score): New arg alternate_families.  Adjusted for the change
 -      of font-related objects.
 -      (font_sort_entites): New arg best_only.
 -      (font_symbolic_weight, font_symbolic_slant, font_symbolic_width):
 -      Delete them.
 -      (font_match_p): Check alternate families.
 -      (font_find_object): Delete it.
 -      (font_check_object): New function.
 -      (font_clear_cache): Adjusted for the change of font-related objects.
 -      (font_delete_unmatched): New arg.
 -      (font_list_entities): Call font_driver->list with a spec that
 -      doesn't specify style-related properties.
 -      (font_matching_entity): Arguments changed.  Caller changed.
 -      (font_open_entity): Adjusted for the change of font-related objects.
 -      (font_close_object, font_has_char, font_encode_char)
 -      (font_get_name, font_get_spec): Likewise.
 -      (font_spec_from_name, font_clear_prop, font_update_lface):
 -      New functions.
 -      (font_find_for_lface, font_open_for_lface, font_load_for_lface)
 -      (font_prepare_for_face, font_done_for_face, font_open_by_name)
 -      (font_at): Adjusted for the change of font-related objects.
 -      (font_range): New function.
 -      (Ffontp, Ffont_spec, Ffont_get, Ffont_put, Flist_fonts)
 -      (Ffont_xlfd_name): Adjusted for the change of font-related objects.
 -      (Fcopy_font_spec, Fmerge_font_spec): New function.
 -      (Ffont_family_list): Renamed from list-families.
 -      (Finternal_set_font_style_table): Arguments changed.
 -      (Ffont_fill_gstring, Ffont_shape_text, Fopen_font)
 -      (Ffont_drive_otf, Fquery_font, Ffont_match_p): Adjusted for the
 -      change of font-related objects.
 -      (syms_of_font): Delete "ifdef USE_FONT_BACKEND".  DEFSYM new symbols.
 -
 -      * fontset.h (struct font_info): Delete it.  Most members go to
 -      struct font.
 -      (FONT_ENCODING_NOT_DECIDED): Moved to font.h.
 -      (enum FONT_SPEC_INDEX): Delete it.
 -      (font_info, list_fonts_func, load_font_func, query_font_func)
 -      (set_frame_fontset_func, find_ccl_program_func)
 -      (get_font_repertory_func, new_fontset_from_font_name): Delete
 -      externs.
 -      (fontset_from_font_name): Extern it.
 -      (FS_LOAD_FONT, FONT_INFO_ID, FONT_INFO_FROM_ID)
 -      (FONT_INFO_FROM_FACE): Deleted.
 -      (face_for_font): Adjust prototype.
 -
 -      * fontset.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.
 -      (get_font_info_func, list_font_func, load_font_func)
 -      (query_font_func, set_frame_fontset_func, find_ccl_program_func)
 -      (get_font_repertory_func): Delete them.
 -      (FONTSET_SPEC, FONT_DEF_NEW, FONT_DEF_SPEC, FONT_DEF_ENCODING)
 -      (FONT_DEF_REPERTORY, RFONT_DEF_FACE, RFONT_DEF_SET_FACE)
 -      (RFONT_DEF_FONT_DEF, RFONT_DEF_SPEC, RFONT_DEF_REPERTORY)
 -      (RFONT_DEF_OBJECT, RFONT_DEF_SET_OBJECT, RFONT_DEF_SCORE)
 -      (RFONT_DEF_SET_SCORE, RFONT_DEF_NEW): New macros.
 -      (fontset_compare_rfontdef): New function.
 -      (reorder_font_vector): Remove the argument CHARSET-ID.  Sort
 -      rfont-defs by qsort.  Adjusted for the change of font-group vector.
 -      (load_font_get_repertory): Deleted.
 -      (fontset_find_font): Use new macros to ref/set elements of
 -      font-def and rfont-def.
 -      (fontset_font): Fix the timing of remembering that no font for C.
 -      (free_face_fontset): Do nothing if the face has no fontset.
 -      (face_suitable_for_char_p): Use new macros to ref/set elements of
 -      rfont-def.
 -      (face_for_char): Likewise.  Call face_for_char with font_object.
 -      (fs_load_font): Delete.  Delete #pragma surrounding it.
 -      (fs_query_fontset): Use strcasecmp instead of strcmp.
 -      (generate_ascii_font_name): Adjusted for the format change of
 -      font-spec.
 -      (Fset_fontset_font): Likewise.  Use new macros to set elements of
 -      font-def.
 -      (Fnew_fontset): Use font_unparse_xlfd to generate
 -      FONTSET_ASCII (fontset).
 -      (new_fontset_from_font_name): Deleted.
 -      (fontset_from_font): Renamed from new_fontset_from_font.  Check if
 -      a fontset is already created for the font.  FIx updating of
 -      Vfontset_alias_alist.
 -      (fontset_ascii_font): Deleted.
 -      (Ffont_info): Adjusted for the format change of font-spec.
 -      (Finternal_char_font): Likewise.
 -      (Ffontset_info): Likewise.
 -      (syms_of_fontset): Don't check load_font_func.
 -
 -      * fns.c (internal_equal): Handle PREV_FONT.
 -
 -      * frame.h: Delete USE_FONT_BACKEND conditional.
 -
 -      * frame.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.
 -      (x_set_font): Call x_new_font, not x_new_fontset2.
 -      (x_set_font_backend): Use FRAME_FONT macro to check if a font is
 -      already set for the frame.
 -
 -      * ftfont.c (ftfont_pattern_entity): Argument FRAME removed.  Make
 -      a font-entity by font_make_entity.  Use font_intern_prop instead
 -      of intern_downcase.  Use FONT_SET_STYLE to set a style-related
 -      font property.  If a font is scalable, set avgwidth property to 0.
 -      Set font-entity property by font_put_extra.
 -      (ftfont_list_generic_family): Argument SPEC and REGISTRY removed.
 -      (ffont_driver): Adjusted for the change of struct font_driver.
 -      (ftfont_spec_pattern): New function.
 -      (ftfont_list): Return a list, not vector.
 -      (ftfont_match): Use ftfont_spec_pattern to get a pattern.
 -      (ftfont_list_family): Don't downcase names.
 -      (ftfont_free_entity): Deleted.
 -      (ftfont_open): Return a font-object.  Adjusted for the change of
 -      struct font.  Get underline_thickness and underline_position from
 -      font property.  Don't update dpyinfo->smallest_font_height and
 -      dpyinfo->smallest_char_width.
 -      (ftfont_close): Don't free `struct font'.
 -      (ftfont_has_char): Adjusted for the format change of font-entity.
 -      (ftfont_encode_char, ftfont_text_extents): Likewise.
 -
 -      * ftxfont.c (ftxfont_list): Return a list, not vector.
 -      (ftxfont_open): Return a font-object.  Adjusted for the change of
 -      struct font.  Get underline_thickness and underline_position from
 -      font property.  Don't update dpyinfo->smallest_font_height and
 -      dpyinfo->smallest_char_width.
 -      (ftxfont_close): Don't decrease FRAME_X_DISPLAY_INFO (f)->n_fonts.
 -      (ftxfont_draw): Adjusted for the change of struct font.
 -
 -      * image.c (image_ascent): Don't include "charset.h".  Include
 -      "character.h" and "font.h".
 -
 -      * lisp.h (enum pvec_type): New member PREV_FONT.
 -      (Fassoc_string): EXFUN it.
 -
 -      * print.c: Include font.h.
 -      (print_object): Handle font-related objects.
 -
 -      * xdisp.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.
 -      (handle_auto_composed_prop): Do nothing if it->f is not on a
 -      window system.  Check how many following characters can be
 -      displayed by the same font.
 -      (calc_pixel_width_or_height): Type of the 4th arg is changed to
 -      'struct font *'.
 -      (get_char_face_and_encoding): Assign the whole encoding task to
 -      the `encode-char' method of a font driver.
 -      (fill_composite_glyph_string): Adjusted for the change of `struct
 -      face' and `struct glyph_string'.
 -      (fill_glyph_string): Likewise.
 -      (get_per_char_metric): Arguments changed.
 -      (x_get_glyph_overhangs): Adjusted for the change of `struct face'
 -      and `struct glyph_string'.
 -      (produce_stretch_glyph, calc_line_height_property)
 -      (x_produce_glyphs): Likewise.
 -
 -      * xfaces.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.  Use
 -      FONT_XXX_NAME_NUMERIC instead of face_numeric_xxx.
 -      (QCfoundry, QCadstyle, QCregistry, QCspacing, QCsize, QCavgwidth)
 -      (Qp): Extern them.
 -      (clear_font_table, load_face_font, xlfd_lookup_field_contents):
 -      Deleted.
 -      (struct font_name): Deleted.
 -      (xlfd_numeric_value, xlfd_symbolic_value): Deleted.
 -      (compare_fonts_by_sort_order): New function.
 -      (xlfd_numeric_slant, xlfd_symbolic_slant, xlfd_numeric_weight)
 -      (xlfd_symbolic_weight, xlfd_numeric_swidth, xlfd_symbolic_swidth):
 -      Deleted.
 -      (Fx_family_fonts): Use font_list_entities, and sort fonts by
 -      compare_fonts_by_sort_order.
 -      (Fx_font_family_list): Call Ffont_family_list.
 -      (face_numeric_value, face_numeric_weight, face_numeric_slant)
 -      (face_numeric_swidth, face_symbolic_value, face_symbolic_weight)
 -      (face_symbolic_slant, face_symbolic_swidth)
 -      (split_font_name_into_vector, build_font_name_from_vector)
 -      (xlfd_fixed_p, xlfd_point_size, pixel_point_size)
 -      (font_rescale_ratio, split_font_name, build_font_name)
 -      (free_font_names, sort_fonts, x_face_list_fonts)
 -      (face_font_available_p, sorted_font_list, cmp_font_names)
 -      (font_list_1, concat_font_list, font_list, remove_duplicates):
 -      Deleted.
 -      (Fx_list_fonts): Use Ffont_list.
 -      (LFACE_AVGWIDTH): Deleted.
 -      (check_lface_attrs): Don't check LFACE_AVGWIDTH.  Check LFACE_FONT
 -      by FONTP.
 -      (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
 -      (set_lface_from_font_name): Delete it.
 -      (set_lface_from_font): Renamed from
 -      set_lface_from_font_and_fontset.  Caller changed.  Don't set
 -      LFACE_AVGWIDTH.  Use FONT_XXX_FOR_FACE to get a symbol suitable
 -      for face.
 -      (merge_face_vectors): Copy font-spec if necessary.
 -      Clear properties of the font-spec if necessary.
 -      (merge_face_ref): Clear properties of the font-spec if necessary.
 -      (Finternal_set_lisp_face_attribute): Likewise.
 -      (set_font_frame_param): Use font_load_for_lface to load a
 -      font-object, and call Fmodify_frame_parameters with it.
 -      (x_update_menu_appearance): Don't check LFACE_AVGWIDTH.  Get XLFD
 -      font name by Ffont_xlfd_name.
 -      (Finternal_lisp_face_attribute_values): Don't check QCweight,
 -      QCslant, and QCwidth.
 -      (Fface_font): Get a font name from font->props[FONT_NAME_INDEX].
 -      (lface_same_font_attributes_p): Don't check LFACE_AVGWIDTH.
 -      Compare fonts by EQ.
 -      (lookup_non_ascii_face): Deleted.
 -      (face_for_font): The 2nd argument changed.
 -      (x_supports_face_attributes_p): Don't check LFACE_AVGWIDTH.
 -      Check atomic font properties by case insensitive.
 -      (realize_non_ascii_face): Set face->overstrike correctly.
 -      (realize_x_face): Likewise.  Check if LFACE_FONT is a font_object.
 -      (dump_realized_face): Get font name from
 -      font->props[FONT_NAME_INDEX].  Don't print font_info_id.
 -
 -      * xfns.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.
 -      (xic_create_xfontset): Original code deleted and renamed from
 -      xic_create_xfontset2.  Use FRAME_FONT, not FRAME_FONT_OBJECT.
 -      (x_make_gc): Don't set GCFont in GCs.
 -      (Fx_create_frame) [USE_LUCID]: Set xlwmenu_default_font to a font
 -      opened by "fixed".
 -      (syms_of_xfns): Don't set get_font_info_func, load_font_func,
 -      find_ccl_program_func, query_font_func, set_frame_fontset_func,
 -      get_font_repertory_func.
 -
 -      * xfont.c: Include <stdlib.h> and "ccl.h".
 -      (struct xfont_info): New structure.
 -      (xfont_query_font): Deleted.
 -      (xfont_find_ccl_program): Renamed from x_find_ccl_program and
 -      moved from xterm.c.
 -      (xfont_driver): Adjusted for the change of struct font_driver.
 -      (compare_font_names): New function.
 -      (xfont_list_pattern): Sort font names case insensitively.  Make
 -      font_entity by calling font_make_entity.  Avoid auto-scaled fonts.
 -      (xfont_list): Return a list, not vector.
 -      (xfont_match): If the font doesn't have QCname property, generate
 -      a name from the other font properties.
 -      (xfont_open): Return a font-object.  Adjusted for the change of
 -      struct font.  Get underline_thickness and underline_position from
 -      font property.  Don't update dpyinfo->smallest_font_height and
 -      dpyinfo->smallest_char_width.
 -      (xfont_close): Don't free struct font.
 -      (xfont_prepare_face): Adjusted for the change of struct font.
 -      (xfont_done_face): Deleted.
 -      (xfont_has_char): Adjusted for the change of struct font.
 -      (xfont_encode_char, xfont_draw): Likewise.
 -      (xfont_check): New function.
 -
 -      * xftfont.c (xftfont_list): Adjusted for the change of `list'
 -      callback function.
 -      (xftfont_match): Adjusted for the format change of font-entity.
 -      (xftfont_open): Adjusted for the format change of font-entity and
 -      font-object.  Adjusted for the change of struct font.  Return a
 -      font-object.  Don't update dpyinfo->smallest_font_height and
 -      dpyinfo->smallest_char_width.
 -      (xftfont_close): Block input while calling XftFontClose.
 -      (xftfont_prepare_face): Don't block input while calling
 -      xftfont_get_colors.  Adjusted for the change of struct font.
 -      (xftfont_shape): Return value of error case fixed.
 -
 -      * xrdb.c (x_load_resources): Don't setup a fontset resource.
 -
 -      * xterm.h: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.
 -      (FONT_WIDTH): Return (f)->max_width.
 -      (struct x_display_info): Delete member `font'.
 -      (x_list_fonts, x_get_font_info, x_load_font, x_query_font)
 -      (x_find_ccl_program, x_get_font_repertory): Delete externs.
 -      (struct x_output): Change type of `font' to `struct font *'.
 -
 -      * xterm.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.  Don't include ccl.h.
 -      (x_per_char_metric, x_encode_char): Deleted.
 -      (x_set_cursor_gc, x_set_mouse_face_gc): Don't set GCFont.
 -      (x_compute_glyph_string_overhangs): Adjusted for the change of
 -      `struct face'.
 -      (x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground): Likewise.
 -      (x_draw_glyph_string): Likewise.  Use font->underline_position and
 -      font->underline_thickness.
 -      (x_new_font): Renamed from x_new_fontset2.
 -      (x_new_fontset, x_get_font_info, x_list_fonts): Deleted.
 -      (x_check_font): Call `check' method of a font driver.
 -      (x_font_min_bounds, x_compute_min_glyph_bounds, x_load_font)
 -      (x_query_font, x_get_font_repertory): Deleted.
 -      (x_find_ccl_program): Renamed and moved to xfont.c.
 -      (x_redisplay_interface): Adjusted for the change of `struct
 -      redisplay_interface'.
 -
 -      * w32fns.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.  Surround non-used
 -      code by "#ifdef OLD_FONT" and "endif".
 -      (Fw32_select_font): Use FONT_COMPAT to get old font structure.
 -
 -      * w32font.h (struct w32font_info): New member.
 -      (FONT_COMPAT): New macro.
 -      (w32font_open_internal): Prototype adjusted.
 -
 -      * w32gui.h (XGCValues): Surround `XFontStruct *font' by "if
 -      OLD_FONT" and "endif".
 -
 -      * w32font.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.
 -      (w32font_open): Return a font-object.  Make a font-object by
 -      font_make_object.  Adjusted for the change of struct w32font_info.
 -      (w32font_close): Don't free struct font.  Adjusted for the change
 -      of struct w32font_info.
 -      (w32font_encode_char, w32font_text_extents, w32font_draw):
 -      Adjusted for the change of struct w32font_info.
 -      (w32font_draw): Likewise.
 -      (w32font_list_internal): Return a list, not vector.
 -      (w32font_open_internal): Change the 4th arg to font-object.
 -      Adjusted for the change of struct w32font_info and font-object format.
 -      (add_font_name_to_list): Don't downcase names.
 -      (w32_enumfont_pattern_entity): Make a font-entity by
 -      font_make_entity.  Adjusted for the format change of font-entity.
 -      Use FONT_SET_STYLE to set a style-related font property.  If a
 -      font is scalable, set avgwidth property to 0.  Set font-entity
 -      property by font_put_extra.
 -      (font_matches_spec): Adjusted for the format change of font-entity.
 -      (w32_weight_table, w32_decode_weight): New variables.
 -      (w32_encode_weight): New function.
 -      (fill_in_logfont): Adjusted for the format change of font-spec.
 -      (w32font_full_name): Use FONT_WEIGHT_SYMBOLIC to get a symbol
 -      weight value.
 -      (w32font_driver): Adjusted for the change of struct font_driver.
 -
 -      * w32term.h: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Surround non-used
 -      code by "#ifdef OLD_FONT" and "endif".
 -      (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT)
 -      (FONT_AVG_WIDTH): Adjusted for the change of struct font.
 -
 -      * w32term.c: Throughout the file, delete all USE_FONT_BACKEND
 -      conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.  Surround non-used
 -      code by "#ifdef OLD_FONT" and "endif".
 -
 -      * w32uniscribe.c: Delete USE_FONT_BACKEND conditional.
 -      (uniscribe_open): Return value changed to font-object.
 -      Adjusted for the format change of font-object.
 -      (uniscribe_otf_capability): Adjusted for the change of struct font.
 -      (add_opentype_font_name_to_list): Don't downcase names.
 -      (uniscribe_font_driver): Adjusted for the change of struct
 -      font_driver.
 -
 -2008-05-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispnew.c (update_frame_1): Check if tty output is still valid
 -      before flushing it.
 -
 -2008-05-13  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Don't pass buttons higher than 3
 -      to Gtk+ menus.
 -
 -2008-05-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (file_name_completion): Tweak the code so as to always do it
 -      in a single pass.  Tighten the scope of some variables.
 -
 -      * dired.c (Qdefault_directory): New var.
 -      (file_name_completion): Use it instead of Fexpand_file_name.
 -      (syms_of_dired): Initialize it.
 -
 -2008-05-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (double_dollars): Remove dead code.
 -
 -2008-05-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes, Fdirectory_files_and_attributes):
 -      Mention w32-get-true-file-attributes in doc string.
 -
 -      * w32proc.c (syms_of_ntproc) <w32-get-true-file-attributes>: Doc fix.
 -
 -2008-05-09  Glenn Morris  <rgm@gnu.org>
 -
 -      * fileio.c (Fread_file_name): Remove reference to insdef, deleted
 -      2008-04-23.
 -
 -2008-05-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      Support for reporting owner and group of each file on MS-Windows:
 -      * dired.c (stat_uname, stat_gname): New functions, with special
 -      implementation for w32.
 -      (Ffile_attributes): Use them instead of getpwuid and getgrgid.
 -
 -      * w32.c: Rename the_passwd_* to dflt_passwd_*.
 -      (dflt_group_name): New static variable.
 -      (dflt_group): Rename from the_group.
 -      (init_user_info): Init dflt_group fields.  Get user's group name
 -      from LookupAccountSid.
 -      (g_b_init_get_file_security, g_b_init_get_security_descriptor_owner)
 -      (g_b_init_get_security_descriptor_group, g_b_init_is_valid_sid):
 -      New initialization states.
 -      (globals_of_w32): Initialize them to zero.  Initialize the default
 -      group name to "None".
 -      (GetFileSecurity_Name): New global var, the name of the function
 -      to call for GetFileSecurity.
 -      (GetFileSecurity_Proc, GetSecurityDescriptorOwner_Proc)
 -      (GetSecurityDescriptorGroup_Proc, IsValidSid_Proc): New typedefs.
 -      (get_file_security, get_security_descriptor_owner)
 -      (get_security_descriptor_group, is_valid_sid)
 -      (get_file_security_desc, get_rid, get_name_and_id)
 -      (get_file_owner_and_group): New functions.
 -      (stat): Use get_file_security_desc and get_file_owner_and_group to
 -      report the owner and primary group of each file.  Don't ignore the
 -      high 32 bits of file's size, now that st_size is 64-bit wide.
 -      Fix test when to get true file attributes.
 -      (init_user_info): Use get_rid instead of equivalent inline code.
 -      (fstat): Don't ignore the high 32 bits of file's size.
 -
 -2008-05-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (png_load): Use correct bit-depth for setting background
 -      color.
 -
 -2008-05-08  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (lisp, shortlisp): Rename epa-file-hook.elc to
 -      epa-hook.elc.
 -
 -2008-05-08  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * font.c (Ffont_match_p): Don't use `iff' in docstring.
 -
 -2008-05-07  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * macfns.c (Fx_create_frame): Make a copy of frame parameters
 -      because the original parameters are in pure storage now.
 -      (mac_window): Remove unused params.  Update callers.
 -
 -2008-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (substitute_object_recurse): Use lower-level primitives.
 -      Don't signal errors when traversing sub-char-tables.
 -      Don't loop over all the possible characters when traversing char-tables.
 -
 -      * print.c (print_preprocess): Add sub-char-tables to the print-table,
 -      just like we do in print.c.
 -
 -2008-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (Ftry_completion): Remove code left over from when we used
 -      scmp instead of Fcompare_strings.
 -
 -2008-05-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (Fw32_battery_status): Fix computation of %t (h:min) format.
 -
 -2008-05-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c [USE_MAC_IMAGE_IO] (image_load_image_io):
 -      Create bitmap context in native byte order.
 -
 -      * macterm.c (XDrawLine)
 -      (XCreatePixmapFromBitmapData) [USE_MAC_IMAGE_IO]: Create bitmap
 -      context in native byte order.
 -
 -2008-05-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * config.in: Regenerate.
 -
 -      * image.c (PIX_MASK_DRAW, PIX_MASK_RETAIN) [USE_MAC_IMAGE_IO]:
 -      New definitions for Image I/O support.
 -      (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
 -      (mac_create_cg_image_from_image, x_create_x_image_and_pixmap)
 -      [USE_MAC_IMAGE_IO]: Add implementations for Image I/O support.
 -      (mac_data_provider_release_data, image_load_image_io)
 -      [USE_MAC_IMAGE_IO]: New functions.
 -      (CGImageCreateWithPNGDataProviderProcType) [MAC_OSX]: Remove typedef.
 -      (MyCGImageCreateWithPNGDataProvider) [MAC_OSX]: Remove variable.
 -      (init_image_func_pointer) [MAC_OSX]: Remove function.
 -      (image_load_quartz2d) [MAC_OSX]: Check availability of
 -      CGImageCreateWithPNGDataProvider at compile time.
 -      Use lowercase `false' for boolean constant.
 -      (png_load, jpeg_load, tiff_load, gif_load) [USE_MAC_IMAGE_IO]:
 -      Use image_load_image_io.
 -      (png_load) [!USE_MAC_IMAGE_IO && MAC_OSX]:
 -      Don't check MyCGImageCreateWithPNGDataProvider.
 -      (init_image) [MAC_OSX && TARGET_API_MAC_CARBON]:
 -      Don't call init_image_func_pointer.
 -
 -      * macgui.h (Pixmap) [USE_MAC_IMAGE_IO]: New definition for Image I/O.
 -
 -      * macterm.c (mac_cg_color_space_rgb) [USE_CG_DRAWING]:
 -      Make variable non-static.
 -      (XDrawLine, XCreatePixmap, XCreatePixmapFromBitmapData, XFreePixmap)
 -      [USE_MAC_IMAGE_IO]: Add implementations for Image I/O support.
 -
 -      * macterm.h (ARGB_TO_ULONG, ALPHA_FROM_ULONG): New macros.
 -      (RED_FROM_ULONG): Mask off higher bits.
 -      (mac_cg_color_space_rgb) [USE_MAC_IMAGE_IO]: New extern.
 -
 -      * s/darwin.h [HAVE_CARBON && HAVE_AVAILABILITYMACROS_H]:
 -      Include AvailabilityMacros.h.
 -      (USE_MAC_IMAGE_IO, LIBS_IMAGE) [HAVE_CARBON]: New defines.
 -      (LIBS_CARBON) [HAVE_CARBON]: Use LIBS_IMAGE.
 -
 -2008-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * chartab.c (Fset_char_table_range): If range is t, really set all
 -      chars to that value.
 -
 -2008-05-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Don't allow the device number become
 -      negative.
 -
 -2008-05-02  Daiki Ueno  <ueno@unixuser.org>
 -
 -      * Makefile.in (lisp, shortlisp): Add epa-file-hook.elc.
 -
 -2008-05-02  Juri Linkov  <juri@jurta.org>
 -
 -      * minibuf.c (Fread_from_minibuffer, Fread_string, Fread_command)
 -      (Fread_variable, Fread_buffer, Fcompleting_read): Document the
 -      DEFAULT argument as a list of default values in docstrings.
 -
 -2008-05-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1210000.
 -
 -2008-05-01  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * dispnew.c (change_frame_size_1): Preserve small windows when
 -      shrinking frames by calling set_window_height|width with third
 -      arg 2.
 -
 -      * window.h (struct window): Replace field too_small_ok by field
 -      resize_proportionally.
 -
 -      * window.c (make_window): Initialize resize_proportionally.
 -      (enlarge_window): Temporarily set resize_proportionally to make
 -      sure that shrink_windows does scale the window proportionally.
 -      (shrink_windows): When window has resize_proportionally set try
 -      to shrink it proportionally by stealing from other windows.
 -      (struct saved_window, Fset_window_configuration)
 -      (compare_window_configurations): Handle resize_proportionally.
 -      (WINDOW_TOTAL_SIZE): New macro.
 -      (window_min_size, shrink_windows, size_window): Use it.
 -      (check_min_window_sizes): Remove.  Invalid values of
 -      window-min-height|width are handled by window_min_size_2 now.
 -      (size_window, Fsplit_window, enlarge_window)
 -      (adjust_window_trailing_edge, grow_mini_window): Don't call
 -      check_min_window_sizes.
 -      (window_min_size_2, window_min_size_1, window_min_size):
 -      New argument safe_p for retrieving "safe" minimum sizes.
 -      (Fdisplay_buffer, Fsplit_window, enlarge_window)
 -      (adjust_window_trailing_edge, grow_mini_window):
 -      Adjust arguments of window_min_size... functions.
 -      (shrink_windows): Argument min_size removed.  New argument
 -      safe_p allows shrinking windows to their safe minimum sizes.
 -      Calculate minimum size and decide whether a window shall be
 -      deleted for each window individually.
 -      (size_window): When nodelete_p equals 2, tell shrink_windows to
 -      delete windows only if their new minimum size is no more safe.
 -      (shrink_window_lowest_first): Call window_min_size_1 to make
 -      sure to preserve modeline of bottom-most window when resizing
 -      the minibuffer.
 -      (Fset_window_configuration, Fcurrent_window_configuration)
 -      (compare_window_configurations): Do not handle
 -      window-min-height|width any more.
 -      (syms_of_window): Clarify window-min-height|width doc-strings.
 -
 -2008-04-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (file_name_completion): Fix up the encoding/decoding issue
 -      some more.  Copy some of the code from Ftry_completions.
 -      Remove special case code that dates back to initial revision when the
 -      slash was only added when necessary and that can't trigger nowadays.
 -
 -2008-04-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_prop_validate): Signal `error' instead of `font'.
 -
 -2008-04-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fw32_battery_status): New defun.
 -      (syms_of_w32fns): Defsubr it.
 -
 -2008-04-28  Andreas Schwab  <schwab@suse.de>
 -
 -      * dired.c (file_name_completion): Fix another mixing of encoded
 -      and decoded names.
 -
 -2008-04-28  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (Fw32_define_rgb_color): Fix typo in docstring.
 -
 -2008-04-27  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fringe.c (Fdefine_fringe_bitmap): Doc fix.
 -
 -2008-04-27  Andreas Schwab  <schwab@suse.de>
 -
 -      * dired.c (file_name_completion): Fix inappropriate mixing of
 -      encoded and decoded names.
 -
 -      * xterm.c (XTread_socket): Fix use of uninitialized variable.
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1200000.
 -
 -2008-04-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes) [WINDOWSNT]: Undo change from
 -      2008-03-31, it's not needed anymore with `struct stat' definition
 -      on nt/inc/sys/stat.h.  Undo changes from 2007-01-12 and 2007-01-13
 -      for the same reasons.
 -
 -2008-04-25  Dennis Gilmore  <ausil@fedoraproject.org>  (tiny change)
 -
 -      * m/sparc.h: Additional redefinitions for GNU/Linux.
 -
 -2008-04-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (Vmac_ts_active_input_buf) [USE_MAC_TSM]: New variable.
 -      (syms_of_macterm) [USE_MAC_TSM]: Defvar it.
 -      (Qmouse_drag_overlay) [MAC_OSX]: New variable.
 -      (syms_of_macterm) [MAC_OSX]: Intern and staticpro it.
 -      (mac_get_selected_range, mac_store_buffer_text_to_unicode_chars)
 -      (mac_ax_selected_text_range) [MAC_OSX]: New functions.
 -      (mac_ax_number_of_characters) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 -      Likewise.
 -
 -      * mactoolbox.c (Vmac_ts_active_input_buf) [USE_MAC_TSM]: Add extern.
 -      (fast_find_position, x_y_to_hpos_vpos, mac_ax_selected_text_range)
 -      (mac_ax_number_of_characters): Add externs.
 -      (mac_get_selected_range, mac_store_buffer_text_to_unicode_chars)
 -      [USE_MAC_TSM]: Likewise.
 -      (mac_handle_text_input_event) [MAC_OSX]:
 -      Handle kEventTextInputOffsetToPos for no active input area case.
 -      Handle kEventTextInputPosToOffset and kEventTextInputGetSelectedText.
 -      (mac_handle_document_access_event)
 -      [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: New function.
 -      (install_application_handler) [MAC_OSX]: Register handlers for
 -      kEventTextInputPosToOffset and kEventTextInputGetSelectedText.
 -      (install_application_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 -      Register mac_handle_document_access_event.
 -
 -      * xdisp.c (x_y_to_hpos_vpos, fast_find_position) [HAVE_CARBON]:
 -      Make functions non-static.
 -
 -2008-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Vread_file_name_function, Vread_file_name_predicate)
 -      (read_file_name_completion_ignore_case, insert_default_directory)
 -      (Qdefault_directory): Move to minibuffer.el.
 -      (Fread_file_name): Call the new `read-file-name' instead.
 -
 -2008-04-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (create_apple_event) [TARGET_API_MAC_CARBON]:
 -      Make function non-static.
 -      (create_apple_event_from_event_ref) [TARGET_API_MAC_CARBON]:
 -      Remove function.
 -      (create_apple_event_from_drag_ref) [TARGET_API_MAC_CARBON]:
 -      Move to mactoolbox.c.
 -      (mac_event_parameters_to_lisp) [TARGET_API_MAC_CARBON]: New function.
 -
 -      * macgui.h (CGFloat) [!CGFLOAT_DEFINED]: New typedef.
 -      (mac_rect_make): New macro.
 -
 -      * macterm.c (mac_draw_image_string_atsui) [MAC_OSX]: Use CGFloat
 -      instead of float.
 -      (mac_draw_image_string_cg) [USE_CG_TEXT_DRAWING]: Likewise.
 -      (init_cg_color, mac_draw_line, mac_draw_cg_image, XSetForeground)
 -      (XSetBackground) [USE_CG_DRAWING]: Likewise.
 -      (mac_draw_image_string_atsui) [MAC_OSX]: Use mac_rect_make instead of
 -      CGRectMake.
 -      (mac_draw_image_string_cg) [USE_CG_TEXT_DRAWING]: Likewise.
 -      (mac_erase_rectangle, mac_draw_cg_image, mac_fill_rectangle)
 -      (mac_set_clip_rectangles) [USE_CG_DRAWING]: Likewise.
 -      (XCreatePixmap, XCreatePixmapFromBitmapData): Use Window
 -      instead of WindowRef in argument type.
 -      (XCreatePixmap) [!MAC_OS8]: Don't call SetPortWindowPort.
 -      (mac_invert_rectangle): Use CGContextSetBlendMode if available.
 -      (mac_set_clip_rectangles, mac_reset_clip_rectangles): Take argument F
 -      instead of DISPLAY.  All uses changed.
 -      (mac_handle_size_change): Don't call SET_FRAME_GARBAGED.
 -      (x_calc_absolute_position): Simplify so as not to use
 -      FRAME_PIXEL_WIDTH/FRAME_PIXEL_HEIGHT.
 -
 -      * macterm.h (XCreatePixmap, XCreatePixmapFromBitmapData): Use Window
 -      instead of WindowRef in argument type.
 -      (create_apple_event_from_event_ref, create_apple_event_from_drag_ref)
 -      [TARGET_API_MAC_CARBON]: Remove externs.
 -      (create_apple_event, mac_event_parameters_to_lisp)
 -      [TARGET_API_MAC_CARBON]: Add externs.
 -
 -      * mactoolbox.c (Vmac_ts_script_language_on_focus)
 -      (saved_ts_script_language_on_focus) [USE_MAC_TSM]: Remove externs.
 -      (XTread_socket) [USE_MAC_TOOLBAR]: Select window if its structure part
 -      is clicked.
 -      (x_activate_menubar): Remove extern for saved_menu_event_location.
 -      (create_apple_event_from_drag_ref) [TARGET_API_MAC_CARBON]:
 -      Move from mac.c.
 -
 -2008-04-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT] (uninterrupt_malloc)
 -      [HAVE_GTK_AND_PTHREAD && !DOUG_LEA_MALLOC]: Don't use recursive mutex.
 -
 -2008-04-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (stat): When Vw32_get_true_file_attributes is Qlocal, get
 -      attributes only for local files.
 -
 -      * w32proc.c (syms_of_ntproc): Change Vw32_get_true_file attributes
 -      default to Qlocal.
 -
 -2008-04-22  Juri Linkov  <juri@jurta.org>
 -
 -      * buffer.c (Fswitch_to_buffer): Change interactive spec to call
 -      read-buffer-to-switch instead of using the letter "B".
 -
 -2008-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Qdefault_directory): New variable.
 -      (Fread_file_name): Use it to pass `dir' to the completion functions.
 -
 -2008-04-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (pos_visible_p): Check if iterator stops on a display string.
 -
 -2008-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (Vpre_help_message): Remove.
 -      (show_help_echo): Remove default C code.
 -
 -      * dired.c (directory_files_internal, file_name_completion):
 -      Only call ENCODE_FILE if the string is indeed decoded.
 -
 -2008-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in (TOOLKIT_DEFINES): Remove.
 -      (LIBW): Use a bit less #if, remove left over OPEN_LOOK stuff.
 -
 -2008-04-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (MAC_OBJ): Add mactoolbox.o.
 -      (mactoolbox.o): New target.
 -
 -      * mac.c [MAC_OSX] (select_and_poll_event, sys_select):
 -      Use mac_run_loop_run_once instead of CFRunLoopRunInMode.
 -
 -      * macfns.c (x_set_background_color, mac_window, x_create_tip_frame):
 -      Use mac_set_frame_window_background instead of XSetWindowBackground.
 -      (x_set_tool_bar_lines) [USE_MAC_TOOLBAR]:
 -      Use mac_is_window_toolbar_visible instead of IsWindowToolbarVisible.
 -      (x_set_name_internal) [TARGET_API_MAC_CARBON]: Use mac_set_window_title
 -      instead of SetWindowTitleWithCFString.
 -      (mac_update_proxy_icon) [TARGET_API_MAC_CARBON]: Remove BLOCK_INPUT.
 -      Move function to mactoolbox.c.
 -      (mac_update_title_bar) [TARGET_API_MAC_CARBON]:
 -      Use mac_set_window_modified instead of SetWindowModified.
 -      Add BLOCK_INPUT around mac_set_window_modified/mac_update_proxy_icon.
 -      (mac_window, x_create_tip_frame): Use mac_create_frame_window.
 -      (Fx_focus_frame): Use mac_front_non_floating_window instead of
 -      FrontNonFloatingWindow.  Use mac_activate_window instead of
 -      ActivateWindow.  Use mac_active_non_floating_window instead of
 -      ActiveNonFloatingWindow.
 -      (show_hourglass, hide_hourglass) [TARGET_API_MAC_CARBON]:
 -      Use mac_show_hourglass and mac_hide_hourglass.
 -      (compute_tip_xy) [TARGET_API_MAC_CARBON]: Use mac_get_global_mouse
 -      instead of GetGlobalMouse.
 -      (Fx_show_tip): Use mac_move_window/mac_size_window/mac_show_window
 -      instead of MoveWindow/SizeWindow/ShowWindow, respectively.
 -      Use mac_bring_window_to_front instead of BringToFront.
 -      (Qfile_name_history) [TARGET_API_MAC_CARBON]: Move extern to
 -      mactoolbox.c.
 -      (Fx_file_dialog) [TARGET_API_MAC_CARBON]: Move function body to
 -      mac_file_dialog in mactoolbox.c.  Use mac_file_dialog.
 -      (mac_nav_event_callback) [TARGET_API_MAC_CARBON]: Move function to
 -      mactoolbox.c.
 -
 -      * macgui.h [!HAVE_CARBON]: Include Quickdraw.h instead of QuickDraw.h.
 -      (XtPointer): Move typedef from macmenu.c.
 -      (enum button_type): Move enum from macmenu.c.
 -      (widget_value): Move typedef from macmenu.c.
 -      (M_APPLE, I_ABOUT, EXTRA_STACK_ALLOC, ARGV_STRING_LIST_ID)
 -      (DIALOG_LEFT_MARGIN, DIALOG_TOP_MARGIN, DIALOG_RIGHT_MARGIN)
 -      (DIALOG_BOTTOM_MARGIN, DIALOG_MIN_INNER_WIDTH, DIALOG_MAX_INNER_WIDTH)
 -      (DIALOG_BUTTON_BUTTON_HORIZONTAL_SPACE)
 -      (DIALOG_BUTTON_BUTTON_VERTICAL_SPACE, DIALOG_BUTTON_MIN_WIDTH)
 -      (DIALOG_TEXT_MIN_HEIGHT, DIALOG_TEXT_BUTTONS_VERTICAL_SPACE)
 -      (DIALOG_ICON_WIDTH, DIALOG_ICON_HEIGHT, DIALOG_ICON_LEFT_MARGIN)
 -      (DIALOG_ICON_TOP_MARGIN): Move defines from macmenu.c.
 -      (Selection): Move typedef from macselect.c.
 -      (RAM_TOO_LARGE_ALERT_ID, ABOUT_ALERT_ID) [MAC_OS8]: Move defines from
 -      macterm.c.
 -      (mac_set_window_title, mac_set_window_modified, mac_is_window_visible)
 -      (mac_is_window_collapsed, mac_bring_window_to_front)
 -      (mac_send_window_behind, mac_hide_window, mac_show_window)
 -      (mac_collapse_window, mac_front_non_floating_window)
 -      (mac_active_non_floating_window, mac_activate_window)
 -      (mac_move_window_structure, mac_move_window, mac_size_window)
 -      (mac_get_global_mouse, mac_is_window_toolbar_visible): New defines.
 -
 -      * macmenu.c [!TARGET_API_MAC_CARBON]: Move includes to mactoolbox.c.
 -      (enum mac_menu_kind): Move enum to mactoolbox.c.
 -      (min_menu_id): Move variable to mactoolbox.c.
 -      (quit_dialog_event_loop) [TARGET_API_MAC_CARBON]: Likewise.
 -      (DIALOG_WINDOW_RESOURCE): Move define to mactoolbox.c.
 -      (DIALOG_BUTTON_COMMAND_ID_OFFSET, DIALOG_BUTTON_COMMAND_ID_P)
 -      (DIALOG_BUTTON_COMMAND_ID_VALUE, DIALOG_BUTTON_MAKE_COMMAND_ID)
 -      [TARGET_API_MAC_CARBON]: Likewise.
 -      (XtPointer): Move typedef to macgui.h.
 -      (enum button_type): Move enum to macgui.h.
 -      (widget_value): Move typedef to macgui.h.
 -      (DIALOG_LEFT_MARGIN, DIALOG_TOP_MARGIN, DIALOG_RIGHT_MARGIN)
 -      (DIALOG_BOTTOM_MARGIN, DIALOG_MIN_INNER_WIDTH, DIALOG_MAX_INNER_WIDTH)
 -      (DIALOG_BUTTON_BUTTON_HORIZONTAL_SPACE)
 -      (DIALOG_BUTTON_BUTTON_VERTICAL_SPACE, DIALOG_BUTTON_MIN_WIDTH)
 -      (DIALOG_TEXT_MIN_HEIGHT, DIALOG_TEXT_BUTTONS_VERTICAL_SPACE)
 -      (DIALOG_ICON_WIDTH, DIALOG_ICON_HEIGHT, DIALOG_ICON_LEFT_MARGIN)
 -      (DIALOG_ICON_TOP_MARGIN): Move defines to macgui.h.
 -      (popup_activated_flag): Make variable non-static.
 -      (x_activate_menubar, install_menu_quit_handler, pop_down_menu)
 -      (add_menu_item, fill_menu, dispose_menus):
 -      Move functions to mactoolbox.c.
 -      (restore_show_help_function, menu_target_item_handler)
 -      (install_menu_target_item_handler, mac_handle_dialog_event)
 -      (install_dialog_event_handler, pop_down_dialog, create_and_show_dialog)
 -      [TARGET_API_MAC_CARBON]: Likewise.
 -      (menu_quit_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: Likewise.
 -      (mac_dialog) [!TARGET_API_MAC_CARBON]: Likewise.
 -      (find_and_call_menu_selection, name_is_separator): Make function
 -      non-static.
 -      (Vshow_help_function, timer_check) [TARGET_API_MAC_CARBON]: Move extern
 -      to mactoolbox.c.
 -      (set_frame_menubar): Don't call install_menu_quit_handler.
 -      (menu_item_selection): New variable.
 -      (mac_menu_show): Use create_and_show_popup_menu.
 -      (create_and_show_dialog) [TARGET_API_MAC_CARBON]: Don't return
 -      selection but set variable menu_item_selection.  All uses changed.
 -      (mac_fill_menubar): Rename from fill_menubar.  All uses changed.
 -      Call install_menu_quit_handler.  Move to mactoolbox.c.
 -
 -      * macselect.c [!TARGET_API_MAC_CARBON]: Don't include Scrap.h.
 -      (Selection): Move typedef to macgui.h.
 -      (Vselection_converter_alist, Qmac_scrap_name, Qmac_ostype)
 -      (Vmac_apple_event_map, Qmac_apple_event_class, Qmac_apple_event_id):
 -      Make variables non-static.
 -      (Vmac_dnd_known_types) [TARGET_API_MAC_CARBON]: Likewise.
 -      (mac_handle_apple_event, cleanup_all_suspended_apple_events):
 -      Make functions non-static.
 -      (Vmac_service_selection) [MAC_OSX]: Likewise.
 -      (mac_get_selection_from_symbol, get_flavor_type_from_symbol)
 -      (mac_valid_selection_target_p, mac_clear_selection)
 -      (mac_get_selection_ownership_info, mac_valid_selection_value_p)
 -      (mac_put_selection_value, mac_selection_has_target_p)
 -      (mac_get_selection_value, mac_get_selection_target_list)
 -      (init_apple_event_handler, install_drag_handler, remove_drag_handler):
 -      Move functions to mactoolbox.c.
 -      (mac_do_track_drag, mac_do_receive_drag) [TARGET_API_MAC_CARBON]:
 -      Likewise.
 -      (copy_scrap_flavor_data, mac_handle_service_event)
 -      (install_service_handler) [MAC_OSX]: Likewise.
 -      (syms_of_macselect) <Vmac_dnd_known_types>:
 -      Use mac_dnd_default_known_types.
 -
 -      * macterm.h (FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y):
 -      Move to mactoolbox.c.
 -      (HOURGLASS_WIDTH, HOURGLASS_HEIGHT): Change to 15.
 -      (Fx_selection_owner_p): Add EXFUN.
 -      (install_window_handler, remove_window_handler, XSetWindowBackground):
 -      Remove externs.
 -      (do_apple_menu) [!TARGET_API_MAC_CARBON]: Likewise.
 -      (mac_prepare_for_quickdraw) [USE_CG_DRAWING]: Likewise.
 -      (x_raise_frame, x_lower_frame, mac_alert_sound_play)
 -      (install_application_handler, mac_get_frame_bounds, mac_get_frame_mouse)
 -      (mac_convert_frame_point_to_global, mac_set_frame_window_background)
 -      (mac_update_begin mac_update_end, mac_frame_up_to_date, x_flush)
 -      (mac_create_frame_window, mac_dispose_frame_window, mac_begin_clip)
 -      (mac_end_clip, mac_create_scroll_bar, mac_dispose_scroll_bar)
 -      (mac_set_scroll_bar_bounds, mac_redraw_scroll_bar, mac_fill_menubar)
 -      (create_and_show_popup_menu, mac_get_selection_from_symbol)
 -      (mac_valid_selection_target_p, mac_clear_selection)
 -      (mac_get_selection_ownership_info, mac_valid_selection_value_p)
 -      (mac_put_selection_value, mac_selection_has_target_p)
 -      (mac_get_selection_value, mac_get_selection_target_list): Add externs.
 -      (mac_update_proxy_icon, mac_show_hourglass, mac_hide_hourglass)
 -      (mac_reposition_hourglass, mac_file_dialog, create_and_show_dialog)
 -      (mac_dnd_default_known_types) [TARGET_API_MAC_CARBON]: Likewise.
 -      (mac_run_loop_run_once) [MAC_OSX]: Likewise.
 -      (mac_dialog) [!TARGET_API_MAC_CARBON]: Likewise.
 -      (mac_begin_cg_clip, mac_end_cg_clip) [USE_CG_DRAWING]: Likewise.
 -      (x_set_toolkit_scroll_bar_thumb) [!USE_TOOLKIT_SCROLL_BARS]: Likewise.
 -      (x_scroll_bar_set_handle) [!USE_TOOLKIT_SCROLL_BARS]: Likewise.
 -
 -      * mactoolbox.c: New file.
 -
 -2008-04-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * dired.c (Ffile_attributes) [WINDOWSNT]: Cast uid and gid to unsigned.
 -
 -2008-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * character.c (Fmultibyte_char_to_unibyte):
 -      Return latin1 chars unchanged.
 -
 -      * fileio.c (Fexpand_file_name): Refine last fix so `nm' is only
 -      relocated if it points to `name'.
 -
 -2008-04-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * data.c (Faset): Allow setting a multibyte character in an
 -      ASCII-only unibyte string.
 -
 -      * lisp.h (STRING_SET_MULTIBYTE): New macro.
 -
 -2008-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in: Don't use HAVE_GTK and don't -DUSE_GTK since it's now
 -      done in config.h.
 -
 -2008-04-16  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * character.c (Fchar_bytes, Fchar_width, Fstring_width)
 -      (Fchar_direction): Add usage in the docstring.
 -
 -2008-04-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_key_sequence): Remove always-true checks.
 -
 -2008-04-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open_internal): Set max_bounds.descent in
 -      compatibility struct, for better underline positioning.
 -
 -2008-04-13  David Hansen  <david.hansen@gmx.net>
 -
 -      * dbusbind.c (dbus-get-unique-name): Remove extra copying of name
 -      string.
 -
 -2008-04-12  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/hp800.h (XUINT, XSET): Remove.
 -
 -2008-04-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fileio.c (Fexpand_file_name): Add declaration for `p' missing in
 -      previous change.
 -
 -2008-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fexpand_file_name): Tighten the scope of `p' and `o' vars.
 -      Relocate `nm' after calling DECODE_FILE, in case the GC was run.
 -
 -2008-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.h (map_keymap_canonical): Declare.
 -      * xmenu.c (single_keymap_panes): Use it.
 -
 -2008-04-11  Glenn Morris  <rgm@gnu.org>
 -
 -      * eval.c (Fdefvaralias): If the alias is bound and the target is not,
 -      set the target's value to that of the alias.
 -
 -2008-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * term.c (set_tty_color_mode): Left over typo.
 -
 -2008-04-10  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * fileio.c (Fmake_symbolic_link): Surround code by #ifdef S_IFLNK
 -      only after check for file name handler functions.  Signal, when
 -      native functionality is not supported.
 -      (syms_of_fileio): Declare it unconditionally.
 -
 -2008-04-10  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (is_simple_dialog, simple_dialog_show): New functions.
 -      (Fx_popup_dialog): Handle simple yes/no questions as dialogs.
 -
 -      * w32.c (logon_network_drive): Also logon to remote drives that
 -      are mapped to drive letters.
 -
 -2008-04-10  Glenn Morris  <rgm@gnu.org>
 -
 -      * xdisp.c (truncate-partial-width-windows): Doc fix.
 -
 -2008-04-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (read_file_name_cleanup, Fread_file_name_internal):
 -      Move functions to minibuffer.el.
 -      (syms_of_fileio): Don't declare them.
 -
 -2008-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (Vcompletion_auto_help): Move to minibuffer.el.
 -      (syms_of_minibuf): Remove its initialization.
 -
 -      * minibuf.c (temp_echo_area_glyphs): Remove unused function.
 -
 -2008-04-09  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * editfns.c (Ffield_string_no_properties): Fix typo in docstring.
 -
 -2008-04-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (distclean): Delete makefile too.
 -      (maintainer-clean): New target.
 -
 -      * xdisp.c (redisplay_internal) [!WINDOWSNT]: Conditionalize last change.
 -
 -      * w32term.c (w32_compute_glyph_string_overhangs): Compute overhangs
 -      for new font backend and composite cases.
 -
 -2008-04-09  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * atimer.c (alarm_signal_handler): Call run_timers if not SYNC_INPUT.
 -      Most of the code moved to run_timers.
 -      (do_pending_atimers): Call run_timers.
 -      (run_timers): New function.
 -
 -      * sysdep.c (emacs_write): If SYNC_INPUT and pending_atimers,
 -      run atimers.
 -
 -      * process.c (wait_reading_process_output): The same as above.
 -
 -2008-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (last_exact_completion): Remove variable.
 -      (Fdelete_minibuffer_contents, do_completion, Fminibuffer_complete)
 -      (complete_and_exit_1, complete_and_exit_2)
 -      (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
 -      (Fdisplay_completion_list, display_completion_list_1)
 -      (Fminibuffer_completion_help, Fself_insert_and_exit)
 -      (Fexit_minibuffer, Fminibuffer_message): Move functions to
 -      minibuffer.el.
 -      (syms_of_minibuf): Remove corresponding initializations.
 -
 -      * keyboard.c (Qdeactivate_mark): New var.
 -      (command_loop_1): Use it to call `deactivate-mark'.
 -      (syms_of_keyboard): Initialize it.
 -
 -      * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
 -      to another frame.
 -      * frame.c (do_switch_frame): Refine the top_frame/async_visible code.
 -      Don't call set_tty_color_mode.
 -      (store_frame_param): Reset previous_frame rather than call
 -      set_tty_color_mode.
 -      * term.c (set_tty_color_mode): Rewrite.
 -      * dispextern.h (set_tty_color_mode): New type.
 -      * termchar.h (struct tty_display_info): Add `previous_color_mode'.
 -
 -2008-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (access_keymap): Remove the value 2 for t_ok which was used
 -      for generic chars, which do not exist any more in emacs-unicode.
 -
 -2008-04-08  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * coding.c (detect_coding_emacs_mule)
 -      (Ffind_operation_coding_system): Fix typo.
 -
 -2008-04-08  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (SNAME): Extract only symbol name.
 -
 -      * w32font.h (struct w32_metric_cache): New struct.
 -      (w32font_info): Use it.
 -      (W32METRIC_NO_ATTEMPT, W32METRIC_SUCCESS, W32METRIC_FAIL)
 -      (CACHE_BLOCKSIZE): New constants.
 -
 -      * w32font.c (Qja, Qko, Qzh): New symbols.
 -      (syms_of_w32font): Initialise them.
 -      (font_matches_spec): Use them to filter by language.
 -      (recompute_cached_metrics): Remove function.
 -      (compute_metrics, clear_cached_metrics): New functions.
 -      (w32font_encode_char): Use them to manage metric cache.
 -      (w32font_text_extents): Cache metrics for all glyphs on demand.
 -      Delay converting glyph indices to WORD until needed.
 -      (w32font_open_internal): Initialize metric cache to empty.
 -      (registry_to_w32_charset): Charset should always be a symbol.
 -      (fill_in_logfont, list_all_matching_fonts): Family should
 -      always be a symbol.
 -
 -2008-04-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_shape): Increase items buffer size.
 -      Give up if glyph indices not supported.  Use uniscribe obtained
 -      ABC widths for individual metrics.  Map glyph clusters back to
 -      characters using fClusterStart flag.  Return number of glyphs
 -      produced, not chars processed.
 -      (uniscribe_shape): Map char at FROM to current glyph.
 -
 -2008-04-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (fill_menu) [TARGET_API_MAC_CARBON]:
 -      Use SetMenuItemHierarchicalMenu.
 -
 -2008-04-05  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (pbm_load): Allow color values up to 65535.
 -      Throw an error if max_color_idx is outside the supported range.
 -      Report an error when image size is invalid.
 -      Read two bytes at a time when raw images have max_color_idx above 255.
 -
 -2008-04-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (readdir): If FindFirstFile/FindNextFile return in
 -      cFileName a file name that includes `?' characters, use the 8+3
 -      alias in cAlternateFileName instead.
 -
 -2008-04-05  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ccl.c (ccl_driver): If ccl->quit_silently is nonzero, don't
 -      append "CCL: Quitted" when the CCL program is quitted.
 -      (setup_ccl_program): Initialize ccl->quit_silently to zero.
 -
 -      * ccl.h (struct ccl_program): New member quit_silently.
 -
 -2008-04-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * search.c (compile_pattern_1): Treat non-nil and non-string of
 -      search-spaces-regexp as nil.
 -
 -      * minibuf.c (Fassoc_string): Tweak docstring.
 -
 -2008-04-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Support inode numbers wider than 32
 -      bits.  Remove ugly WINDOWSNT-specific kludge introduced on
 -      2008-03-14 to force inode be positive.
 -
 -      * w32.c (sys_chown, stat, fstat): Use S_* constants instead of
 -      _S_* ones, since we now use our own sys/stat.h.
 -      (stat, fstat): Don't mangle the inode number.
 -      (init_user_info): Don't restrict UID and GID to 0-60000 range.
 -
 -2008-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.h (struct frame): Give one more bit to `visible' since we use
 -      values larger than 1 to indicate obscured frames on ttys.
 -
 -      * keymap.c (Qkeymap_canonicalize): New var.
 -      (Fmap_keymap_internal): New fun.
 -      (describe_map): Use keymap-canonicalize.
 -
 -      * undo.c (last_boundary_buffer, last_boundary_position): New vars.
 -      (Fundo_boundary): Set them.
 -      (syms_of_undo): Initialize them.
 -      (record_point): Use them instead of last_point_position*.
 -      (last_undo_buffer): Change type.
 -
 -2008-04-04  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_text_extents): Use font's ascent and descent.
 -      (recompute_cached_metrics): Don't set ascent and descent per char.
 -
 -      * w32uniscribe.c (uniscribe_check_otf): Fix last change.
 -      (uniscribe_check_otf): Add GC protection before consing.
 -      Rearrange loop for counting features.
 -
 -2008-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * insdel.c (insert_from_buffer_1): Don't compare bytes in destination
 -      buffer with byte-size of source buffer.
 -
 -2008-04-03  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * callint.c (Fcall_interactively): Handle temporary region even
 -      when shift-select-mode is off.
 -
 -2008-04-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c (uniscribe_check_otf): Sanity check otf_spec.
 -
 -2008-04-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (CATEGORY_MASK_ANY): Add CATEGORY_MASK_UTF_16_AUTO.
 -      (CATEGORY_MASK_UTF_16): Likewise.
 -      (detect_coding_utf_16): Add heuristics to reject utf-16 for a
 -      binary file.
 -      (detect_coding): Add null-byte detection for a binary file.
 -      (detect_coding_system): Likewise.
 -
 -2008-04-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32uniscribe.c: New file.
 -
 -      * font.h (uniscribe_font_driver) [WINDOWSNT]: Declare for w32fns.c.
 -
 -      * w32font.h (uniscribe_check_otf): Declare for w32font.c.
 -
 -      * w32font.c (Qbalinese, Qbuginese, Qbuhid, Qcuneiform, Qcypriot)
 -      (Qdeseret, Qglagolitic, Qgothic, Qhanunoo, Qkharoshthi)
 -      (Qlimbu, Qlinear_b, Qold_italic, Qold_persian, Qosmanya)
 -      (Qphags_pa, Qphoenician, Qshavian, Qsyloti_nagri)
 -      (Qtagalog, Qtagbanwa, Qtai_le, Qtifinagh, Qugaritic)
 -      (Qphonetic): New symbols.
 -      (syms_of_w32font): Initialize them.
 -      (font_supported_scripts): Use them.
 -      (w32font_list_family): List all charsets.
 -      (w32font_text_extents, recompute_cached_metrics): Fix metric
 -      calculations.
 -      (w32_enumfont_pattern_entity): Make full_type a DWORD.
 -      Give opentype fonts their own format.
 -      (font_matches_spec): New arguments backend and logfont.
 -      Handle :otf spec for uniscribe backend.
 -      (add_font_entity_to_list): Match truetype fonts in uniscribe backend.
 -      (fill_in_logfont): Use DEFAULT_CHARSET when charset not supplied.
 -
 -      * w32fns.c (Fx_create_frame): Conditionally register uniscribe
 -      font backend.
 -      (globals_of_w32fns): Initialize uniscribe font backend.
 -
 -      * makefile.w32-in (CONFIG_H): New variable.  Use it to clean up
 -      dependencies.
 -      (w32uniscribe.$(O)): New file to build.
 -      (FONT_OBJ): Include w32uniscribe.$(O).
 -      (LIBS): Add uniscribe libraries.
 -
 -      * ftfont.c (ftfont_get_open_type_spec): Check spec->script, not val.
 -
 -2008-04-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * callint.c (Vshift_select_mode): New var.
 -      (Finteractive): Document new ^ spec.
 -      (Fcall_interactively): Call handle-shift-selection if the ^ spec
 -      is present.
 -
 -      * keyboard.c (Vthis_command_keys_shift_translated): New var.
 -      (command_loop_1): Avoid running the direct display versions of
 -      forward-char and backward-char if shift-selection may occur.
 -      (read_key_sequence): Set Vthis_command_keys_shift_translated if
 -      shift-translation takes place.
 -
 -      * buffer.c (Vtransient_mark_mode): Move docstring to simple.el to
 -      avoid clobbering by define-minor-mode.
 -
 -      * cmds.c (Fforward_char, Fbackward_char, Fforward_line)
 -      (Fbeginning_of_line, Fend_of_line): Add ^ interactive spec.
 -
 -      * syntax.c (Fforward_word): Add ^ interactive spec.
 -
 -      * window.c (Fscroll_up, Fscroll_down, Fscroll_left)
 -      (Fscroll_right): Add ^ interactive spec.
 -
 -2008-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (try_window_id): Don't forget to reset delta_bytes.
 -
 -      * casefiddle.c (casify_object): Fix up int/EMACS_INT mixup.
 -
 -      * charset.c (Funibyte_charset, Fset_unibyte_charset): Remove.
 -
 -2008-03-31  Juri Linkov  <juri@jurta.org>
 -
 -      * window.c (Fdisplay_buffer): Reinitialize `tem' to nil.
 -
 -2008-03-30  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_set_geometry): Fix indentation.
 -      (xg_resize_outer_widget): Remove.
 -      (x_wm_size_hint_off): Fix indentation.
 -      (xg_frame_set_char_size): Call flush_and_sync after
 -      gtk_window_resize.
 -      (x_wm_set_size_hint): Pass NULL as geometry window to
 -      gtk_window_set_geometry_hints due to Gtk+ bug nr 68668.
 -      Add menu bar and tool bar height to base height.
 -      (xg_update_frame_menubar, free_frame_menubar)
 -      (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
 -      (update_frame_tool_bar, free_frame_tool_bar):
 -      Change xg_resize_outer_widget to xg_frame_set_char_size.
 -
 -2008-03-30  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (QCdbus_timeout): New D-Bus internal symbol.
 -      (Fdbus_call_method): New parameter TIMEOUT.
 -      (dbus-send-signal): Optimize UNGCPRO call.
 -
 -2008-03-29  Juri Linkov  <juri@jurta.org>
 -
 -      * window.c (Fdisplay_buffer): Move call to
 -      Vsplit_window_preferred_function out of conditions that check
 -      if window is eligible for vertical splitting.
 -      When Vsplit_window_preferred_function is non-nil, call it and use
 -      its non-nil return value as window.  Otherwise, continue doing
 -      vertical splitting using Fsplit_window with arg horflag=nil.
 -      (syms_of_window) <Vsplit_window_preferred_function>: Change the
 -      default value from `split-window' to nil.
 -
 -2008-03-29  Juri Linkov  <juri@jurta.org>
 -
 -      * callint.c (Fcall_interactively): Revert 2008-03-16 change
 -      for interactive code letters 'b' and 'B'.
 -
 -2008-03-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fexpand_file_name): Convert the value of $HOME to a
 -      multibyte string.
 -
 -2008-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (pending_funcalls): New var.
 -      (timer_check): Run it.
 -      (syms_of_keyboard): Initialize it.
 -      * terminal.c (Qrun_hook_with_args, Qdelete_terminal_functions)
 -      (Vdelete_terminal_functions): New vars.
 -      (syms_of_terminal): Initialize them.
 -      (Fdelete_terminal): Run delete-terminal-functions.
 -      * xdisp.c (safe_eval): Rewrite.
 -      (safe_call2): New fun.
 -      * frame.c (Qdelete_frame_functions): New var.
 -      (syms_of_frame): Initialize it.
 -      (Fdelete_frame): Use it and use safe_call2 and pending_funcalls.
 -      * lisp.h (safe_call2, pending_funcalls): Declare.
 -
 -2008-03-28  Andreas Schwab  <schwab@suse.de>
 -
 -      * indent.c (Fmove_to_column): Move declaration before statements.
 -
 -2008-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.h (enum fullscreen_type): Give it a name.  Move it before use.
 -      (struct frame): Use bit fields for boolean vars.
 -
 -      * process.c (server_accept_connection): Simplify naming.
 -      (emacs_get_tty_pgrp): Use SDATA.
 -
 -      * coding.c (decode_coding_object): Fix last change.
 -
 -2008-03-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (start_hourglass): Suppress hourglass on tty frames.
 -
 -2008-03-27  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * charset.c (Fdefine_charset_internal): Change the way of
 -      registering charsets in Vcharset_order_list.
 -      (syms_of_charset): Make the charset `eight-bit' supplementary.
 -
 -2008-03-26  Alexandre Oliva  <aoliva@redhat.com>  (tiny change)
 -
 -      * regex.c (EXTEND_BUFFER): Change order of pointer addition
 -      operations, to avoid having the difference between pointers
 -      overflow.
 -
 -2008-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * indent.c (check_display_width): New fun.
 -      (scan_for_column): Use it.
 -
 -      * data.c (syms_of_data): Mark most-positive-fixnum and
 -      most-negative-fixnum as constants.
 -
 -      * xdisp.c (redisplay_internal): Reset selected_frame earlier.
 -
 -      * indent.c (scan_for_column): Extract from current_column_1.
 -      Merge with the same code from Fmove_to_column.
 -      (current_column_1, Fmove_to_column): Use it.
 -
 -2008-03-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (map_keymap_internal): New fun.
 -      (map_keymap): Use it.
 -      (Fmap_keymap_internal): New fun.
 -      (Fmap_keymap): Remove left-out test from before make_save_value.
 -
 -      * keymap.c (Fmap_keymap): Use `map-keymap-sorted.
 -
 -      * frame.c (Fmodify_frame_parameters, x_set_frame_parameters):
 -      Use XCAR/XCDR.
 -
 -      * process.h (struct Lisp_Process): Remove filter_multibyte.
 -      * process.c (QCfilter_multibyte): Remove.
 -      (setup_process_coding_systems): Don't use filter_multibyte.
 -      (Fstart_process, Fmake_network_process): Don't set filter_multibyte.
 -      (read_process_output): Don't adjust multibyteness to filter_multibyte.
 -      (Fset_process_filter_multibyte): Change the coding-system to
 -      approximate the previous behavior.
 -      (Fprocess_filter_multibyte_p): Get the multibyteness straight from the
 -      coding-system.
 -
 -      * coding.c (decode_coding_object): When not decoding into a buffer,
 -      obey the coding system's preference of (uni|multi)byte.
 -
 -2008-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * casefiddle.c (casify_object): Avoid pathological N^2 worst case if
 -      every char is changed and has a different byte-length.
 -      (Fupcase_word, Fdowncase_word, Fcapitalize_word, operate_on_word):
 -      Fix int -> EMACS_INT.
 -
 -2008-03-23  David Hansen  <david.hansen@gmx.net>
 -
 -      * dbusbind.c (xd_read_message): Remove extra copying of message
 -      strings.  Check for NULL `interface' or `member'.
 -
 -2008-03-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (readdir): If FindFirstFile/FindNextFile return in
 -      cFileName a file name that includes `?' characters, use the 8+3
 -      alias in cAlternateFileName instead.
 -
 -2008-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (enlarge_buffer_text): Fix int -> EMACS_INT.
 -
 -2008-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * intervals.c (temp_set_point, temp_set_point_both): Use EMACS_INT.
 -      (set_point, set_point_both): Use EMACS_INT.  Remove `buffer' arg,
 -      work on current_buffer only instead (that was already the case
 -      for some of the code anyway).
 -      * buffer.h (set_point, set_point_both): Remove buffer arg, use long int.
 -      (temp_set_point, temp_set_point_both): Use EMACS_INT.
 -      (SET_PT, SET_PT_BOTH): Adjust.
 -      * intervals.h (set_point, temp_set_point, set_point_both)
 -      (temp_set_point_both): Remove redundant declarations.
 -
 -2008-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Finsert_file_contents):
 -      * lread.c (Feval_buffer): Use BUF_TEMP_SET_PT.
 -      * buffer.h (BUF_SET_PT): Remove.  set_point_both doesn't work right
 -      when buffer != current_buffer anyway.
 -
 -2008-03-20  Andreas Schwab  <schwab@suse.de>
 -
 -      * callint.c (Fcall_interactively) [case 'B']: Use other-buffer
 -      as default.
 -
 -2008-03-19  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (hourglass_timer, hourglass_hwnd): New variables.
 -      (syms_of_w32fns): Initialize them.
 -      (HOURGLASS_ID): New constant.
 -      (x_window_to_frame): Don't check hourglass_window.
 -      (w32_wnd_proc) <WM_TIMER>: Handle hourglass_timer.
 -      (w32_wnd_proc) <WM_EXITMENULOOP>: Set pending hourglass cursor.
 -      (w32_wnd_proc) <WM_SETCURSOR>: Set the hourglass or current cursor.
 -      (w32_wnd_proc) <WM_EMACS_SETCURSOR>: Set frame's current_cursor.
 -      Only change the cursor if hourglass is not active.
 -      (Fx_create_frame): Initialize frame's current_cursor.
 -      (hourglass_atimer): Remove.
 -      (hourglass_started): New function.
 -      (start_hourglass, cancel_hourglass, hide_hourglass): Adapt to w32.
 -      (show_hourglass): Adapt to w32, changing argument to frame.
 -
 -      * w32term.h (struct w32_output): Remove hourglass_window.
 -      Add current_cursor.
 -
 -      * eval.c (call_debugger, Fsignal):
 -      * keyboard.c (recursive_edit_1, cmd_error, Ftop_level)
 -      (command_loop_1, Fread_key_sequence, Fread_key_sequence_vector)
 -      (Fexecute_extended_command, cancel_hourglass_unwind):
 -      * minibuf.c (read_minibuf):
 -      * fns.c (Fy_or_n_p): Enable hourglass when HAVE_WINDOW_SYSTEM.
 -
 -2008-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (run_funs): New fun.
 -      (run_window_configuration_change_hook): Use it to run the buffer-local
 -      and the global part of the hook.
 -
 -      * xdisp.c (format_mode_line_unwind_data): Add window argument.
 -      (unwind_format_mode_line): Restore selected window.
 -      (x_consider_frame_title, Fformat_mode_line): Set selected window.
 -
 -2008-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (Fchar_equal): Check they are valid characters.
 -
 -      * buffer.h (Fbuffer_list): Declare (for use in callint.c).
 -
 -2008-03-17  Andreas Schwab  <schwab@suse.de>
 -
 -      * regex.c (re_match_2_internal): Properly match raw 8-bit bytes
 -      against a charset.
 -
 -      * lisp.h (Fbuffer_list): Declare.
 -
 -2008-03-17  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (free_frame_tool_bar): Only call gtk_container_remove if
 -      handlebox_widget is != 0.
 -
 -2008-03-16  Juri Linkov  <juri@jurta.org>
 -
 -      * callint.c (Fcall_interactively): For interactive code letters
 -      'b' and 'B' put the buffer list into the list of default "future"
 -      values of the minibuffer.
 -
 -2008-03-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * keyboard.c (read_key_sequence): Fix downcasing of letters with
 -      modifiers.
 -
 -      * regex.c (re_match_2_internal): Correct matching of a charset
 -      against latin-1 characters.
 -
 -2008-03-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY)
 -      (STRING_CHAR_ADVANCE_NO_UNIFY): New macros.
 -      (coding_alloc_by_making_gap): Fix the way to preserve data in the gap.
 -      (alloc_destination): Fix the 2nd arg to coding_alloc_by_making_gap.
 -      (encode_coding_utf_8): Use CHAR_STRING_ADVANCE_NO_UNIFY instead of
 -      CHAR_STRING_ADVANCE.
 -      (produce_chars): Fix for the case that the source and the
 -      destination are the same buffer.  Use CHAR_STRING_ADVANCE_NO_UNIFY
 -      instead of CHAR_STRING_ADVANCE.
 -      (consume_chars): Use STRING_CHAR_ADVANCE_NO_UNIFY instead of
 -      STRING_CHAR_ADVANCE.
 -
 -2008-03-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * regex.c (re_match_2_internal): Correct matching of eight bit
 -      characters in unibyte strings.
 -
 -2008-03-15  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * buffer.c (overlays_in, Foverlays_in): Include empty overlays
 -      at end of range when it coincides with the end of the buffer.
 -
 -2008-03-14  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes) [WINDOWSNT]: Force inode be positive.
 -
 -      * w32fns.c (globals_of_w32fns, Fx_create_frame): Fix last change.
 -
 -2008-03-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * editfns.c (initial_tz): New variable.
 -      (syms_of_editfns): Initialize it.
 -      (Fset_time_zone_rule): Set it when first called.
 -      Use it when TZSTRING is nil.
 -
 -      * w32fns.c (MONITOR_DEFAULT_TO_NEAREST, struct MONITOR_INFO)
 -      (MonitorFromPoint_Proc, GetMonitorInfo_Proc): New definitions.
 -      (monitor_from_point_fn, get_monitor_info_fn): New globals.
 -      (globals_of_w32fns): Initialize them.
 -      (compute_tip_xy): Use them to position tooltips.
 -
 -2008-03-14  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (main): Revert previous change.
 -      (standard_args): Revert -internal-script back to -scriptload,
 -      and remove the long-option form.
 -
 -2008-03-13  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (main, standard_args): Rename -scriptload to -internal-script.
 -      Remove option -enable-font-backend.
 -
 -2008-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fswitch_to_buffer): Fall back on pop-to-buffer.
 -
 -2008-03-11  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_connection_closed): For GTK: If this is the last
 -      terminal just exit without closing the display.
 -
 -2008-03-11  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_full_name): Use floor to round.
 -
 -2008-03-10  Dhruva Krishnamurthy  <dhruvakm@gmail.com>  (tiny change)
 -
 -      * sound.c (alsa_configure): Declare vol at beginning of block.
 -
 -      * fontset.c (Ffontset_info): Remove extra semicolon.
 -
 -2008-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fsubstitute_in_file_name): Fix up computation of maximum
 -      size of resulting string.
 -
 -2008-03-10  Jason Rumney  <jasonr@gnu.org>
 -
 -      * dispnew.c (adjust_glyph_matrix): Initialize window_height.
 -
 -2008-03-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (handle_single_display_spec): Undo 2007-10-16 changes.
 -      Don't pretend as if characters with display property haven't been
 -      consumed for string-replacing-string case.
 -
 -2008-03-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (GET_NEXT_DISPLAY_ELEMENT): New macro.
 -      (get_next_display_element, next_element_from_string)
 -      (next_element_from_ellipsis, next_element_from_buffer): Use it.
 -
 -2008-03-08  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.h (struct Lisp_Process): Declare bit fields as unsigned.
 -
 -2008-03-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32_registry): Take font_type argument.  Use ANSI
 -      when charset not specified.  Only translate ANSI to unicode when
 -      font_type is truetype.
 -      (w32font_coverage_ok): New function.
 -      (add_font_entity_to_list): Use it to filter unsuitable fonts.
 -
 -2008-03-05  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * lread.c (Fread_char): Resolve modifiers.
 -      (Fread_char_exclusive): Likewise.
 -
 -      * character.c (char_resolve_modifier_mask): New function.
 -      (char_string): Use char_resolve_modifier_mask.
 -      (Fchar_resolve_modifiers): New function.
 -      (syms_of_character): Declare Fchar_resolve_modifiers as Lisp
 -      function.
 -
 -2008-03-04  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in: Always include w32font.c in the build.
 -      * w32font.c: Wrap in USE_FONT_BACKEND conditional.
 -
 -2008-03-04  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in (clean): Remove emacs-*.*.* instead of emacs-*.
 -      (versionclean): Likewise.
 -
 -2008-03-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * .cvsignore: Add oo.
 -
 -2008-03-03  Andreas Schwab  <schwab@suse.de>
 -
 -      * coding.c (decode_coding_object): Inhibit gap shrinking while
 -      decoding in place.
 -
 -2008-03-03  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * w32term.c: Remove unused include "gnu.h".
 -      * makefile.w32-in (w32term.o): Don't depend on gnu.h.
 -
 -      * gnu.h: Rename to ...
 -      * emacs-icon.h: ... this.
 -      * xterm.c: Use emacs-icon.h instead of gnu.h.
 -      * Makefile (xterm.o): Depend on emacs-icon.h, not gnu.h.
 -
 -2008-03-03  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32font.c: Include math.h.
 -
 -2008-03-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (recompute_cached_metrics): Change font arg to w32font_info.
 -      Compute options separately.
 -      (w32font_open_internal): Set glyph_idx before caching metrics.
 -
 -      * w32font.h (NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1):
 -      Define if system headers don't.
 -      (struct w32font_info): Enlarge ascii_metrics.  Add glyph_idx.
 -      (w32font_encode_char): Don't declare here.
 -
 -      * w32font.c (Quniscribe, QCformat): New symbols.
 -      (syms_of_w32font): Define them.
 -      (w32font_has_char): Indicate uncertainty.
 -      (w32font_encode_char): Encode as glyph point.  Make static.
 -      (recompute_cached_metrics): New function.
 -      (w32font_open_internal): Use it.  Set font to use glyph points
 -      initially.  Set format based on type of font.
 -      (w32font_text_extents, w32font_draw): Optionally use glyph points.
 -      (w32_enumfont_pattern_entity): Accept backend arg.  Set type based
 -      on it.  Set format based on information available here.
 -      (add_font_entity_to_list): Identify backend based on opentype_only.
 -
 -2008-03-02  Andreas Schwab  <schwab@suse.de>
 -
 -      * ftfont.c (ftfont_pattern_entity): Fix aliasing violations.
 -
 -      * coding.c (decode_coding_big5, produce_chars):
 -      Fix typos in last change.
 -
 -2008-03-02  Kentaro Ohkouchi  <nanasess@fsm.ne.jp>
 -
 -      * gnu.h: New icon.
 -
 -2008-03-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_utf_8): When eol-type of CODING is
 -      `dos', don't decode '\r' if that is the last in the source.
 -      (decode_coding_utf_16, decode_coding_emacs_mule)
 -      (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
 -      (decode_coding_raw_text, decode_coding_charset): Likewise.
 -      (produce_chars): Don't decode EOL here.  Use EMACS_INT.
 -
 -2008-03-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_full_name): Report point size for scalable fonts.
 -
 -2008-03-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (CHAR_GLYPH_SPACE_P): Check for default face.
 -
 -2008-03-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_full_name): New function.
 -      (w32font_open_internal): Use it.
 -
 -2008-03-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (line_draw_cost): Fix invalid glyph check.
 -
 -2008-03-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * font.c (font_unparse_fcname): Increase len when style is a symbol.
 -
 -2008-03-01  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): For Gtk+ and ConfigureNotify, call
 -      xg_frame_resized when the event is for the edit widget.
 -
 -      * gtkutil.h (xg_frame_resized): Renamed from xg_resize_widgets.
 -
 -      * gtkutil.c (xg_resize_outer_widget): Only do one of set_geometry or
 -      set_char_size.
 -      (xg_frame_resized): Renamed from xg_resize_widgets.  Remove all
 -      operations on widgets here.  Just set frame size if needed.
 -      (flush_and_sync, x_wm_size_hint_off, xg_pack_tool_bar): New functions.
 -      (xg_frame_set_char_size): Call x_wm_size_hint_off before resizing.
 -      (x_wm_set_size_hint): Set size hints on the edit widget only, not
 -      the whole frame.
 -      (xg_create_tool_bar): Move attachment of the tool bar to
 -      xg_pack_tool_bar.  Do not attach the tool bar if there are no items.
 -      (free_frame_tool_bar): Remove call to SET_FRAME_GARBAGED.
 -
 -2008-03-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_msg_pump): Disable debug code.
 -
 -2008-03-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * m/intel386.h [MAC_OSX || DARWIN]: Define NO_ARG_ARRAY if _LP64.
 -
 -2008-02-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (next_overlay_string): Don't set
 -      overlay_strings_at_end_processed_p if we're currently reading from
 -      a display string.
 -
 -2008-02-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (get_overlay_strings_1): Fix typo.
 -
 -2008-02-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (get_overlay_strings_1): Add missing argument type.
 -
 -2008-02-28  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ftfont.c (ftfont_match): Explicitly set pixelsize in pattern.
 -
 -      * xdisp.c (display_mode_element): Cancel the previous change.
 -      (decode_mode_spec): Likewise.
 -      (handle_auto_composed_prop): Don't make composition if it->string
 -      is a string.
 -
 -2008-02-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * lisp.h (GLYPH): Change type from int to struct with separate char
 -      and face_id members.
 -      (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Delete macros.
 -      (GLYPH_CHAR, GLYPH_FACE): Remove slow versions with frame arg.
 -      (FAST_GLYPH_CHAR, FAST_GLYPH_FACE): Rename macros to ...
 -      (GLYPH_CHAR, GLYPH_FACE): ... these.  Change users.
 -      (FAST_MAKE_GLYPH, MAKE_GLYPH): Remove.  Rewrite users to use ...
 -      (SET_GLYPH, SET_GLYPH_CHAR, SET_GLYPH_FACE): ... these macros instead.
 -      (GLYPH_CODE_CHAR, GLYPH_CODE_FACE, GLYPH_CODE_P)
 -      (GLYPH_CODE_CHAR_VALID_P, SET_GLYPH_FROM_GLYPH_CODE): New macros to
 -      handle new Lisp glyph code encoding, either an integer or a cons.
 -
 -      * disptab.h (GLYPH_SIMPLE_P): Rewrite.
 -      (GLYPH_ALIAS): Delete.
 -      (GLYPH_ALIAS_P, GLYPH_FOLLOW_ALIASES): Rewrite.
 -      (GLYPH_LENGTH, GLYPH_STRING): Use GLYPH_CHAR.
 -      (GLYPH_FROM_CHAR): Replace macro by ...
 -      (SET_GLYPH_FROM_CHAR): ... this macro.  Change users.
 -
 -      * dispextern.h (CHAR_GLYPH_SPACE_P): Simplify.
 -      (GLYPH_FROM_CHAR_GLYPH): Replace macro by ...
 -      (SET_GLYPH_FROM_CHAR_GLYPH): ... this macro.  Change users.
 -      (GLYPH_INVALID_P): New macro.
 -      (spec_glyph_lookup_face): Update prototype.
 -
 -      * dispnew.c (line_draw_cost): Adapt to new glyph type.
 -      (build_frame_matrix_from_leaf_window): Adapt to new glyph type and
 -      new glyph code encoding.
 -      (spec_glyph_lookup_face): No return value; update passed glyph instead.
 -      (init_display): Use SET_CHAR_GLYPH to initialize space_glyph.
 -
 -      * xdisp.c (get_next_display_element, next_element_from_display_vector):
 -      Adapt to new glyph type and new glyph code encoding.
 -
 -      * term.c (encode_terminal_code, produce_special_glyphs): Likewise.
 -
 -      * indent.c (current_column, current_column_1, Fmove_to_column)
 -      (compute_motion): Adapt to new glyph code encoding.
 -
 -      * msdos.c (IT_write_glyphs): Adapt to new glyph type.
 -
 -2008-02-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * process.c (wait_reading_process_output): Check for window
 -      changes caused by timers.
 -      Suggested by Johan Bockgård.
 -
 -2008-02-27  Glenn Morris  <rgm@gnu.org>
 -
 -      * emacs.c (USAGE1): Add `--disable-font-backend'.
 -
 -2008-02-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Finsert_file_contents): Don't reset undo_list if no change
 -      is made to the buffer.
 -
 -2008-02-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dispextern.h (face_at_buffer_position, face_for_overlay_string)
 -      (face_at_string_position):
 -      * xfaces.c (face_at_buffer_position, face_for_overlay_string)
 -      (face_at_string_position):
 -      * xdisp.c (display_string, next_overlay_change):
 -      * buffer.h (overlays_at):
 -      * buffer.c (overlays_at): Use EMACS_INT for buffer positions.
 -      Update callers.
 -
 -2008-02-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Fformat): Doc fix.
 -
 -2008-02-26  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * font.c (Ffont_spec, Ffont_at): Fix typos in docstrings.
 -      (Ffont_put, Flist_families, Ffont_fill_gstring, Ffont_drive_otf)
 -      (Ffont_otf_alternates, Fquery_font): Doc fixes.
 -
 -2008-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fbuffer_swap_text): New function.
 -      (syms_of_buffer): Defsubr it.
 -
 -2008-02-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (command_loop_1): Revert 2006-10-09 change.
 -
 -2008-02-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_draw): Draw one character at a time when padding.
 -
 -2008-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fdelete_window, Fadjust_window_trailing_edge):
 -      Handle a nil arg.  Use run_window_configuration_change_hook.
 -      (delete_window, adjust_window_trailing_edge): Don't handle nil any more.
 -      (Fenlarge_window, Fshrink_window, Fset_window_configuration):
 -      Use run_window_configuration_change_hook.
 -
 -2008-02-25  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xdisp.c (x_produce_glyphs): For a visible glyph, assure at least
 -      1-pixel width.
 -
 -2008-02-25  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xdisp.c (fill_glyph_string): Pay attention to glyph->padding_p.
 -      (append_glyph): Set glyph->pixel_width and glyph->padding_p to 1
 -      if the glyph in the font is zero pixel with.
 -
 -      * dispextern.h (struct glyph_string): New member padding_p.
 -
 -      * w32font.c (w32font_draw): Pay attention to s->padding_p.
 -
 -      * ftxfont.c (ftxfont_draw): Pay attention to s->padding_p.
 -
 -      * xfont.c (xfont_draw): Pay attention to s->padding_p.
 -
 -      * xftfont.c (xftfont_draw): Pay attention to s->padding_p.
 -
 -      * font.c: If the font driver doesn't have `shape' function, return Qnil.
 -
 -2008-02-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (enum_font_cb2): Don't use raster fonts for Unicode.
 -
 -2008-02-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Allow fine-grained image-cache flushing.
 -      * dispextern.h (struct image): Add `dependencies' field.
 -      (clear_image_caches): Change arg to Lisp_Object.
 -      * image.c (make_image): Initialize `dependencies' field.
 -      (clear_image_cache): Change arg to allow fine-grained flushing.
 -      Perform the flush even if image-cache-eviction-delay is nil.
 -      (clear_image_caches): Change arg to Lisp_Object.
 -      (Fclear_image_cache): Expand meaning of the argument.
 -      (mark_image): Mark `dependencies' field.
 -      * xfaces.c (clear_face_cache): Adapt arg to call to clear_image_caches.
 -      (lface_hash): Use XHASH rather than XFASTINT.
 -      (face_at_buffer_position): Fix int -> EMACS_INT position.
 -      * xdisp.c (next_overlay_change): Fix int -> EMACS_INT position.
 -      (select_frame_for_redisplay): Remove code duplication.
 -      (redisplay_internal): Adapt arg to call to clear_image_caches.
 -
 -2008-02-24  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/vms4-0.h:
 -      * s/vms4-2.h:
 -      * s/vms4-4.h:
 -      * s/vms5-5.h: Remove, unused.
 -
 -      * s/irix5-2.h:
 -      * s/irix6-0.h:
 -      * s/riscos5.h:
 -      * s/mach-bsd4-3.h:
 -      * m/mips4.h: Remove files for obsolete systems.
 -
 -      * Makefile.in:
 -      * filelock.c:
 -      * unexmips.c:
 -      * m/hp9000s300.h:
 -      * m/iris4d.h:
 -      * s/aix3-1.h:
 -      * s/hpux.h:
 -      * s/msdos.h:
 -      * s/usg5-0.h:
 -      * s/usg5-2-2.h:
 -      * s/usg5-2.h:
 -      * s/usg5-3.h: Remove references to obsolete variables.
 -
 -      * s/irix5-0.h: Remove, move all the contents ...
 -      * s/irix6-5.h: ... here.  Simplify.
 -      * config.in: Regenerate.
 -
 -2008-02-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_draw_glyph_string_background): Clear the background
 -      manually when cleartype is in use.
 -      (x_draw_glyph_string_foreground): Draw text transparently when
 -      cleartype is in use.
 -
 -      * w32font.c (w32font_text_extents): Avoid getting HDC and selecting
 -      a font into it unless we have to.
 -
 -2008-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * intervals.h (INT_LISPLIKE): Remove.  It may misfire.
 -      (NULL_INTERVAL_P, SET_INTERVAL_PARENT): Don't use it.
 -
 -2008-02-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fw32_shell_execute): Encode parameters.
 -
 -2008-02-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (syms_of_fileio) <insert-default-directory>: Doc fix.
 -
 -2008-02-05  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * unexhp9k800.c (read_header): Replace `legal' with `valid'.
 -
 -2008-02-24  Ulrich Neumerkel  <ulrich@complang.tuwien.ac.at>  (tiny change)
 -
 -      * xterm.c (x_set_offset): Don't change the gravity if
 -      CHANGE_GRAVITY is -1.
 -
 -2008-02-23  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fileio.c (auto_save_error_occurred): New var.
 -      (auto_save_error): Set it.
 -      (Fdo_auto_save): Don't overwrite the error message if an auto-save
 -      error occurred.
 -
 -2008-02-23  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (globals_of_w32): Add initializations for
 -      g_b_init_get_sid_sub_authority and
 -      g_b_init_get_sid_sub_authority_count.
 -
 -2008-02-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * font.c (font_match_xlfd, font_check_xlfd_parse): New funs.
 -      (font_parse_xlfd): Use them for sanity check.
 -      (Finternal_set_font_style_table): Make sure the table is bijective.
 -
 -      Consolidate the image_cache to the terminal struct.
 -      * termhooks.h (P_): Remove redundant def.
 -      (struct terminal): New field `image_cache'.
 -      * frame.h (FRAME_IMAGE_CACHE): New macro.  Use it everywhere in place
 -      of FRAME_X_IMAGE_CACHE.
 -      * xterm.h (struct x_display_info): Remove image_cache field.
 -      (FRAME_X_IMAGE_CACHE): Remove.  Use FRAME_IMAGE_CACHE instead.
 -      * w32term.h (struct w32_display_info): Remove image_cache field.
 -      (FRAME_X_IMAGE_CACHE): Remove.  Use FRAME_IMAGE_CACHE instead.
 -      * macterm.h (struct mac_display_info): Remove image_cache field.
 -      (FRAME_X_IMAGE_CACHE): Remove.  Use FRAME_IMAGE_CACHE instead.
 -      * xterm.c (x_term_init):
 -      * w32term.c (w32_term_init):
 -      * macterm.c (mac_term_init): Set the image_cache in the terminal.
 -      * dispextern.h (clear_image_cache, forall_images_in_image_cache):
 -      Remove declarations.
 -      (clear_image_caches, mark_image_cache): New declarations.
 -      * xfaces.c (clear_face_cache):
 -      * xdisp.c (redisplay_internal): Use clear_image_caches.
 -      * image.c (clear_image_cache): Don't check that a frame is on
 -      a window-system before checking if it shares the same cache.
 -      (clear_image_caches): New function.
 -      (Fclear_image_cache): Use it.
 -      (mark_image): Move from allo.c.
 -      (mark_image_cache): Move from alloc.c and forall_images_in_image_cache.
 -      * alloc.c (mark_image, mark_image_cache): Move to image.c.
 -      (mark_object): Don't call mark_image_cache for frames.
 -      (mark_terminals): Call mark_image_cache.
 -
 -      * lisp.h (Fdelete_terminal): Declare.
 -
 -      * charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
 -      (CHECK_CHARSET_GET_ATTR): Don't use the inexistent return value of
 -      wrong_type_argument.
 -
 -2008-02-22  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * Makefile.in (lisp): Remove devanagari.el, kannada.el,
 -      malayalam.el, and tamil.el.  Add sinhala.el.
 -
 -2008-02-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (x_connection_closed): Consolidate identical tests.
 -      (x_delete_terminal): Don't crash if called via x_connection_closed.
 -
 -2008-02-21  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xdisp.c (decode_mode_spec): New arg string.
 -      (display_mode_element): Adjust for the above change.
 -
 -2008-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * callint.c (Fcall_interactively): Use AREF.
 -
 -2008-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * font.c (font_unparse_xlfd): Don't ignore integer pixel size specs.
 -
 -2008-02-18  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_show_tip): Set string to " " if empty.
 -
 -2008-02-17  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * callint.c (syms_of_callint): Initialize Vmark_even_if_inactive
 -      with Qt.
 -
 -2008-02-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_shape): Return Lispy number.
 -
 -      * xfaces.c (prepare_face_for_display): Use display_info->font->fid
 -      for GCs.
 -      (Finternal_set_font_selection_order): Call font_update_sort_order
 -      only when enable_font_backend is set.
 -      (realize_x_face): Set face->font_info to that of default face only
 -      when enable_font_backend is set.
 -
 -      * xdisp.c (handle_composition_prop): Set it->c to the fist
 -      character of the composed region.
 -      (fill_composite_glyph_string): Set base_face->font_info to
 -      s->font_info.  Get a face for ascii from base_face->ascii_face.
 -      (BUILD_COMPOSITE_GLYPH_STRING): Call fill_composite_glyph_string
 -      with a face already decided.
 -      (x_produce_glyphs): Be sure to set it->ascent and it->descent to
 -      non-negative.
 -      (x_produce_glyphs): If the composition method is ..._WITH_GLYPH_STRING,
 -      call font_prepare_composition unconditionally.
 -
 -      * xfns.c (x_make_gc): Use the default font id of the frame for GCs.
 -
 -      * xterm.h (struct x_display_info): New member font.
 -
 -      * xterm.c (x_set_cursor_gc): Use display_info->font->fid for GCs.
 -      (x_set_mouse_face_gc, x_new_font): Likewise.
 -      (x_term_init): Setup display_info->font.
 -      (x_delete_terminal): Free display_info->font.
 -
 -      * xfont.c (xfont_draw): Use BLOCK_INPUT and UNBLOCK_INPUT.
 -
 -      * ftxfont.c (ftxfont_default_fid): Delete it.
 -      (ftxfont_open): Set xfont->fid to 0.
 -      (ftxfont_end_for_frame): Clear data specific to the frame and the
 -      font-driver.
 -
 -      * xftfont.c (xftfont_default_fid): Delete it.
 -      (xftfont_open): Set xfont->fid to 0.
 -
 -      * fontset.c (FONTSET_OBJLIST): New macro.
 -      (fontset_find_font): Update font-object list of the fontset.
 -      (free_realized_fontset): New function.
 -      (free_face_fontset): Call free_realized_fontset.
 -      (Ffont_info): Call font_close_object only when enable_font_backend
 -      is set.
 -
 -      * font.c [HAVE_X_WINDOWS]: Include xterm.h.
 -      [HAVE_NTGUI]: Include w32term.h.
 -      [MAC_OS]: Include macterm.ch.
 -      (font_otf_ValueRecord): Use make_number.
 -      (font_finish_cache): Fix handling of reference count.
 -      (font_clear_cache): Update num_fonts.
 -      (font_open_entity): Update smallest_char_width and
 -      smallest_font_height of the frame.
 -      (font_close_object): Update num_fonts.
 -      (Fclear_font_cache): Fix finding the target cache data.
 -
 -2008-02-16  Glenn Morris  <rgm@gnu.org>
 -
 -      * fontset.c (Finternal_char_font): Fix compilation warning.
 -
 -2008-02-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (init_user_info): Use TOKEN_USER and TOKEN_PRIMARY_GROUP
 -      instead of char arrays.  Enlarge the size of array passed to
 -      get_token_information.
 -
 -      * font.c (Ffont_fill_gstring, Fget_font_glyphs): Fix compilation
 -      warnings.
 -
 -2008-02-15  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * .gdbinit: Don't set `args', it breaks gdb --args.
 -
 -2008-02-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Finsert_file_contents): Adjust offsets when replacing
 -      within a narrowed buffer.
 -
 -2008-02-14  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * coding.c (decode_coding_object, encode_coding_object):
 -      Preserve Vdeactivate_mark.  Delete unnecessary call of Fcurrent_buffer.
 -
 -2008-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * coding.c (coding_set_destination): Use BEG_BYTE rather than
 -      hardcoding 1.
 -      (detect_coding_system):
 -      * lisp.h (detect_coding_system, chars_in_text, multibyte_chars_in_text)
 -      (string_char_to_byte, string_byte_to_char, insert_from_gap):
 -      * insdel.c (insert_from_gap):
 -      * fns.c (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
 -      (string_char_to_byte, string_byte_to_char, string_make_multibyte)
 -      (string_to_multibyte):
 -      * character.c (chars_in_text, multibyte_chars_in_text):
 -      * fileio.c (Finsert_file_contents): Use EMACS_INT for buffer positions.
 -
 -      * character.h (FETCH_STRING_CHAR_ADVANCE)
 -      (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
 -      (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SDATA and SREF.
 -      (DEC_POS, BUF_DEC_POS): Use BEG_BYTE rather than hardcoding 1.
 -
 -      * casefiddle.c (casify_region): Only call after-change and composition
 -      functions on the part of the region that was changed.
 -
 -      * keyboard.c (read_avail_input):
 -      * frame.c (Fdelete_frame): Call Fdelete_terminal.
 -
 -2008-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
 -      (Fbuffer_local_value, Fbuffer_local_variables): Don't forget undo_list.
 -
 -2008-02-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32menu.c (push_submenu_start, push_submenu_end)
 -      (push_left_right_boundary, push_menu_pane, push_menu_item):
 -      * keyboard.c (read_key_sequence): Don't pass args with side effects
 -      to AREF, it fails when compiling with -DENABLE_CHECKING.
 -
 -2008-02-11  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * Makefile.in (${lispsource}international/charprop.el):
 -      Delete this target.
 -
 -      * search.c (boyer_moore): Fix incorrect synching of the trunk and
 -      emacs-unicode-2.
 -
 -2008-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * terminal.c (Fdelete_terminal): Clean up the `force' path.
 -
 -2008-02-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.c (Qnoelisp): New symbol.
 -      (syms_of_frame): Initialize it.
 -      (Fdelete_frame): Use it to distinguish a mere `force' passed from some
 -      harmless Elisp code, from a strong `force' from x_connection_closed.
 -      * frame.h (Qnoelisp): Declare.
 -      * xterm.c (x_connection_closed): Pass `noelisp'.
 -
 -      * lisp.h (struct Lisp_Misc_Any, struct Lisp_Marker)
 -      (struct Lisp_Overlay, struct Lisp_Kboard_Objfwd)
 -      (struct Lisp_Save_Value, struct Lisp_Free): Use enum Lisp_Misc_Type
 -      rather than `int' for the type of `type'.
 -
 -2008-02-10  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/gnu-linux.h: Remove support for non-ELF and linux-1.x.
 -
 -      * Makefile.in (GNUC): Remove support for gcc-1.x.
 -
 -2008-02-10  Richard Stallman  <rms@gnu.org>
 -
 -      * lisp.h (ASET): Use AREF, not ASLOT.
 -
 -2008-02-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (ASET): Check bounds.
 -
 -2008-02-10  Glenn Morris  <rgm@gnu.org>
 -
 -      * buffer.c (mode-name): Doc fix.
 -
 -2008-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in:
 -      * emacs.c:
 -      * gmalloc.c:
 -      * keyboard.c:
 -      * lisp.h:
 -      * m/ibm370aix.h:
 -      * process.c:
 -      * regex.c:
 -      * s/hpux.h:
 -      * sysdep.c:
 -      * sysselect.h:
 -      * systty.h:
 -      * unexec.c:
 -      * w32term.c:
 -      * xsmfns.c:
 -      * xterm.c: Remove code that deals with obsolete variables.
 -
 -      * s/msdos.h (DONT_NEED_ENVIRON): Don't define.
 -
 -      * ecrt0.c: Replace the DONT_NEED_ENVIRON test with MSDOS test,
 -      nothing else needs it anymore.
 -
 -2008-02-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * buffer.h (FETCH_CHAR_AS_MULTIBYTE): Use unibyte_to_multibyte_table
 -      instead of unibyte_char_to_multibyte.
 -
 -2008-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/gnu-linux.h: Remove commented out code.
 -
 -      * unexec.c: Remove references to obsolete variable COFF_ENCAPSULATE.
 -
 -      * Makefile.in: Update what RMS says about using autoconf.
 -      (C_COMPILER, COFF_ENCAPSULATE, MAKE_PARALLEL): Remove obsolete variable.
 -      (C_SWITCH_MACHINE_1, C_SWITCH_SYSTEM_1, C_SWITCH_SITE_1)
 -      (C_SWITCH_X_SITE_1, C_SWITCH_X_MACHINE_1)
 -      (C_SWITCH_X_SYSTEM_1): Move invariant code outside conditional.
 -
 -2008-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Fkey_description): Move side effect outside of macro call.
 -
 -      * xfaces.c (Finternal_make_lisp_face):
 -      * keyboard.c (add_command_key, parse_menu_item): Use ASET.
 -
 -      * fontset.c (free_face_fontset): Use FONTSET_FROM_ID.
 -      (syms_of_fontset): Use ASET.
 -
 -      * fns.c (concat): Move side effect outside of macro call.
 -      (hash_clear): Use ASET.
 -
 -2008-02-08  Richard Stallman  <rms@gnu.org>
 -
 -      * frame.c (Fdelete_frame): If FORCE, don't call hooks.
 -      If FORCE, and frame has a surrogate minibuffer for another frame,
 -      delete the other frame first.
 -
 -2008-02-07  Timo Savola  <timo.savola@iki.fi>
 -
 -      * xterm.c (x_detect_focus_change): Handle embed client message.
 -      (handle_one_xevent): Ditto.
 -      (handle_one_xevent): If embedded and we get a button press/release,
 -      request focus.
 -      (xembed_set_info, xembed_send_message): New functions.
 -      (x_make_frame_visible): Call xembed_set_info if embedded.
 -      (x_make_frame_invisible): Call xembed_set_info if embedded.
 -      (x_term_init): Initialize Xatom_XEMBED.
 -      (x_make_frame_visible): Check for FRAME_X_EMBEDDED_P also.
 -      (x_iconify_frame): Ditto.
 -
 -      * xterm.h (struct x_display_info): Add AtomXatom_XEMBED.
 -      (enum xembed_info, enum xembed_message, enum xembed_focus)
 -      (enum xembed_modifier, enum xembed_accelerator): New.
 -      (xembed_set_info, xembed_send_message): Declare.
 -      (FRAME_X_EMBEDDED_P): New.
 -
 -      * gtkutil.c (xg_create_frame_widgets): If frame is embedded, call
 -      gtk_plug_new.
 -
 -      * xfns.c (Fx_create_frame): Do not override the explicitly set parent
 -      window ID of a frame.
 -      (x_window): Reparent frame if embedded.
 -      (Fx_create_frame): Don't set border width if embedded.
 -
 -      * emacs.c (USAGE3): Add --parent-id.
 -      (standard_args): Ditto.
 -
 -2008-02-07  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * coding.c (DECODE_EMACS_MULE_COMPOSITION_CHAR): Use "do...while (0)".
 -
 -2008-02-07  Jim Meyering  <meyering@redhat.com>
 -
 -      Use "do...while (0)", not "if (1)...else" in macro definitions.
 -      The latter provokes a warning from gcc about the empty else, when
 -      followed by ";".  Also, without that trailing semicolon, it would
 -      silently swallow up any following statement.
 -      * syntax.h (SETUP_SYNTAX_TABLE)
 -      (SETUP_SYNTAX_TABLE_FOR_OBJECT): Likewise.
 -      * buffer.h (DECODE_POSITION): Likewise.
 -      * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
 -      (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): Likewise.
 -      (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Likewise.
 -      (FETCH_CHAR_ADVANCE): Likewise.
 -      (FETCH_CHAR_ADVANCE_NO_CHECK): Likewise.
 -
 -2008-02-07  Jim Meyering  <meyering@redhat.com>
 -
 -      * lread.c [lint]: Don't include <sys/inode.h>.
 -
 -2008-02-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xselect.c (x_handle_dnd_message):
 -      * xmenu.c (digest_single_submenu, xmenu_show):
 -      * xdisp.c (with_echo_area_buffer_unwind_data)
 -      (format_mode_line_unwind_data, unwind_format_mode_line)
 -      (display_menu_bar):
 -      * eval.c (Ffetch_bytecode):
 -      * doc.c (store_function_docstring):
 -      * ccl.c (resolve_symbol_ccl_program, ccl_get_compiled_code)
 -      (Fccl_execute, Fccl_execute_on_string, Fregister_code_conversion_map):
 -      * buffer.c (add_overlay_mod_hooklist): Use ASET.
 -
 -2008-02-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftxfont.c (ftxfont_open): Don't set
 -      dpyinfo->smallest_font_height and dpyinfo->smallest_char_width to 0.
 -
 -      * ftfont.c (ftfont_open): Fix previous change.
 -
 -2008-02-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_text_extents): Fill in lbearing metric.
 -      Use cached metrics for ASCII characters.
 -      (w32font_open_internal): Don't set font's owning_frame.
 -      Cache metrics for ASCII characters.
 -
 -      * w32font.h (struct w32font_info): Add ascii_metrics.
 -      Remove owning_frame.
 -
 -2008-02-06  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xdisp.c (x_produce_glyphs): Don't set it->ascent and it->descent
 -      to negative value.
 -
 -      * ftxfont.c (ftxfont_draw): Use s->font_info, not face->font_info.
 -
 -      * ftfont.c (ftfont_open): Fix calculation of font->font.average_width.
 -
 -      * charset.c (syms_of_charset): Set QCtest and Qeq.
 -
 -2008-02-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (Fstart_process):
 -      * callproc.c (Fcall_process): Handle the case where
 -      Funhandled_file_name_directory returns nil.
 -
 -      * font.h (enum lgstring_indices, enum lglyph_indices): New enums.
 -      (LGSTRING_SLOT, LGSTRING_SET_SLOT): New macros.
 -      * font.c (check_gstring): Use them and AREF to access the vector before
 -      we know it's really a gstring.
 -      (Ffont_shape_text): Fix typo.
 -      (Ffont_shape_text, Ffont_otf_alternates): Fix up int/Lisp_Object mixups.
 -
 -      * composite.h (Fcompose_region_internal, Fcompose_string_internal):
 -      Declare.
 -
 -      * chartab.c (make_sub_char_table): Remove noop-yet-incorrect statement.
 -
 -2008-02-05  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open_internal): Fill min_width with tmAveCharWidth.
 -      Set smallest_font_height and smallest_char_width in display info.
 -
 -2008-02-05  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * coding.c (decode_eol): Pay attention to coding->dst_multibyte.
 -
 -2008-02-05  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (get_lface_attributes, merge_named_face)
 -      (lookup_named_face, lookup_derived_face, realize_named_face):
 -      Revert 2008-02-01 change by cyd@stupidchicken.com.
 -
 -2008-02-04  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * fontset.c (Ffontset_info): Handle the case of inhibitting the
 -      fallback fonts.
 -      (Ffontset_info) [USE_FONT_BACKEND]: Fix getting of opened font names.
 -
 -2008-02-04  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open_internal): Use font_unparse_fcname to
 -      set full_name.
 -      (w32font_open_internal): Use xmalloc, xrealloc, xfree.
 -
 -2008-02-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (OBJ1): Include font.o here.
 -      (FONTOBJ) [USE_FONTBACKEND]: Instead of here.
 -
 -2008-02-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (temacs): Bump EMHEAP to 21.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * s/cygwin.h: Define VIRT_ADDR_VARIES.
 -
 -      * puresize.h [VIRT_ADDR_VARIES]: Don't include CYGWIN in condition.
 -
 -2008-02-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in (shortlisp, lisp): Update for rename of
 -      ../lisp/language/myanmar.el.
 -
 -2008-02-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (get_lface_attributes): Delete function.
 -      (merge_named_face, lookup_named_face, lookup_derived_face)
 -      (realize_named_face): Call lface_from_face_name directly, and use
 -      the fact that merge_face_vectors does not alter its FROM argument.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_read_socket) <WM_CHAR>: Decode non-Unicode
 -      input in the default locale.  Handle non-Unicode multibyte input.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * fontset.c (reorder_font_vector): Exclude nil elements from the
 -      font group.  Don't try multiple fonts.
 -      (fontset_font): Adjust for the above change.
 -      (Finternal_char_font): Return nil if the found font doesn't
 -      contain the character ch.
 -
 -      * Makefile.in (lisp, shortlisp): Add cham.el.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * font.h (FONTP): Make it return 1 also for a font-object.
 -
 -      * .gdbinit (xfontset): New function.
 -
 -      * font.c (font_find_for_lface): Check if the character C is
 -      supported or not only for the first font.
 -
 -      * fontset.c (reorder_font_vector): Fix typo.
 -      (fontset_find_font): Don't add a font-spec specifying a script.
 -      Use 0 (not Qt) for the indication of empty font-group.  Change the
 -      format of RFONT-DEF.  Return Qt if no font in the font-group
 -      support the character.
 -      (fontset_font): Adjust for the above change.  If no font was
 -      found the character, remember that.
 -      (face_for_char): Adjust for the change of RFONT-DEF.
 -      (Fset_fontset_font): Allow nil for FONT-SPEC to explicitly specify
 -      no font for the target.
 -      (Finternal_char_font): Adjust for the change of RFONT-DEF.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * font.c (font_load_for_face): Handle the case that the font in
 -      face->lface is a string.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xfaces.c (set_lface_from_font_and_fontset): Set the fontname in lface.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute) [USE_FONT_BACKEND]:
 -      Fix previous change.  If the frame is not on a window system,
 -      signal an error.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * coding.c (decode_coding_object, encode_coding_object): Adjust
 -      marker positions after conversion.
 -
 -      * lisp.h (struct Lisp_Marker): New member need_adjustment.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * font.c (font_find_for_lface): Fix the handling of the return
 -      value of font_has_char.
 -      (Ffont_shape_text): Fix previous change.
 -
 -      * fontset.c (FONTSET_REF_AND_RANGE): Delete it.
 -      (fontset_ref_and_range): Delete it.
 -      (fontset_find_font): Call char_table_ref_and_range instead of
 -      FONTSET_REF_AND_RANGE.
 -      (make_fontset): Don't setup font groups of Latin here.
 -      (Fset_fontset_font): Don't overwrite the setting of FONTSET_ASCII.
 -      (new_fontset_from_font): Make the specified font the default for
 -      all Latin characters.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Check if the frame
 -      is on a window system before accessing the fontset of the frame.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * Makefile.in (lisp, shortlisp): Add kherm.el and myanmar.el.
 -
 -      * ftfont.c (ftfont_driver): Set ftfont_shape in ftfont_driver only
 -      when both HAVE_M17N_FLT and HAVE_LIBOTF are defined.
 -
 -      * font.c (Ffont_shape_text): If the font driver doesn't have a
 -      shaper function, make zero-width glyphs to have at least one-pixel
 -      width.  Fix setting of `to' field of glyphs.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ftfont.c (ftfont_drive_otf): Fix setting of FROM and TO slots of
 -      glyphs.
 -
 -      * font.h (struct font_driver): Improve docstring of member `shape'.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (syms_of_composite): Fix docstring of
 -      auto-composition-function.
 -
 -      * font.h (LGLYPH_SIZE): New macro.
 -
 -      * font.c (Ffont_fill_gstring): Stop filling when a character not
 -      supported by the font is found.
 -      (Ffont_shape_text): When a shape callback function returns nil,
 -      try at most two more times with larger gstring.
 -      (Ffont_at): Fix getting of w.  Call font_at with correct 5th argument.
 -
 -      * xdisp.c (handle_auto_composed_prop): Change the argument to
 -      auto-composition-function.
 -
 -      * ftfont.c (ftfont_encode_char): Use the macro FONT_INVALID_CODE.
 -      (ftfont_shape_by_flt): If an element of lgstring is nil, make a
 -      Lispy glyph and store it in the lgstring.
 -
 -      * xfont.c (xfont_encode_char): Use the macro FONT_INVALID_CODE.
 -
 -      * xftfont.c (xftfont_encode_char): Use the macro FONT_INVALID_CODE.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * font.c (Ffont_shape_text): Avoid unnecessary composition.
 -
 -      * fontset.c (Vfont_encoding_charset_alist): New variable.
 -      (syms_of_fontset): DEFVAR it.
 -      (reorder_font_vector, fontset_find_font): Optimize for the case of
 -      no need of reordering.
 -      (face_for_char): Map the charset property by
 -      Vfont_encoding_charset_alist.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (logfonts_match): Don't check adstyle here.
 -      (font_matches_spec): Check here against physical font instead.
 -      (add_font_entity_to_list): Avoid some substitutions.
 -
 -      * font.c (font_parse_fcname): Default weight and slant to normal.
 -      (font_score): Prefer normal fonts if weight or slant unspecified.
 -      (font_score) [WINDOWSNT]: Scale weight difference down to closer
 -      match freetype scores.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_text_extents): Don't use the frame stored in the
 -      font, as it may have been deleted.
 -      (w32_enumfont_pattern_entity): Map generic family to adstyle using
 -      most common hyphenless variation.
 -      (logfonts_match): Check generic family.
 -      (font_matches_spec): Don't check generic family here.
 -      (fill_in_logfont): Set generic family based on adstyle.
 -
 -      * w32font.h (w32font_get_cache): Update declaration.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ftfont.c (ftfont_get_cache): Adjust the argument type.
 -
 -      * frame.c (x_set_font_backend): Don't call Fclear_font_cache.
 -      If none of the new drivers are available, call font_update_drivers
 -      with the old drivers.
 -
 -      * w32font.c (w32font_get_cache): Adjust the argument type.
 -
 -      * xfont.c (xfont_get_cache): Adjust the argument type.
 -
 -      * font.h (struct font_driver): Change argument type of get_cache.
 -
 -      * xftfont.c (xftfont_start_for_frame): Delete prototype.
 -
 -      * font.c (Ffont_get): Fix arguments to Fassoc.
 -      (font_prepare_cache, font_finish_cache, font_get_cache): New functions.
 -      (font_clear_cache): New function.
 -      (font_list_entities, font_matching_entity): Use font_get_cache.
 -      (font_update_drivers): Call font_clear_cache when finishing a driver.
 -
 -      * fontset.c (fontset_find_font): Fix previous change.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xterm.c (x_check_font) [USE_FONT_BACKEND]: Don't access
 -      dpyinfo->font_table.
 -      (x_delete_display) [USE_FONT_BACKEND]: Likewise.
 -      (x_delete_terminal) [USE_FONT_BACKEND]: Likewise.
 -
 -      * font.c (font_at): Handle the case that the arg C is negative.
 -      Handle the unibyte case.
 -      (Ffont_at): Call font_at with the arg C -1.
 -
 -      * xdisp.c (handle_auto_composed_prop): Don't get a character at
 -      the position here, and call font_at with the arg C -1.
 -      Don't check the range of the existing composition at the point.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * fontset.c (fontset_add): New args charset_id and family.
 -      Change caller.
 -      (load_font_get_repertory, fontset_find_font): Assume that
 -      font_spec is always a font-spec object.
 -      (Fset_fontset_font): Always store a font-spec object in a fontset.
 -
 -      * xdisp.c (handle_auto_composed_prop): Use Fget_text_property
 -      instead of get_property_and_range.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xftfont.c (struct xftfont_info): Delete the member ft_face.
 -      (xftfont_open): Don't keep locking face.
 -      (xftfont_close): Don't unlock face.
 -      (xftfont_anchor_point, xftfont_shape): Lock and unlock face.
 -
 -      * fontset.c (fontset_find_font): Don't prefer a font of
 -      supplementary charset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (struct OpenTypeSpec): Rename members script_tag to
 -      script, langsys_tag to langsys, new member script.
 -      (OTF_TAG_STR): Terminate by '\0'.
 -      (ftfont_get_open_type_spec): If :otf prop is spec, limit the
 -      listing to the script specified in that property.  Fix arg to
 -      OTF_check_features.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.h: New file.
 -
 -      * w32font.c: Include it.
 -      (struct w32font_info): Add owning_frame field.  Move to w32font.h.
 -      (w32font_open): Set owning_frame.
 -      (w32font_text_extents): Use owning_frame.
 -      (struct font_callback_data): Add opentype_only field.
 -      (add_font_entity_to_list): Use it to filter fonts.
 -      Don't check against full name.
 -      (w32font_list_internal): New function.
 -      (w32font_list): Use it.
 -      (w32font_match_internal): New function.
 -      (w32font_match): Use it.
 -      (w32font_open_internal): New function.
 -      (w32font_open): Use it.
 -      (w32font_get_cache, w32font_close, w32font_has_char)
 -      (w32font_encode_char, w32font_text_extents, w32font_draw):
 -      Make non-static.
 -
 -      * makefile.w32-in (w32font.o): Depend on w32font.h.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * charset.c (Fdefine_charset_internal): Record a supplementary
 -      charset at the tail of Vcharset_order_list.
 -
 -      * font.c (Ffont_shape_text): Fix the return value.
 -
 -      * ftfont.c (OTF_SYM_TAG, OTF_TAG_STR): Fix argument names.
 -
 -      * xdisp.c (handle_auto_composed_prop): Fix previous change.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ftfont.c (struct OpenTypeSpec): New struct.
 -      (OTF_SYM_TAG, OTF_TAG_STR): New macros.
 -      (ftfont_get_open_type_spec): New function.
 -      (ftfont_list) [HAVE_LIBOTF]: Check otf-spec property.
 -
 -      * lread.c (read1): Redo the previous change with checking Vpurify_flag.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (add_font_entity_to_list): Compare only the beginning
 -      of full name.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_auto_composed_prop): Simplify the code.
 -      Never return HANDLED_RECOMPUTE_PROPS.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_gstring_produce): Delete it.
 -
 -      * composite.h (COMPOSITION_METHOD):
 -      Handle COMPOSITION_WITH_GLYPH_STRING.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xfont.c (Qx): Delete.
 -      (syms_of_xfont): Don't initialize Qx.
 -
 -      * composite.h (enum composition_method):
 -      Define COMPOSITION_WITH_GLYPH_STRING unconditionally.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xfaces.c [HAVE_WINDOW_SYSTEM]: Include "font.h" unconditionally.
 -      (choose_face_font): Accept new form of font-spec.
 -
 -      * frame.h (font_driver_list): Declare it unconditionally.
 -      (struct frame): Define members font_driver_list and font_data_list
 -      unconditionally.
 -
 -      * fontset.c: Include "font.h" unconditionally.
 -      (generate_ascii_font_name): Use font_parse_xlfd and font_unparse_xlfd.
 -      (Fset_fontset_font): Accept a font-spec object.
 -
 -      * font.c (font_unparse_xlfd): If pixel_size is zero, make the
 -      PIXEL_SIZE part a wild card.
 -
 -      * dispextern.h (struct glyph_string): Define members clip and
 -      num_clips unconditionally.
 -      (struct face): Define members font_info and extra unconditionally.
 -
 -      * ftfont.c (ftfont_open): Set members maybe_otf and otf of
 -      ftfont_info only when HAVE_LIBOTF is defined.
 -
 -2008-02-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * xdisp.c (back_to_previous_visible_line_start): Fix type of beg
 -      and end.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_driver): Add new fields.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * Makefile.in (ALL_CFLAGS): Add @M17N_FLT_CFLAGS@.
 -      (FONTSRC, FONTOBJ) [HAVE_WINDOW_SYSTEM]: Set them unconditionally.
 -      (LIBES): Add @M17N_FLT_CFLAGS@.
 -
 -      * composite.c (compose_text): Don't treat the new style
 -      composition specially.
 -
 -      * emacs.c (main): Call syms_of_font unconditionally.
 -
 -      * font.h (FONT_ENTITY_NOT_LOADABLE)
 -      (FONT_ENTITY_SET_NOT_LOADABLE): New macros.
 -      (LGSTRING_XXXX, LGLYPH_XXX): Adjust for the change of lispy gstring.
 -      (struct font_driver): New member shape.
 -      (font_registry_charsets): Extern it.
 -      (font_find_for_lface, font_prepare_composition): Adjust prototype.
 -      (font_otf_capability, font_drive_otf): Delete their externs.
 -
 -      * font.c [HAVE_M17N_FLT]: Include <m17n-flt.h>.
 -      (font_charset_alist, font_registry_charsets): Move from xfont.c
 -      and rename.
 -      (font_prop_validate_otf): New function.
 -      (font_property_table): Register it for QCotf.
 -      (DEVICE_DELTA, adjust_anchor, REPLACEMENT_CHARACTER)
 -      (font_drive_otf): Delete.
 -      (font_prepare_composition): New arg F.  Adjust for the change of
 -      lispy gstring.
 -      (font_find_for_lface): New arg C.
 -      (font_load_for_face): Adjust for the change of font_find_for_lface.
 -      (Ffont_make_gstring, Ffont_fill_gstring): Adjust for the change of
 -      lispy gstring.
 -      (Ffont_shape_text): New function.
 -      (Fopen_font): If the font size is not given, use 12-pixel.
 -      (Ffont_at): New arg STRING.
 -      (syms_of_font): Initialize font_charset_alist.
 -      Declare Ffont_shape_text as a Lisp function.  Call syms_of_XXfont
 -      conditionally.
 -
 -      * fontset.c (fontset_find_font) [USE_FONT_BACKEND]: Try multiple
 -      fonts of the same font-spec.  Change the format of RFONT-DEF.
 -      (face_for_char, make_fontset_for_ascii_face, Finternal_char_font):
 -      Adjust for the change of RFONT-DEF.
 -      (Fset_fontset_font) [USE_FONT_BACKEND]: Handle new format of font-spec.
 -
 -      * ftfont.h: New file.
 -
 -      * ftfont.c: Don't include Freetype headers.  Include "ftfont.h".
 -      (struct ftfont_info) [HAVE_LIBOTF]: New members maybe_otf and otf.
 -      (ftfont_open) [HAVE_LIBOTF]: Initialize the above members.
 -      (ftfont_driver) [HAVE_LIBOTF, HAVE_M17N_FLT]: Don't set
 -      font_otf_capability and font_drive_otf, set ftfont_shape.
 -      (ftfont_list): Adjust for the change of :otf property value.
 -      (struct MFLTFontFT) [HAVE_LIBOTF, HAVE_M17N_FLT]: New struct.
 -      (ftfont_get_glyph_id, ftfont_get_metrics, ftfont_check_otf)
 -      (adjust_anchor, ftfont_drive_otf, ftfont_shape_by_flt)
 -      (ftfont_shape) [HAVE_LIBOTF, HAVE_M17N_FLT]: New function.
 -      (DEVICE_DELTA) [HAVE_LIBOTF, HAVE_M17N_FLT]: New macro.
 -      (otf_gstring, gstring, m17n_flt_initialized): New variables.
 -
 -      * w32term.c (x_draw_composite_glyph_string_foreground):
 -      Adjust for the change of lispy gstring.
 -
 -      * xdisp.c (handle_composition_prop): Adjust for the change of
 -      lispy gstring.  Call a function for auto-composition with the
 -      third arg it->window.
 -      (fill_composite_glyph_string): Adjust for the change of lispy string.
 -      (x_produce_glyphs): Adjust for the change of font_prepare_compositionl.
 -
 -      * xfaces.c (set_font_frame_param): Adjust for the change of
 -      font_find_for_lface.
 -
 -      * xfont.c (x_font_charset_alist): Move to font.c and rename.
 -      (xfont_registry_charsets): Likewise.  Change caller.
 -      (syms_of_xfont): Don't handle x_font_charset_alist.
 -
 -      * xftfont.c: Include "ftfont.h".
 -      (struct xftfont_info) [HAVE_LIBOTF]: New members maybe_otf and otf.
 -      (xftfont_open) [HAVE_LIBOTF]: Initialize the above members.
 -      (xftfont_close) [HAVE_LIBOTF]: Close otf.
 -      (xftfont_shape) [HAVE_LIBOTF, HAVE_M17N_FLT]: New function.
 -      (syms_of_xftfont) [HAVE_LIBOTF, HAVE_M17N_FLT]:
 -      Set xftfont_driver.shape to xftfont_shape.
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Adjust for
 -      the change of lispy gstring.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ftxfont.c (ftxfont_end_for_frame): Fix array indexing error.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_draw): Fill background manually.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * font.c (Qfontp): Remove unused symbol.
 -      (QCantialias): New symbol.
 -      (syms_of_font): Define it.
 -      (font_property_table): Set a validator for QCantialias.
 -
 -      * w32font.c (CLEARTYPE_QUALITY, CLEARTYPE_NATURAL_QUALITY):
 -      Define if not already.
 -      (QCfamily): Share with xfaces.c.
 -      (Qstandard, Qsubpixel, Qnatural): New symbols.
 -      (syms_of_w32font): Define them.  Don't define QCfamily here.
 -      (w32_antialias_type, lispy_antialias_type): New functions.
 -      (w32_enumfont_pattern_entity): New arg requested_font.
 -      Set antialias parameter if non-default was requested.
 -      (fill_in_logfont): Fill in lfQuality if :antialias specified.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * lread.c (read1): Undo the previous change.
 -
 -2008-02-01  CHENG Gao  <chenggao@gmail.com>  (tiny change)
 -
 -      * frame.c (Fdelete_frame): Call font_update_drivers only when
 -      USE_FONT_BACKEND is defined.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * font.h (struct font_bitmap): New member bits_per_pixel.
 -      (struct font_driver): New members start_for_frame and end_for_frame.
 -      (struct font_data_list): New struct.
 -      (font_put_frame_data, font_get_frame_data): Extern them.
 -
 -      * frame.h (struct frame): New member font_data_list.
 -
 -      * font.c (font_update_drivers): Call driver->start_for_frame and
 -      driver->end_for_frame at proper timings.
 -      (font_put_frame_data, font_get_frame_data): New functions.
 -      (Ffont_spec): Add usage in the docstring.
 -
 -      * frame.c (make_frame): Initialize f->font_data_list to NULL.
 -      (Fdelete_frame): Call font_update_drivers.
 -
 -      * xftfont.c (struct xftface_info): Delete the member xft_draw.
 -      (xftfont_prepare_face, xftfont_done_face): Adjust for the above change.
 -      (xftfont_get_xft_draw): New function.
 -      (xftfont_draw): Get XftDraw by xftfont_get_xft_draw.
 -      (xftfont_end_for_frame): New function.
 -      (syms_of_xftfont): Set xftfont_driver.end_for_frame.
 -
 -      * ftxfont.c (ftxfont_get_gcs): Rename from ftxfont_create_gcs.
 -      Change argument.  Cache GCs in the per-frame data.
 -      (struct ftxfont_frame_data): New struct.
 -      (ftxfont_draw_bitmap): New arg gc_fore and flush.
 -      (ftxfont_prepare_face, ftxfont_done_face): Delete them.
 -      (ftxfont_draw): Get GCs by ftxfont_get_gcs.  Reflect s->clip in GCs.
 -      (ftxfont_end_for_frame): New function.
 -      (syms_of_ftxfont): Set ftxfont_driver.end_for_frame.
 -
 -      * ftfont.c (ftfont_get_bitmap): Set bitmap->bits_per_pixel.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xselect.c (Vselection_coding_system)
 -      (Vnext_selection_coding_system): Delete them.
 -      (syms_of_xselect): Don't declare selection-coding-system and
 -      next-selection-coding-system.  They are declared in select.el.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.h (WM_UNICHAR, UNICODE_NOCHAR): Define if not already.
 -
 -      * w32fns.c: Include imm.h.
 -      (get_composition_string_fn, get_ime_context_fn): New optional
 -      system functions.
 -      (globals_of_w32fns): Load them from imm32.dll.
 -      (ignore_ime_char): New flag.
 -      (w32_wnd_proc): Handle WM_UNICHAR, WM_IME_CHAR and
 -      WM_IME_ENDCOMPOSITION messages.
 -
 -      * w32term.c (w32_read_socket) [WM_UNICHAR]: Handle as
 -      MULTIBYTE_CHAR_KEYSTROKE_EVENT.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * lread.c (READCHAR): Call readchar with the 2nd arg NULL.
 -      (READCHAR_REPORT_MULTIBYTE): New macro.
 -      (readchar): New 2nd arg MULTIBYTE.
 -      (read1): Use READCHAR_REPORT_MULTIBYTE for the first read.
 -      Make symbol's name multibyte according to the multibyteness of the
 -      source.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * xfaces.c (face_for_overlay_string): Call lookup_face with
 -      correct arguments (fix of synching with the trunk).
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_prop_validate_symbol, font_prop_validate_style)
 -      (font_prop_validate_non_neg, font_prop_validate_spacing):
 -      Delete argument prop_index.
 -      (font_property_table): Change arguments to validater.  Change Callers.
 -      (font_lispy_object): Delete.
 -      (font_at): Use font_find_object instead fo font_lispy_object.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * fileio.c (Fexpand_file_name): Adjust multibyteness of directory
 -      and file names.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (add_font_name_to_list): Avoid vertical fonts.
 -      (font_matches_spec): Remove debug output.
 -      (add_font_entity_to_list): Avoid using substituted fonts.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * doc.c (Fsnarf_documentation):
 -      * Makefile.in (temacs${EXEEXT}, mostlyclean): Undo last change.
 -
 -2008-02-01  Miles Bader  <miles@gnu.org>
 -
 -      * dispextern.h (struct glyph_row): Only define "clip" field if
 -      HAVE_WINDOW_SYSTEM is defined.
 -
 -2008-02-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Fix up multi-tty merge.
 -
 -      * xterm.c (handle_one_xevent): Remove duplicate code and fix up nesting
 -      and indentation.
 -
 -      * xfaces.c (free_realized_face, clear_face_gcs):
 -      Include font_done_for_face in the input_blocked section, just in case.
 -
 -      * xdisp.c (decode_mode_spec): Use terminal-local coding systems.
 -      (get_char_face_and_encoding): Undo last change and remove the *other*
 -      duplicate definition (i.e. keep the one that's better scoped and that
 -      includes code for the font-backend).
 -
 -      * terminal.c (create_terminal): Default keyboard_coding to
 -      `no-conversion' and terminal_coding to `undecided'.
 -
 -      * lread.c (read1): Use XSETPVECTYPE to set a pseudovector's tag.
 -
 -      * fontset.c (free_realized_fontsets): Check that the table entry does
 -      contain a fontset before trying to compare it to `base'.
 -
 -      * emacs.c (main): Move syms_of_data, syms_of_fileio, syms_of_alloc,
 -      syms_of_charset, and syms_of_coding earlier because init_window_once
 -      now needs Vcoding_system_hash_table to be setup.
 -
 -      * coding.h (default_buffer_file_coding): Remove.
 -
 -      * coding.c (default_buffer_file_coding): Remove.
 -      (Fterminal_coding_system, Fkeyboard_coding_system): Use ->id rather
 -      than ->symbol, and use the terminal-local coding system.
 -      (syms_of_coding): Don't setup the coding-systems that are not
 -      terminal-local.
 -      (Fdefine_coding_system_internal): Use XCAR/XCDR.
 -
 -      * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
 -      Use XSETPVECTYPE now that XSETCHAR_TABLE doesn't set the tag anymore.
 -
 -      * alloc.c (Fmake_char_table, make_sub_char_table): Remove.  They're now
 -      in chartab.c and were re-added here by mistake.
 -      (Fpurecopy): Use XSETPVECTYPE after copying a COMPILED pseudovector.
 -
 -      * doc.c (Fsnarf_documentation):
 -      * Makefile.in (temacs${EXEEXT}, mostlyclean): Move buildobj.lst from
 -      src to etc.
 -
 -      * ChangeLog.10: Add mistakenly removed entry.
 -
 -2008-02-01  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (fringe.o, minibuf.o): Fix dependencies.
 -
 -2008-02-01  Miles Bader  <miles@gnu.org>
 -
 -      * xdisp.c (get_char_face_and_encoding): Remove extraneous definition.
 -      Add extra args to FACE_FOR_CHAR.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (where_is_internal_1): If key is a cons, store the copy
 -      in sequence.
 -
 -      * chartab.c (map_sub_char_table, map_char_table): If the range
 -      contains just one character, call the function with that character
 -      even if the depth is not 3.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_text_extents): Calculate metrics for the
 -      whole string.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32xfns.c (get_next_msg): Consolidate WM_PAINT messages.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_set_glyph_string_clipping): Use
 -      get_glyph_string_clip_rects.
 -      (x_set_glyph_string_clipping_exactly, x_draw_glyph_string):
 -      Adjust for the change of struct glyph_string.
 -
 -      * w32font.c (w32font_draw): Do clipping here.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_draw): Adjust for the change of struct
 -      glyph_string.
 -
 -      * xterm.c (x_set_glyph_string_clipping): Use
 -      get_glyph_string_clip_rects.
 -      (x_set_glyph_string_clipping_exactly, x_draw_glyph_string):
 -      Adjust for the change of struct glyph_string.
 -
 -      * xdisp.c (get_glyph_string_clip_rects): Reflect s->row->clip to
 -      the resulting clip(s}.
 -      (expose_overlaps): Add arg r.  Change callers.  Set it to
 -      row->clip temporarily.
 -      (expose_window): Redraw rows overlapping the exposed area.
 -
 -      * dispextern.h (struct glyph_row): New member clip.
 -      (struct glyph_string): Delete members clip_x, clip_y, clip_width,
 -      clip_height, new member clip, and num_clips.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * data.c (Fchar_or_string_p): Fix docstring.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_draw): If s->font_info != s->face->font_info,
 -      create a temporary XftDraw object.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (Ffontp): Fix docstring.
 -
 -      * coding.c (detect_coding_iso_2022): Don't treat SI/SO codes as a
 -      strong evidence of ISO-2022.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * abbrev.c (abbrev_check_chars): Use CHAR_TABLE_REF, not
 -      SYNTAX_ENTRY_FOLLOW_PARENT.
 -
 -2008-02-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fns.c (weak_hash_tables): Rename from Vweak_hash_tables and change
 -      its type.
 -      (make_hash_table, copy_hash_table, sweep_weak_hash_tables, init_fns):
 -      Update to the new type of weak_hash_tables and next_weak.
 -
 -      * lisp.h (struct Lisp_Hash_Table): Change next_weak from Lisp_Object to
 -      a plain C pointer to Lisp_Hash_Table.
 -
 -      * lisp.h (XGCTYPE, GC_HASH_TABLE_P, GC_NILP, GC_NUMBERP, GC_NATNUMP)
 -      (GC_INTEGERP, GC_SYMBOLP, GC_MISCP, GC_VECTORLIKEP, GC_STRINGP)
 -      (GC_CONSP, GC_FLOATP, GC_VECTORP, GC_OVERLAYP, GC_MARKERP)
 -      (GC_INTFWDP, GC_BOOLFWDP, GC_OBJFWDP, GC_BUFFER_OBJFWDP)
 -      (GC_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP)
 -      (GC_KBOARD_OBJFWDP, GC_PSEUDOVECTORP, GC_WINDOW_CONFIGURATIONP)
 -      (GC_PROCESSP, GC_WINDOWP, GC_SUBRP, GC_COMPILEDP, GC_BUFFERP)
 -      (GC_SUB_CHAR_TABLE_P, GC_CHAR_TABLE_P, GC_BOOL_VECTOR_P, GC_FRAMEP)
 -      (GC_EQ): Remove since they've been identical to their non-GC_
 -      alter-egos ever since the markbit was eradicated.
 -
 -      * alloc.c:
 -      * buffer.c:
 -      * buffer.h:
 -      * data.c:
 -      * fileio.c:
 -      * filelock.c:
 -      * fns.c:
 -      * frame.h:
 -      * lisp.h:
 -      * macterm.c:
 -      * print.c:
 -      * process.c:
 -      * w32fns.c:
 -      * w32menu.c:
 -      * w32term.c:
 -      * xfns.c:
 -      * xmenu.c:
 -      * xterm.c: Replace uses of GC_* macros with the non-GC_ versions.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * chartab.c (map_sub_char_table): Make it work for the top-level
 -      char-table.  Fix handling of parent char-table.
 -      (map_char_table): Adjust for the above change.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (Qgdi): Rename from Qw32.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32bdf.c (get_quoted_string): Make function static.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): If one of font's ASCII glyph has
 -      bigger ascent and descent than those of the font, use them as
 -      font's ascent and descent.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (${lispsource}international/charprop.el): Move this
 -      target within "#ifdef HAVE_UNIDATA" and "#endif".
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (lisp): Add ${lispsource}language/tai-viet.el.
 -      (shortlisp): Add ../lisp/language/tai-viet.el.
 -
 -2008-02-01  Ulrich Mueller  <ulm@gentoo.org>
 -
 -      * Makefile.in (${lispsource}international/charprop.el): Depend on
 -      temacs${EXEEXT}.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_close): Delete the GDI font object.
 -
 -      * w32menu.c: Include character.h.
 -
 -      * w32proc.c: Likewise.
 -
 -      * w32select.c: Likewise.
 -
 -      * makefile.w32-in (w32proc.o): Depend on character.h.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (syms_of_w32fns): Use DEFSYM macro.
 -
 -      * w32menu.c (syms_of_w32menu): Likewise.
 -
 -      * w32proc.c (syms_of_ntproc): Likewise.
 -
 -      * w32select.c (syms_of_w32select): Likewise.
 -
 -      * w32term.c (syms_of_w32term): Likewise.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_draw): Delete brush after using it.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open): Don't set font_idx.
 -      (w32font_text_extents): Try GetTextExtentPoint32W before defaulting
 -      to font settings.
 -      (w32font_draw): Fill background explicitly.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_initialize): Don't call w32font_initialize.
 -
 -      * w32font.c (w32font_info): Remove subranges.
 -      (QCsubranges, Qmodern, Qswiss, Qroman): Remove.
 -      (QCfamily, Qmonospace, Qsans_serif, Qmono, Qsans, Qsans__serif)
 -      (Qraster, Qoutline, Qlatin, Qgreek, Qcoptic, Qcyrillic, Qarmenian)
 -      (Qhebrew, Qarabic, Qsyriac, Qnko, Qthaana, Qdevanagari, Qbengali)
 -      (Qgurmukhi, Qgujarati, Qoriya, Qtamil, Qtelugu, Qkannada)
 -      (Qmalayalam, Qsinhala, Qthai, Qlao, Qtibetan, Qmyanmar, Qgeorgian)
 -      (Qhangul, Qethiopic, Qcherokee, Qcanadian_aboriginal, Qogham)
 -      (Qrunic, Qkhmer, Qmongolian, Qsymbol, Qbraille, Qhan)
 -      (Qideographic_description, Qcjk_misc, Qkana, Qbopomofo, Qkanbun)
 -      (Qyi, Qbyzantine_musical_symbol, Qmusical_symbol, Qmathematical):
 -      New symbols.
 -      (font_callback_data): New struct.
 -      (w32font_list, w32font_match): Use it.
 -      (w32font_open): Don't populate subranges.
 -      (w32font_has_char): Use script Lisp symbols, not subrange bitmask.
 -      (w32font_encode_char): Always return unicode code-point as-is.
 -      (w32font_text_extents): Supply a transformation matrix to
 -      GetGlyphOutline.  Never look up by glyph index.  Avoid looping
 -      twice.  Use unicode version of GetTexExtentPoint32 instead of
 -      glyph index version.
 -      (set_fonts_frame): Remove.
 -      (w32_enumfont_pattern_entity): Add frame parameter, use it to
 -      set frame parameter.  Use backward compatible fake foundries.
 -      Save generic family in extra slot under QCfamily.  Make width slot
 -      constant.  Save QCspacing value.  Save list of scripts instead of
 -      binary subranges.
 -      (w32_generic_family, logfonts_match, font_matches_spec): New functions.
 -      (add_font_entity_to_list): Use font_callback_data struct.  Filter
 -      unwanted fonts.
 -      (add_one_font_entity_to_list): Use font_callback_data struct.
 -      (w32_registry): Default to iso10646_1.
 -      (fill_in_logfont): Use dpi from extra slot.  Don't bother with
 -      string font registries.  Don't fill in font name if it is a generic
 -      family name, fill family instead.  Use spacing, family and script
 -      extra info to fill pitch, family and charset fields.
 -      (list_all_matching_fonts): Use font_callback_data struct.
 -      (unicode_range_for_char): Remove.
 -      (font_supported_scripts): New function.
 -      (w32font_initialize): Remove.
 -      (syms_of_w32font): Update which symbols are defined.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * font.c (font_pixel_size): Reverse assq_no_quit args.
 -
 -      * w32term.h (FONT_WIDTH): Report max width, not average.
 -      (FONT_MAX_WIDTH): Remove.
 -      (FONT_AVG_WIDTH): New macro.
 -
 -      * xfaces.c (Fx_list_fonts) [WINDOWSNT]: Remove Windows only
 -      redefinition of FONT_WIDTH.
 -
 -      * w32term.c (x_font_min_bounds): Use FONT_AVG_WIDTH.
 -      (w32_cache_char_metrics): Use FONT_WIDTH.
 -
 -      * w32fns.c (w32_load_system_font, w32_list_fonts): Use FONT_AVG_WIDTH.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (w32font_open): Make lfHeight negative.
 -
 -      * w32fns.c (x_default_font_parameter): Use new style font name.
 -      (Fx_create_frame, x_create_tip_frame): Initialize resx and resy.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32font.c (QCsubranges): New symbol.
 -      (w32font_open, w32font_has_char): Get subranges from subproperty
 -      of extra.
 -      (w32_enumfont_pattern_entity): Set subranges as subproperty of extra.
 -      (syms_of_w32font): Define :subranges symbol.
 -
 -      * font.c (font_put_extra): Expose externally.
 -
 -      * font.h (font_put_extra): Move declaration from font.c.
 -
 -      * font.c (Ffont_get): Use font driver to determine otf capability.
 -      (adjust_anchor): Check if driver defines anchor_point before using.
 -
 -      * w32font.c (w32font_open): Handle size, height and pixel_size better.
 -      (w32font_draw): Use options.
 -      (w32_enumfont_pattern_entity): Set size to 0 for scalable fonts.
 -      Fix detection of truetype fonts.
 -      (registry_to_w32_charset): Handle charsets other than iso8859-1
 -      expressed as lisp symbols.
 -      (w32_registry): Express charset as lisp symbol.
 -      (fill_in_logfont): Reverse pixel and point height logic.
 -      Don't set width here.  Set quality to default.
 -
 -      * w32fns.c (w32_load_system_font): Fix detecting FIXED_PITCH fonts.
 -      (x_to_w32_font): Fill in lfPitchAndFamily correctly.
 -
 -      * xterm.c (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]:
 -      Remove redundant loop and allocation.
 -
 -      * makefile.w32-in (font.o, w32font.o): New objects.
 -      (fontset.o, xdisp.o, xfaces.o, w32fns.o, w32term.o): Depend on font.h.
 -      (FONTOBJ): New group of objects conditioned on USE_FONT_BACKEND.
 -
 -      * xdisp.c (fill_composite_glyph_string): Make the first arg to
 -      STORE_XCHARB a valid l-value.
 -
 -      * w32term.c (w32_native_per_char_metric): Swap width and rbearing
 -      calculations for non-Truetype fonts.
 -      (x_draw_glyph_string): Sync with xterm.c.
 -      (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]:
 -      Remove redundant code.
 -      (w32_initialize) [USE_FONT_BACKEND]: Call w32font_initialize.
 -
 -      * w32term.h (w32_output_data) [USE_FONT_BACKEND]: Add fontp member.
 -      (FRAME_FONT_OBJECT) [USE_FONT_BACKEND]: New macro from xterm.h.
 -
 -      * w32fns.c [USE_FONT_BACKEND]: Port font backend changes from xfns.c.
 -      (x_to_w32_charset, w32_to_x_charset): Expose externally.
 -
 -      * w32font.c: New file for w32 font backend.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c: Don't include "buffer.h" twice.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (Funibyte_string): New function.
 -      (syms_of_character): Defsubr it.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c [USE_FONT_BACKEND]:
 -      (x_get_font_repertory, note_mouse_movement, x_set_mouse_face_gc)
 -      (x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly)
 -      (x_draw_glyph_string, x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground, x_new_fontset2)
 -      (x_free_frame_resources): Sync with xterm.c.
 -
 -2008-02-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * lread.c (read1): Use CHAR_TABLE_STANDARD_SLOTS to validate
 -      char-table size.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (check_otf_features): Define it regardless of HAVE_LIBOTF.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_driver): Delete font_otf_gsub and
 -      font_otf_gpos, add font_drive_otf.
 -
 -      * fontset.c (fontset_find_font): Pay attention to font size
 -      specified for a font.
 -      (reorder_font_vector): Check contents of font_def.
 -
 -      * font.c (struct otf_list): Delete it.
 -      (otf_list): Make it a lisp variable.
 -      (otf_open): Use lispy otf_list.
 -      (generate_otf_features): Rename from parse_gsub_gpos_spec.
 -      (check_otf_features): New function.
 -      (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
 -      New functions.
 -      (font_drive_otf): New function merging font_otf_gsub and
 -      font_otf_gpos.
 -      (font_open_for_lface): New arg spec.  Change argument order.
 -      (font_load_for_face): Adjust for the change of font_open_for_lface.
 -      (Ffont_drive_otf): New function merging Ffont_otf_gsub and
 -      Ffont_otf_gpos.
 -      (syms_of_font): Staticpro otf_list.  Delete defsubr of
 -      Sfont_otf_gsub and Sfont_otf_gpos.  Defsubr Sfont_drive_otf.
 -
 -      * xfaces.c (set_font_frame_param): Adjust for the change of
 -      font_open_for_lface.
 -
 -      * font.h (font_open_for_lface): Adjust prototype.
 -      (struct font_driver): Delete members otf_gsub and otf_gpos, add
 -      member otf_drive.
 -      (font_otf_gsub, font_otf_gpos): Delete externs.
 -      (font_drive_otf): Extern it.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_at): If the window W is not on a window system,
 -      return Qnil.
 -
 -      * coding.c (produce_chars, encode_coding): Don't call
 -      insert_from_gap if no characters to produce.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (free_realized_fontsets): Avoid unnecessary call of
 -      Fclear_face_cache.
 -
 -      * xfaces.c (face_for_font): Check also face->font==font->font.font.
 -
 -2008-02-01  Miles Bader  <miles@gnu.org>
 -
 -      * emacs.c (main): Change default value of `enable_font_backend' to 1.
 -      Parse "--disable-font-backend" option.
 -      (standard_args): Add "--disable-font-backend" option.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_find_font): New function.
 -      (fontset_font): Use fontset_find_font.
 -      (make_fontset_for_ascii_face): Don't set face ID in rfont_def.
 -      Register the specified font for all Latin characters.
 -      (new_fontset_from_font): Register the specified font for all Latin
 -      characters.
 -      (dump_fontset): For a realized fontset, include the base fontset
 -      name in the returned vector.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.h (CHAR_STRING): Cast C to unsigned on calling
 -      char_string.
 -
 -      * character.c (char_string): Type of arg C changed to unsigned.
 -      Signal an error if C is an invalid character code.
 -
 -      * editfns.c (general_insert_function, Fchar_to_string):
 -      Use CHARACTERP, not INTEGERP.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.h (MIN_MULTIBYTE_LEADING_CODE)
 -      (MAX_MULTIBYTE_LEADING_CODE): New macros.
 -
 -      * regex.c (analyse_first): Fix for multibyte characters in "case
 -      charset:" and "case categoryspec:".
 -
 -2008-02-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in (LIBES): Move standard libraries to the end.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * alloc.c (Fgarbage_collect): If nextb->text->inhibit_shrinking is
 -      nonzero, don't shrink the buffer nextb.
 -
 -      * buffer.h (struct buffer_text): New member inhibit_shrinking.
 -
 -      * coding.c (coding_alloc_by_making_gap): New arg offset.
 -      (alloc_destination): Call coding_alloc_by_making_gap with the arg
 -      offset.
 -      (decode_coding_iso_2022): Update coding->safe_charsets.
 -      (decode_coding_gap): Temporarily set
 -      current_buffer->text->inhibit_shrinking to 1.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Fix
 -      indexing into elements of s->cmp and s->char2b.
 -
 -2008-02-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * regex.c (RE_STRING_CHAR_AND_LENGTH) [! emacs]: Add missing arg `len'.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * regex.c (GET_CHAR_BEFORE_2, GET_CHAR_AFTER): Check the variable
 -      target_multibyte instead of multibyte.
 -      (re_match_2_internal): Call bcmp_translate with target_multibyte.
 -      (bcmp_translate): Change the argument name from multibyte to
 -      target_multibyte.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      These changes are to compile a regexp into a pattern that can be
 -      used both for multibyte and unibyte targets.
 -
 -      * Makefile.in (search.o): Depend on charset.h.
 -
 -      * character.c (multibyte_char_to_unibyte_safe): New function.
 -
 -      * search.c: Include "charset.h".
 -      (compile_pattern_1): Delete argument multibyte.  Don't set
 -      cp->buf.target_multibyte here.  Set cp->buf.charset_unibyte.
 -      (compile_pattern): Don't compare cp->buf.target_multibyte.
 -      Compare cp->buf.charset_unibyte.
 -      (compile_pattern): Set cp->buf.target_multibyte.
 -
 -      * lisp.h (multibyte_char_to_unibyte_safe): Extern it.
 -
 -      * regex.h (struct re_pattern_buffer): New member charset_unibyte.
 -
 -      * regex.c (RE_STRING_CHAR, RE_STRING_CHAR_AND_LENGTH): New arg
 -      multibyte.  Change callers.
 -      (RE_CHAR_TO_MULTIBYTE, RE_CHAR_TO_UNIBYTE): New macros.
 -      (MAKE_CHAR_MULTIBYTE, MAKE_CHAR_UNIBYTE): Delete.  Change callers
 -      to use RE_CHAR_TO_MULTIBYTE and RE_CHAR_TO_UNIBYTE, respectively.
 -      (SETUP_ASCII_RANGE, SETUP_UNIBYTE_RANGE): New macros.
 -      (SETUP_MULTIBYTE_RANGE): Generate a more compact range_table.
 -      (regex_compile): Make the compiled pattern usable both for
 -      multibyte and unibyte targets.
 -      (analyse_first): Make the fastmap usable both for multibyte and
 -      unibyte targets.
 -      (TRANSLATE_VIA_MULTIBYTE): Delete.
 -      (re_match_2_internal): Pay attention to the case that the
 -      multibyteness of bufp and target may be different.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (x_produce_glyphs): When a font is not found, make the
 -      empty box occupy at least one column width.
 -
 -2008-02-01  Miles Bader  <miles@gnu.org>
 -
 -      * Makefile.in: Remove redundant HAVE_XFT clause.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xrdb.c (x_load_resources): Setup the default fontSet X resource.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Finternal_char_font): Fix for the case of POSITION
 -      being nil.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): Call FcConfigSubstitute.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): Don't enable antialias explicitly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (simple_search): Fix previous change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (ftfont_font_format): Extern declaration.
 -
 -      * frame.c (x_set_font): Fix the second arg to fs_query_fontset.
 -
 -      * xfont.c (xfont_driver): Initialize ftfont_driver.type by 0.
 -      (xfont_list): Don't directly use Lisp_Object as an operand of &&.
 -
 -      * ftfont.c (ftfont_driver): Initialize ftfont_driver.type by 0.
 -      (ftfont_font_format): Fix previous change.
 -
 -      * font.h (Ffont_xlfd_name): EXFUN it.
 -
 -      * font.c (font_parse_xlfd): Fix the array size of `f'.
 -      (register_font_driver): Use EQ to compare driver->type.
 -
 -      * xfns.c (xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
 -      (create_frame_xic) [USE_FONT_BACKEND]: Call xic_create_xfontset2.
 -      (xic_set_xfontset) [USE_FONT_BACKEND]: Likewise.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_pattern_entity, ftfont_list_generic_family)
 -      (ftfont_list, ftfont_font_format): Check if FC_FONTFORMAT is defined.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_open): Set font->format.
 -
 -      * xftfont.c (xftfont_open): Set font->format.
 -
 -      * ftfont.c (ftfont_pattern_entity): Add fontformat in a pattern.
 -      (ftfont_list): Include FC_FONTFORMAT in FcObject.
 -      (ftfont_open): Set font->format.
 -      (ftfont_font_format): New function.
 -
 -      * font.h (struct font): New member format.
 -
 -      * font.c (Qopentype): New variable.
 -      (syms_of_font): Defsym it.
 -      (Fquery_font): Change the format of the last element of the return
 -      value.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfns.c (xic_create_xfontset): Try the default fontset name as a
 -      last resort.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_charset): Fix detection of multi-byte
 -      charset.
 -
 -2008-02-01  Bob Halley  <halley@play-bow.org>  (tiny change)
 -
 -      * ccl.c (ccl_driver): If DST is NULL, set ccl->produced to 0.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (get_next_display_element): Set it->face_id for the
 -      first component of a composition.
 -      (x_produce_glyphs): Check if the font is changed or not for composition.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Qlatin): New variable.
 -      (syms_of_fontset): Define it as a lisp symbol.
 -      (Fset_fontset_font): If TARGET is `latin', use FONT_SPEC for ASCII.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_unparse_fcname): Pay attention to the case that
 -      some of font property is a null string.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c: Include "composite.h".
 -      (encode_terminal_code): Output all components of composition.
 -      Check the size of encode_terminal_src.
 -      (produce_glyphs): For composition, call produce_composite_glyph.
 -      (append_composite_glyph, produce_composite_glyph): New functions.
 -
 -      * xdisp.c (x_produce_glyphs): In handling composition, if a font
 -      is not found, get font_info from the current ascii face.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): On replacing, temporarily bind
 -      buffer-file-name to Qnil before calling insert_from_buffer.
 -
 -      * font.c (font_unparse_fcname): Pay attention to the case that
 -      foundry is a null string.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_list): Allow registry "unicode-sip".
 -
 -      * font.c (Qunicode_sip): New variable.
 -      (syms_of_font): Declare it as a Lisp symbol.
 -
 -      * font.h (Qunicode_sip): Extern it.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (get_composition_id): Pay attention to TAB component.
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Don't draw
 -      TAB.  Adjust for the change of s->char2b which always points to
 -      the first element of allocated memory.
 -
 -      * xftfont.c (xftfont_text_extents): Fix calculation of descent value.
 -
 -      * xdisp.c (handle_composition_prop): Set it->c to the first
 -      non-TAB component.
 -      (fill_composite_glyph_string): Change argument.
 -      (BUILD_COMPOSITE_GLYPH_STRING): Adjust for the above change.
 -      (x_produce_glyphs): Fix handling of left/right padding.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_system): Fix for handling off
 -      inhibit_iso_escape_detection.  Fix for the case that no coding
 -      system is defined for a specific coding category.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_matching_entity): Delete unused local var.
 -
 -      * xftfont.c (xftfont_open): Call XftDefaultSubstitute before
 -      opening a font.
 -
 -      * fileio.c (Finsert_file_contents): On recovering a file, assume
 -      Unix-like eol.
 -      (choose_write_coding_system): On auto-saving a file, force
 -      Unix-like eol.
 -
 -      * coding.c (setup_coding_system): Fix setting of
 -      coding->common_flags based on eol_type.
 -      (coding_inherit_eol_type): If PARENT is not nil, be sure to
 -      inherit from it.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * alloc.c (NSTATICS): Increas to 0x600.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_driver): Set ftfont_driver.match to ftfont_match.
 -      (ftfont_list): Don't check :name property.
 -      (ftfont_match): New function.
 -      (ftfont_pattern_entity): If the pattern doesn't contain
 -      FC_SPACING, don't assume FC_MONO.
 -
 -      * font.h (struct font_driver): New member `match'.
 -      (font_update_drivers): Adjust prototype.
 -
 -      * font.c (font_parse_fcname, font_parse_name): Don't change :name
 -      property of FONT.
 -      (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring): Define
 -      them unconditionally.
 -      (font_matching_entity): New function.
 -      (font_open_by_name): Try font_matching_entity if exact match is
 -      not found.
 -      (font_update_drivers): Delete the arg FONT.  Return a list of
 -      actually used backends.  Don't free faces, font caches here.
 -      Don't store data in frame parameters.  Don't call x_set_font.
 -      (Ffont_spec): Store :name property as is.
 -      (Ffont_get): Check HAVE_LIBOTF before calling font_otf_capability.
 -      (Ffont_otf_gsub): Call font->driver->otf_gsub instead of font_otf_gsub.
 -      (Ffont_otf_gpos): Call font->driver->otf_gpos instead of font_otf_gpos.
 -      (Ffont_otf_alternates): Check if the driver has otf_gsub function.
 -      Call font->driver->otf_gsub instead of font_otf_gsub.
 -
 -      * frame.c (x_set_font_backend): Do more works that were done in
 -      font_update_drivers before.
 -
 -      * xfont.c (xfont_match): New function.
 -      (xfont_driver): Set xfont_driver.match to xfont_match.
 -      (xfont_draw): Set font in GC if necessary.
 -
 -      * ftxfont.c (ftxfont_match): New function.
 -      (syms_of_ftxfont): Set ftxfont_driver.match to ftxfont_match.
 -
 -      * xftfont.c (xftfont_match): New function.
 -      (syms_of_xftfont): Set xftfont_driver.match to xftfont_match.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (struct font): New member scalable.
 -      (struct font_driver): New arg ALTERANTE_SUBST to otf_gsub.
 -      (font_otf_gsub): Adjust prototype.
 -
 -      * font.c (font_otf_capability): Fix handling of the default langsys.
 -      (parse_gsub_gpos_spec): Change type to void.  New arg nbytes.
 -      Check the contents of SPEC.
 -      (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE): New macros.
 -      (check_gstring): New function.
 -      (REPLACEMENT_CHARACTER): New macro.
 -      (font_otf_gsub): New arg alternate_subst.  Be sure to set all
 -      glyph codes of GSTRING.
 -      (font_otf_gpos): Be sure to set all glyph codes of GSTRING.
 -      (font_prepare_composition): Set cmp->glyph_len.
 -      (font_open_entity): Set font->scalable.
 -      (Ffont_get): Handle :otf property.
 -      (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates): New
 -      functions.
 -      (Fquery_font): Use font->font.full_name.
 -      (syms_of_font): Defsubr Sfont_otf_gsub, Sfont_otf_gpos, and
 -      Sfont_otf_alternates.
 -
 -      * ftfont.c (ftfont_open): Set font->font.full_name and
 -      font->font.name properly.  Fix calculation of font->font.height
 -      and font->min_width.
 -
 -      * ftxfont.c (ftxfont_create_gcs): New function.
 -      (ftxfont_draw_bitmap): Fix arg to ftfont_driver.get_bitmap.
 -      (ftxfont_draw_backgrond): Fix filling region.
 -      (ftxfont_default_fid): New function.
 -      (ftxfont_open): Set xfont->fid to the return value of
 -      ftxfont_default_fid.
 -      (ftxfont_prepare_face): Use ftxfont_create_gcs to create GCs.
 -      (ftxfont_done_face): Free only GCs that are created by
 -      ftxfont_create_gcs.
 -      (ftxfont_draw): If face->gc != s->gc, create proper GCs.
 -
 -      * xterm.c (x_set_glyph_string_clipping_exactly) [USE_FONT_BACKEND]:
 -      Clip to src->width, etc (not src->clip_XXX).
 -
 -      * xfns.c (x_create_tip_frame) [USE_FONT_BACKEND]: Handle
 -      FontBackend frame parameter.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (struct font_driver_list): New member `on'.
 -      (Fclear_font_cache): EXFUN it.
 -      (font_update_drivers): Extern it.
 -
 -      * font.c (font_unparse_fcname): Fix typo (swidth->width).
 -      (font_list_entities): Check driver_list->on.
 -      (register_font_driver): Initialize `on' member to 0.
 -      (font_update_drivers): New function.
 -      (Fclear_font_cache): Check driver_list->on.
 -
 -      * frame.h (Qfont_backend): Extern it.
 -      (x_set_font_backend): Extern it.
 -
 -      * frame.c (Qfont_backend): New variable.
 -      (frame_parms): New element for font-backend.
 -      (x_set_font_backend): New function.
 -
 -      * xfns.c (Fx_create_frame) [USE_FONT_BACKEND]: Handle
 -      FontBackend frame parameter.
 -      (x_frame_parm_handlers) [USE_FONT_BACKEND]: New element
 -      x_set_font_backend.
 -
 -      * xfont.c (xfont_list): Don't try listing by :name property if the
 -      name is not for XLFD.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (LGLYPH_FROM, LGLYPH_TO, LGLYPH_SET_FROM)
 -      (LGLYPH_SET_TO): New macros.
 -      (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WADJUST): Check if adjustment
 -      element of G is vector or not.
 -      (font_at): Extern it.
 -
 -      * font.c: Include window.h.
 -      (font_lispy_object): New function.
 -      (font_prepare_composition): Check LGLYPH_FORM (g) to detect the
 -      end of valid glyph.
 -      (font_close_object): Fix getting (struct font *).
 -      (font_at): New function.
 -      (Ffont_get): If FONT is a font-object, get entity from it.
 -      (Ffont_make_gstring): Initialize elements of glyphs with nil.
 -      (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX.  Fix
 -      range check.
 -      (Ffont_at): New function.
 -      (syms_of_font): Defsubr Sfont_at.
 -
 -      * xdisp.c (it_props): Move the entry for Qauto_composed to just
 -      before the entry for Qcomposition.
 -      (handle_auto_composed_prop): Call auto-composition-function with 4 args.
 -      (handle_composition_prop) [USE_FONT_BACKEND]: Set it->face_id from
 -      the font in gstring.
 -      (fill_composite_glyph_string) [USE_FONT_BACKEND]: Check
 -      LGLYPH_FORM (g) to detect the end of valid glyph.
 -      (x_produce_glyphs) [USE_FONT_BACKEND]: Don't update it->face_id if
 -      we are composing with gstring.
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground) [USE_FONT_BACKEND]:
 -      Check if adjustment is vector or not.
 -
 -      * Makefile.in (font.o): Make it depends on window.h.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Check if
 -      adjustment is vector or not.
 -
 -2008-02-01  Miles Bader  <miles@gnu.org>
 -
 -      * character.h (CHECK_CHARACTER): Redefine in terms of CHECK_TYPE.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WIDTH, LGLYPH_WADJUST)
 -      (LGLYPH_SET_WIDTH): Adjusted for the change of LGLYPH format.
 -      (LGLYPH_ADJUSTMENT, LGLYPH_SET_ADJUSTMENT): New macros.
 -
 -      * font.c (font_merge_old_spec): Treat '*' in foundry as a wild card.
 -      (DEVICE_DELTA): Fix typo.
 -      (font_otf_gpos, font_prepare_compositio): Adjust for the change of
 -      LGLYPH format.
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Adjust for
 -      the change of LGLYPH format.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_list): Fix typo.
 -      (ftfont_build_basic_charsets): Don't include letters with diacritics.
 -
 -2008-02-01  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xfaces.c (realize_non_ascii_face): Set face->extra to NULL.
 -
 -      * xftfont.c (xftfont_done_face): Call XftDrawDestroy only if
 -      xftface_info is non-NULL.
 -
 -2008-02-01  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * ftfont.c (ftfont_list): Move misplaced #endif.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ftfont.c (ftfont_list): Pay attention to the case that
 -      FC_CAPABILITY is not defined.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_open): Set charset related members to -1.
 -
 -      * ftfont.c (ftfont_list): Handle QCotf property.  Fix handling of
 -      QCname.
 -      (ftfont_open): Set charset related members to -1.
 -
 -      * fontset.c (Votf_script_alist): New variable.
 -      (syms_of_fontset): Initialize it.
 -      (fontset_font): Delete unused variable.
 -
 -      * fontset.h (Votf_script_alist): Extern it.
 -
 -      * font.c (font_find_for_lface): Optimize code.
 -
 -      * font.h (font_close_object, font_merge_old_spec): Extern them.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (QCscalable, Qc, Qm, Qp, Qd): New variables.
 -      (syms_of_font): Initialize them.
 -      (font_pixel_size): Allow float value in dpi.
 -      (font_prop_validate_type): Delete.
 -      (font_prop_validate_symbol, font_prop_validate_style): Change argument.
 -      Change caller.
 -      (font_prop_validate_non_neg): Rename from font_prop_validate_size.
 -      (font_prop_validate_extra): Delete.
 -      (font_prop_validate_spacing): New function.
 -      (font_property_table): Add elements for all known properties.
 -      (get_font_prop_index): Rename from check_font_prop_name.  New
 -      argument FROM.  Change caller.
 -      (font_prop_validate): Validate all known properties.
 -      (font_put_extra): Delete argument force.  Change caller.
 -      (font_expand_wildcards): Make it static.  Fix the way of shrinking
 -      the possible range.
 -      (font_parse_xlfd): Delete argument merge.  Fix handling of RESX,
 -      RESY, SPACING, and AVGWIDTH.  Don't validate property values here.
 -      Change caller.
 -      (font_unparse_xlfd): Handle dpi, spacing, and scalable properties.
 -      (font_parse_fcname): Delete argument merge.  Fix parsing of point
 -      size.  Don't validate properties values here.  Change caller.
 -      (font_unparse_fcname): Handle dpi, spacing, and scalable properties.
 -      (font_open_by_name): Delete unused variable.
 -      (Ffont_spec): Likewise.  Validate property values.
 -      (Ffont_match_p): New function.
 -
 -      * font.h (QCscalable): Extern it.
 -      (font_parse_xlfd, font_parse_fcname): Adjust prototype.
 -
 -      * ftfont.c (ftfont_list): Handle properties dpi, spacing, and scalable.
 -
 -      * xfont.c (xfont_query_font): Adjust for the change of font_parse_xlfd.
 -      (xfont_list_pattern): New function.
 -      (xfont_list): Use xfont_list_pattern.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (Flist_fonts): EXFUN it.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_initialize): Add back smoothing_type and
 -      smoothing_enabled definitions.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_draw_glyph_string) [USE_FONT_BACKEND]: Check
 -      s->face->font on determining underline position.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_parse_xlfd): Fix generating of CHARSET_REGISTRY field.
 -      (font_has_char): Accept font-object too.
 -      (font_find_for_lface): Try at first with a size specified in face.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * frame.c (x_set_font) [USE_FONT_BACKEND]: Fix argument to
 -      font_open_by_name.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (QCspacing, QCdpi): Extern them.
 -      (enum font_spacing): New enum.
 -      (FONT_PIXEL_SIZE_QUANTUM): New macro.
 -
 -      * font.c (POINT_TO_PIXEL): Don't divide POINT by 10.
 -      (QCspacing, QCdpi): New variables.
 -      (syms_of_font): Initialize them.
 -      (font_pixel_size): New function.
 -      (font_put_extra): New function.
 -      (font_parse_xlfd): Fix handling of font size.  Add QCdpi property
 -      in FONT_EXTRA.
 -      (font_parse_fcname): Handle enumerated values (e.g. bold).
 -      Fix handling font size.  Add QCname property that contains only
 -      unknown properties.
 -      (font_score): Change argument.  Change caller.  Pay attention to
 -      FONT_PIXEL_SIZE_QUANTUM.
 -      (font_sort_entites, font_list_entities, font_find_for_lface)
 -      (font_open_for_lface, font_open_by_name): Fix handling of font size.
 -      (Ffont_spec): Add QCname property that contains only unknown properties.
 -
 -      * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq.  Don't
 -      include weight in listing pattern, instead check weight of each
 -      listed font.  Don't include scalable in pattern.  Pay attention to
 -      FONT_PIXEL_SIZE_QUANTUM.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.c (font_parse_fcname): Fix parsing of point-size.
 -      (font_unparse_fcname): Produce symbolic names for style properties.
 -      (font_list_entities): Handle float size correctly.
 -      (font_open_by_name): Prefer `normal' property values if the name
 -      doesn't specify them.
 -
 -      * fontset.c (Finternal_char_font): Use font_get_name, not
 -      Ffont_xlfd_name.
 -
 -      * ftfont.c (ftfont_pattern_entity): Use the numeric value 100 for
 -      FC_WEIGHT_REGULAR.  Exclude FC_SIZE and FC_PIXEL_SIZE from listing
 -      pattern.  Don't force scalable.
 -
 -      * xftfont.c (xftfont_open): For generating a name, start from
 -      96-byte buffer.
 -
 -2008-02-01  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * frame.h (x_new_fontset2): Fix prototype.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (struct font_driver): Delete member parse_name.
 -      (font_match_p, font_get_spec, font_parse_fcname)
 -      (font_unparse_fcname): Extern them.
 -      (font_get_name): Adjust prototype.
 -
 -      * font.c (XLFD_SMALLNUM_MASK): Delete this macro.
 -      (XLFD_LARGENUM_MASK): Delete XLFD_ENCODING_MASK from it.
 -      (font_expand_wildcards): Fix handling ENCODING field.  Avoid
 -      unnecessary checks for weight, slant, and swidth.
 -      (font_parse_fcname): New function.
 -      (font_unparse_fcname): New function.
 -      (font_parse_name): New function.
 -      (font_match_p): New function.
 -      (font_get_name): Change return value to Lisp string.
 -      (font_get_spec): New function.
 -      (Qunspecified, Qignore_defface): Don't extern them.
 -      (font_find_for_lface): Assume that LFACE is fully specified.
 -      (font_load_for_face): If lface[LFACE_FONT_INDEX] is an font
 -      object, use it for FACE.
 -      (font_open_by_name): Call Ffont_spec with QCname prop.  Don't call
 -      driver->parse_name.
 -      (Ffont_spec): Call font_parse_name, not font_parse_xlfd.
 -
 -      * fontset.h (new_fontset_from_font) [USE_FONT_BACKEND]: Adjust
 -      prototype.
 -
 -      * fontset.c (new_fontset_from_font) [USE_FONT_BACKEND]: Delete
 -      argument F.  Don't call Fnew_fontset.  Instead, directly call
 -      make_fontset.
 -
 -      * frame.h (x_new_fontset2) [USE_FONT_BACKEND]: Adjust prototype.
 -
 -      * frame.c (x_set_font) [USE_FONT_BACKEND]: Adjust for the change
 -      of x_new_fontset2.
 -
 -      * ftfont.c (Qmonospace, Qsans_serif, Qserif, Qmono, Qsans)
 -      (Qsans__serif): New variables.
 -      (ftfont_generic_family_list): New variable.
 -      (syms_of_ftfont): Initialize the above variables.
 -      (ftfont_pattern_entity): Delete argument NAME.
 -      (ftfont_list_generic_family): New function.
 -      (ftfont_parse_name): Delete this function.
 -      (ftfont_list): Try generic family only when FcFontList found no font.
 -      (ftfont_list_family): Fix args to FcObjectSetBuild.
 -
 -      * xfaces.c (check_lface_attrs) [USE_FONT_BACKEND]: Accept font
 -      object in attrs[LFACE_FONT_INDEX].
 -      (set_lface_from_font_name): Cancel all changes for font-backend.
 -      (set_lface_from_font_and_fontset) [USE_FONT_BACKEND]: New
 -      function.
 -      (Finternal_set_lisp_face_attribute) [USE_FONT_BACKEND]: Accept a
 -      font object in QCfont attribute.
 -      (set_font_frame_param) [USE_FONT_BACKEND]: Likewise.
 -      (realize_default_face) [USE_FONT_BACKEND]: Call
 -      set_lface_from_font_and_fontset.
 -
 -      * xfns.c (x_default_font_parameter) [USE_FONT_BACKEND]: Try also
 -      "fixed", and signal error here if no suitable font was found.
 -
 -      * xfont.c (xfont_parse_name): Delete this function.
 -
 -      * xftfont.c (xftfont_open): Change coding style of error
 -      handling.  Generate fontconfig's fontname pattern.
 -
 -      * xterm.h (struct x_output) [USE_FONT_BACKEND]: New member fontp.
 -      (FRAME_FONT_OBJECT) [USE_FONT_BACKEND]: New macro.
 -
 -      * xterm.c (x_new_fontset2) [USE_FONT_BACKEND]: Change arguments.
 -      Both args FONTSET and FONT_OBJECT must be existing ones.
 -
 -2008-02-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfont.c (xfont_open, xfont_encode_char): Fix typo.
 -
 -      * font.h (struct font): Fix typo.
 -
 -      * font.c (enum xlfd_field_index): Rename XLFD_XXX_SIZE_INDEX to
 -      XLFD_XXX_INDEX.
 -      (enum xlfd_field_mask): New enum.
 -      (intern_font_field): Changed argument.  Change caller.  If digits
 -      are followed by non-digits, return a symbol.
 -      (font_expand_wildcards): New function.
 -      (font_parse_xlfd): Fix wildcard handling.
 -      (Ffont_spec): If :name is specified, reflect the info in the other
 -      properties.
 -
 -      * ftfont.c (ftfont_pattern_entity): Fix typo.
 -      (ftfont_list): Enforce FC_LANG in PATTERN to cancel the effect of
 -      locale.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * font.h (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Extern them.
 -
 -      * font.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Move from ftfont.c.
 -      (font_unparse_xlfd): Fix argument type declaration.  Append "*" if
 -      registry doesn't specify encoding part.
 -      (font_find_for_lface): Pay attention to LFACE_FONT_INDEX.
 -      (font_open_by_name): At first try parsing the name.
 -      (syms_of_font): Declare Qiso8859_1, Qiso10646_1, and Qunicode_bmp
 -      as Lisp symbols.
 -
 -      * fontset.c (reorder_font_vector): Pay attention to the case that
 -      the 3rd element of font_def is nil.
 -      (fontset_font): For the default fontset, append one more fontset
 -      elements for a script-based font specification.  Don't add script
 -      attribute on finding a font.
 -      (new_fontset_from_font): Unconditionally set FONTSET_ASCII to the
 -      font name.
 -      (fontset_ascii_font): If a font can't be opened, return nil.
 -
 -      * ftfont.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Move to font.c.
 -      (ftfont_pattern_entity): New function.
 -      (ftfont_get_cache): Assume that freetype_font_cache is already
 -      initialized.
 -      (ftfont_list): Handle the case that a file is specified in font
 -      name.  Use ftfont_pattern_entity to generate entities.
 -      (ftfont_has_char): Check if the pattern contains FC_CHARSET.
 -      (syms_of_ftfont): Initialize freetype_font_cache.
 -
 -      * xftfont.c (xftfont_open): Make the font name fontconfig's
 -      style.  Add BLOCK_INPUT and UNBLOCK_INPUT.
 -      (xftfont_close): Free font->font.name if not NULL.
 -
 -      * xfont.c (xfont_list): If script is specified for a font, return
 -      null_vector.
 -      (xfont_list_family): Declare argument type.
 -
 -      * xfaces.c (set_lface_from_font_name): If a font doesn't have a
 -      name, set LFACE_FONT (lface) to nil.
 -
 -      * xterm.c (x_new_fontset2): If an ASCII font couldn't be loaded,
 -      return Qnil.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * emacs.c (main): Check -enable-font-backend arg after the check of -nl.
 -      (standard_args): Add "-enable-font-backend".
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xftfont.c (xftfont_default_fid): Set fid_known to 1.
 -      (struct xftdraw_list, xftdraw_list): Delete them.
 -      (register_xftdraw, check_xftdraw): Delete them.
 -      (xftfont_prepare_face): Don't call register_xftdraw.
 -      (xftfont_done_face): Don't call check_xftdraw.
 -      (xftfont_draw): Get background color only when with_background is
 -      nonzero.
 -
 -      * xfont.c (xfont_encode_char): Fix calculation of char2b.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      These changes are for the new font handling codes.
 -
 -      * Makefile.in (ALL_CFLAGS): Add @FREETYPE_CFLAGS@,
 -      @FONTCONFIG_CFLAGS@, and @LIBOTF_CFLAGS@.
 -      (LIB_X11_LIB): If HAVE_XFT is defined, set to @XFT_LIBS@.
 -      (FONTSRC, FONTOBJ): New variables.
 -      (obj): Add $(FONTOBJ).
 -      (SOME_MACHINE_OBJECTS): Lib_X11_Lib.
 -      (LIBES): Add @FREETYPE_LIBS@, @FONTCONFIG_LIBS@, and
 -      @LIBOTF_LIBS@.
 -      (font.o, ftfont.o, xfont.o, xftfont.o, ftxfont.o): New targets.
 -      (fontset.o, xdisp.o, xfaces.o, xfns.o, xterm.o): Depend on $(FONTSRC).
 -
 -      * font.h, font.c, xfont.c, ftfont.c, xftfont.c, ftxfont.c: New files.
 -
 -      * character.h (Vscript_representative_chars): Extern it.
 -
 -      * character.c (Vscript_representative_chars): New variable.
 -      (syms_of_character): Declare it as a Lisp variable.
 -
 -      * composite.c (get_composition_id) [USE_FONT_BACKEND]: If
 -      enable_font_backend is nonzero, accept the composition method
 -      COMPOSITION_WITH_GLYPH_STRING.
 -
 -      * composite.h (enum composition_method) [USE_FONT_BACKEND]: New
 -      enumeration COMPOSITION_WITH_GLYPH_STRING.
 -
 -      * dispextern.h (struct glyph_string) [USE_FONT_BACKEND]: New
 -      members clip_x, clip_y, clip_width, and clip_height.
 -      (struct face) [USE_FONT_BACKEND]: New members font_info and extra.
 -
 -      * emacs.c (main) [USE_FONT_BACKEND]: Handle arg
 -      --enable-font-backend.  Call syms_of_font.
 -
 -      * fns.c (assoc_no_quit): New function.
 -
 -      * fontset.h (FONT_INFO_FROM_FACE): New macro.
 -      (face_for_font, new_fontset_from_font)
 -      (fontset_ascii_font) [USE_FONT_BACKEND]: Extern them.
 -
 -      * fontset.c [USE_FONT_BACKEND]: Include "font.h".
 -      (fontset_font, fontset_ascii, face_for_char)
 -      (make_fontset_for_ascii_face, Ffont_info)
 -      (Finternal_char_font) [USE_FONT_BACKEND]: If enable_font_backend
 -      is nonzero, use font-backend mechanism.
 -      (find_font_encoding): Make it non-static.
 -      (new_fontset_from_font, fontset_ascii_font) [USE_FONT_BACKEND]:
 -      New functions.
 -
 -      * frame.h (struct frame): New members resx and resy.
 -      (struct frame) [USE_FONT_BACKEND]: New member font_driver_list.
 -      (x_new_fontset2) [USE_FONT_BACKEND]: Extern it.
 -
 -      * frame.c [USE_FONT_BACKEND]: Include "font.h".
 -      (make_frame, x_set_font) [USE_FONT_BACKEND]: Use font-backend mechanism.
 -
 -      * lisp.h (assoc_no_quit): Extern it.
 -
 -      * xdisp.c: If USE_FONT_BACKEND is defined, include "font.h".
 -      Through out the file, use FONT_INFO_FROM_FACE instead of
 -      FONT_INFO_FROM_ID, use get_per_char_metric instead of
 -      rif->per_char_metric.
 -      (handle_composition_prop) [USE_FONT_BACKEND]: If the composition
 -      method is COMPOSITION_WITH_GLYPH_STRING, just set it->c to ' '.
 -      (get_glyph_face_and_encoding, fill_composite_glyph_string)
 -      (get_char_face_and_encoding, BUILD_COMPOSITE_GLYPH_STRING)
 -      (x_produce_glyphs) [USE_FONT_BACKEND]: If enable_font_backend is
 -      nonzero, use font-backend mechanism.
 -      (get_per_char_metric): New function.
 -
 -      * xfaces.c [USE_FONT_BACKEND]: Include "font.h".
 -      (set_lface_from_font_name)
 -      (set_font_frame_param, free_realized_face)
 -      (prepare_face_for_display, clear_face_gcs)
 -      (Finternal_set_font_selection_order, realize_x_face)
 -      [USE_FONT_BACKEND]: If enable_font_backend is nonzero, use
 -      font-backend mechanism.
 -      (clear_face_cache) [USE_FONT_BACKEND]: Don't call clear_font_table.
 -      (load_face_font) [USE_FONT_BACKEND]: Abort.
 -      (face_symbolic_value, face_symbolic_weight, face_symbolic_slant)
 -      (face_symbolic_swidth, face_for_font) [USE_FONT_BACKEND]: New functions.
 -
 -      * xfns.c [USE_FONT_BACKEND]: Include "font.h".
 -      (x_default_font_parameter) [USE_FONT_BACKEND]: New function.
 -      (Fx_create_frame) [USE_FONT_BACKEND]: If enable_font_backend is
 -      nonzero, register all available font drivers.  Call
 -      x_default_font_parameter for deciding a font.
 -      (x_create_tip_frame) [USE_FONT_BACKEND]: Likewise.
 -
 -      * xterm.c [USE_FONT_BACKEND]: Include "font.h".
 -      (x_set_mouse_face_gc, x_set_glyph_string_clipping)
 -      (x_set_glyph_string_clipping_exactly)
 -      (x_compute_glyph_string_overhangs)
 -      (x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground, x_draw_glyph_string)
 -      (x_free_frame_resources) [USE_FONT_BACKEND]: If
 -      enable_font_backend is nonzero, use font-backend mechanism.
 -      (x_new_fontset2) [USE_FONT_BACKEND]: New function.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_inherit_eol_type): If PARENT is nil, inherit from
 -      system_eol_type.
 -      (syms_of_coding): Initialize system_eol_type.
 -
 -      * process.c (Fset_process_coding_system): Inherit system's eol
 -      format if necessary.
 -
 -2008-02-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macgui.h (USE_ATSUI): Don't enable on emacs-unicode-2 branch.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_eol): Pay attention to buffer relocation in
 -      del_range_2.
 -      (decode_coding): Call decode_eol before restoring undo_list.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fdefine_charset_internal): Fix setting of
 -      emacs_mule_bytes.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keyboard.c (read_char): Check if C is a character or not before
 -      looking up Vkeyboard_translate_table.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
 -      condition to terminate the loop.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (produce_composition): Compare charbuf[i] instead of
 -      args[i] against 0.
 -      (Fterminal_coding_system): Use EQ to compare Lisp objects.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (DECODE_COMPOSITION_START): If the source is short, set
 -      coding->result to CODING_RESULT_INSUFFICIENT_SRC.
 -      (decode_coding_gap): Set CODING_MODE_LAST_BLOCK after the call of
 -      detect_coding.
 -      (emacs_mule_char): Handle old style (Emacs 20) component character
 -      of a composition.
 -      (DECODE_EMACS_MULE_COMPOSITION_RULE_20)
 -      (DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION): Fix parsing a
 -      composition rule.
 -      (decode_coding_emacs_mule): Handle invalid bytes correctly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_ccl): Allocate destination dynamically
 -      when necessary.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ccl.c (Fccl_execute_on_string): Fix the condition of terminating
 -      the loop.  When quitted, show a proper error message.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_set_glyph_string_clipping_exactly): Set
 -      src->clip_head and src->clip_tail temporarily instead of src->hl.
 -
 -      * ccl.c (CCL_WRITE_STRING): Handle a flag bit for multibyte
 -      character sequence.
 -      (Fccl_execute_on_string): Use ASET, not XSET.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (search_buffer): Fix handling of "\\" in a trivial regexp.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding): Fix the condition of terminating the
 -      decoding loop.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * data.c (Faset): On setting a character bigger than 255 in a
 -      unibyte string, signal an error instead of make the string multibyte.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (map_charset_chars): Fix for ascii-compatible charset
 -      made by a mapping table.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (fill_composite_glyph_string): Check s->face is NULL or
 -      not.
 -      (BUILD_COMPOSITE_GLYPH_STRING): If C is TAB, set s->face to NULL.
 -      (x_produce_glyphs): If CH is TAB, set cmp->offsets properly.
 -
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Check
 -      s->face is NULL or not.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_set_glyph_string_clipping_exactly): New function.
 -      (x_draw_glyph_string): Fix drawing of right_overhang and
 -      left_overhang around/on cursor.
 -
 -      * xdisp.c (draw_glyphs): Fix inclusion of right_overwriting glyphs.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (x_produce_glyphs): Handle composition with TAB.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Fdefine_coding_system_internal)
 -      (Fdefine_coding_system_alias): Avoid a duplicated element in
 -      Vcoding_system_alist.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF.
 -
 -      * coding.c (Qcoding_system_define_form): New variable.
 -      (syms_of_coding): Intern and staticpro it.
 -      (Fcoding_system_p): Check Qcoding_system_define_form.
 -      (Fcheck_coding_system): Try to autoload the definition of CODING-SYSTEM.
 -
 -      * coding.h (CODING_SYSTEM_P): If ID is not available, call
 -      Fcoding_system_p.
 -      (CHECK_CODING_SYSTEM): If ID is not available, call
 -      Fcheck_coding_system.
 -      (CHECK_CODING_SYSTEM_GET_SPEC, CHECK_CODING_SYSTEM_GET_ID):
 -      Try also Fcheck_coding_system.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (code_conversion_restore): GCPRO arg.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (lisp_string_width): Check multibyteness of STRING.
 -
 -2008-02-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_encode_char): Call ccl_driver with the last arg
 -      Qnil.  Use JIS_TO_SJIS instead of ENCODE_SJIS.
 -      (decode_mac_font_name): Use decode_coding_c_string instead of
 -      decode_coding.
 -      (x_load_font): Initialize fontp->fontset to -1.  Set
 -      fontp->encoding_type.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (search_buffer): Give up BM search on case-fold-search
 -      if one of a target character has a case-equivalence of different
 -      byte length even if that target character is an ASCII.
 -      (simple_search): Fix calculation of byte length of matched text.
 -      (boyer_moore): Fix handling of case-equivalent multibyte characters.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding): Fix handling of invalid bytes.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (handle_one_xevent): Handle keysyms directly mapped to
 -      Unicode characters.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_object): If a pre-write-conversion
 -      function makes a new buffer, kill it.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (QCascii_compatible_p): New variable.
 -      (syms_of_coding): Initialize it.
 -      (ONE_MORE_BYTE, ONE_MORE_BYTE_NO_CHECK): Decrement `src' before
 -      calling string_char.
 -      (record_conversion_result): Add `default:' case.
 -      (coding_charset_list): Delete unused variable `coding_type'.
 -      (Fdefine_coding_system_internal): Add `ascii-compatible-p'
 -      property in the plist of the coding system.
 -      (Fcoding_system_put): Check QCascii_compatible_p.
 -
 -2008-02-01  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (Finternal_lisp_face_equal_p): Restore previously
 -      removed calculation of frame `f', as it's now used.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (RUN_TEMACS): Include "-nl" if HAVE_SHM is defined.
 -      (emacs${EXEEXT}): Run $(RUN_TEMACS) unconditionally.
 -      (UNIDATA): New variable.
 -      (${lispsource}international/charprop.el): Depends on ${UNIDATA}.
 -      (bootstrap-emacs${EXEEXT}): Depends on charprop.el.  Run
 -      $(RUN_TEMACS) unconditionally.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (temacs${EXEEXT}): Build charprop.el if necessary.
 -      (admindir): New variable.
 -      ($(lispsource)international/charprop.el): New target.
 -
 -2008-02-01  Miles Bader  <miles@gnu.org>
 -
 -      * character.c (chars-in-region): Remove obsolete function.
 -      (syms_of_character): Remove its initialization.
 -
 -2008-02-01  Benjamin Riefenstahl  <b.riefenstahl@turtle-trading.net>
 -
 -      * w32select.c (validate_coding_system)
 -      (setup_windows_coding_system): New functions.
 -      (convert_to_handle_as_coded, Fw32_get_clipboard_data): Use
 -      setup_windows_coding_system.
 -      (setup_config, Fw32_get_clipboard_data): Use
 -      validate_coding_system.
 -      (Fx_selection_exists): Move call to setup_config to a place
 -      where signals are allowed.
 -
 -      * lisp.h (Fcoding_system_base, Fcoding_system_eol_type)
 -      (Fcheck_coding_system): Add declarations.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (load_charset_map_from_vector): Fix for the first iteration.
 -
 -2008-02-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Fx_create_frame, x_create_tip_frame): Pass Lisp
 -      string as the second argument for x_new_fontset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_object): Use safe_call1 instead of call1.
 -      (encode_coding_object): Use safe_call instead of call2.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Fset_fontset_font): Check family element of a given vector.
 -
 -      * Makefile.in (lisp): Include charprop.el.
 -
 -2008-02-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Fx_create_frame, x_create_tip_frame): Fix crash.
 -      Not sure if it's unnecessary.
 -
 -2008-02-01  Steven Tamm  <steventamm@mac.com>
 -
 -      * macfns.c (Fx_create_frame, x_create_tip_frame): ifdef'd out
 -      some possibly unnecessary fontset checking code that crashed
 -      when creating a new frame.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (merge_faces): Fix argument to lookup_derived_face and
 -      lookup_face.
 -
 -      * xdisp.c (Fformat_mode_line): Fix argument to lookup_named_face.
 -
 -      * fringe.c (draw_fringe_bitmap_1): Fix argument to lookup_named_face.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c: Cancel the change done in HEAD on 2008-02-01.
 -      (coding_charset_list): New function.
 -
 -      * coding.h (coding_charset_list): Extern it.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Fset_fontset_font): Call find_font_encoding with
 -      concatenation of family and registry.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.h (BYTE8_STRING): Fix typo.
 -
 -      * editfns.c (Ftranslate_region_internal): Don't convert unibyte
 -      string to multibyte (sync to HEAD).
 -
 -      * casefiddle.c (casify_region): Handle changes in byte-length
 -      using replace_range_2 (sync to HEAD).
 -
 -2008-02-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * chartab.c (map_char_table): GCPRO table and arg.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (skip_syntaxes): Return lispy 0 (not nil) if point is
 -      already at limit.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fs_load_font): Use fast_string_match_ignore_case
 -      instead of fast_c_string_match_ignore_case.
 -      (find_font_encoding): Change argument to Lisp_Object.  Use
 -      fast_string_match_ignore_case instead of
 -      fast_c_string_match_ignore_case.  Change caller.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (get_next_display_element): In unibyte case, decide to
 -      display in octal form by checking a character by
 -      UNIBYTE_CHAR_HAS_MULTIBYTE_P.
 -
 -      * charset.c (Fset_unibyte_charset): Setup unibyte_has_multibyte_table.
 -
 -      * character.c (unibyte_has_multibyte_table): New variable.
 -
 -      * character.h (unibyte_has_multibyte_table): Extern it.
 -      (UNIBYTE_CHAR_HAS_MULTIBYTE_P): New macro.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_iso_2022): Fix handling of charset
 -      annotation.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (setup_coding_system): If coding_system is nil, use
 -      Qundecided.
 -      (Fterminal_coding_system): Return nil if terminal coding system is
 -      `undecided'.
 -      (syms_of_coding): Define coding-system `undecided' here.  Setup
 -      terminal_coding as `undecided'.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (message_dolog, set_message_1): Call
 -      unibyte_char_to_multibyte with arg type int.
 -
 -      * lread.c (read1): Fix reading of a char-table.
 -
 -      * print.c (print_object): Include sub char-table in circularities
 -      detection.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (where_is_internal_2): Fix for the case that KEY is a cons.
 -      Append the found sequences in car of ARGS instead of prepending.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (report_file_error): Make a unibyte string from
 -      strerror (errorno).
 -      (Fsubstitute_in_file_name): Fix the arg to
 -      unibyte_char_to_multibyte.  It is evaluated twice.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (CHAR_CHARSET): Shortcut for ASCII case.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_utf_16): Don't set detect_info->found if
 -      BOM is not found.
 -      (detect_coding, detect_coding_system): Optimization for ISO-2022
 -      when no 8-bit data is found.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_to_w32_font): Update to use new coding struct.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fdeclare_equiv_charset, Fiso_charset): Fix handing of
 -      CHARS.
 -
 -2008-02-01  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (mac_encode_char): Add charset argument and update
 -      to use encoding_type.
 -      (x_new_font, x_new_fontset): Merge in changes from xterm.c;
 -      switch to pure fontset.
 -      (decode_mac_font_name): Temporarily remove decoding.
 -      (x_font_name_to_mac_font_name): Temporarily remove encoding.
 -      (x_load_font): Temporarily remove encoding.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (Fface_font): If frame is not on a window system,
 -      ignore CHARACTER arg.  If HAVE_WINDOW_SYSTEM is not defined, don't
 -      refer to face->font.
 -      (split_font_name_into_vector, build_font_name_from_vector)
 -      (lookup_non_ascii_face, realize_non_ascii_face): Define them only
 -      when HAVE_WINDOW_SYSTEM is defined.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (BUILD_GLYPH_STRINGS): Check if s is NULL.
 -      (x_produce_glyphs): Fix setting of members of cmp in case
 -      cmp->glyph_len is zero.
 -
 -      * fontset.c (Fset_fontset_font): Fix docstring.
 -      (Ffontset_info): Make it backward compatible.  New arg ALL.
 -
 -2008-02-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (read_process_output): Grow decoding_buf when needed;
 -      this could cause a crash in allocate_string and compact_small_strings.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (WRITE_BUF_SIZE): Delete this macro.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (setup_coding_system): Set coding->common_flags
 -      correctly for raw-text.
 -      (consume_chars): On encoding unibyte text by raw-text, don't check
 -      multibyte form.
 -      (encode_coding): On encoding by raw-text, never use translation tables.
 -
 -      * fileio.c (e_write): Short cut for the case of no encoding.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding, detect_coding_system): Delete unused
 -      variables.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_utf_8): Fix handling of raw-byte char.
 -      (consume_chars): Fix handling of 8-bit bytes in unibyte source.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Ffind_coding_systems_region_internal): Include
 -      raw-text and no-conversion in the result.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (find_font_encoding): Return `ascii' for unknown encoding.
 -      (load_font_get_repertory): Delete unnecessary check of ENCODING of
 -      FONT_DEF.
 -      (font_def_arg, add_arg, from_arg, to_arg): New args.
 -      (set_fontset_font): Change argument.
 -      (Fset_fontset_font): Fix for the case that TARGET is a script
 -      name and charset name.
 -      (new_fontset_from_font_name): Fix argument to Fnew_fontset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_font): Rename from fontset_face.  Change return
 -      value.
 -      (face_suitable_for_char_p, face_for_char): Adjust for the change
 -      of fontset_font.
 -      (make_fontset_for_ascii_face): Fix setting of the fontset element
 -      for ASCII.
 -      (Finternal_char_font): Use fontset_font instead of FACE_FOR_CHAR
 -      to get a font name.
 -      (Ffontset_info): Adjust for the change of fontset_font.
 -
 -      * coding.c (emacs_mule_char): Check invalid code more rigidly.
 -
 -      * character.h (LEADING_CODE_LATIN_1_MIN)
 -      (LEADING_CODE_LATIN_1_MAX): Delete these macros.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (check_translation): New function.
 -      (Ftranslate_region_internal): Handle M:N mapping.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (xlfd_point_size): Set font->numeric[XLFD_PIXEL_SIZE].
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (DECODE_DESIGNATION): Set chars_96 to -1 instead of
 -      goto invalid_code.
 -      (decode_coding_iso_2022): Fix handling of invalid designation.
 -
 -      * fileio.c (Finsert_file_contents): Be sure to call unbind_to
 -      after calling code_conversion_save.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_auto_composed_prop): Fix Lisp_Object/int mixup.
 -
 -      * print.c (print_prune_string_charset): Fix Lisp_Object/int mixup.
 -
 -      * fontset.c: Include "intervals.h".
 -      (fontset_face): Fix comparing of Lisp_Objects.
 -      (free_face_fontset, new_fontset_from_font_name): Fix
 -      Lisp_Object/int mixup.
 -
 -      * editfns.c (Ftranslate_region_internal): Fix Lisp_Object/int mixup.
 -
 -      * coding.c: Add many prototypes for static functions.
 -      (get_translation_table): Allow max_lookup to be NULL.
 -      (decode_coding, Ffind_coding_systems_region_internal)
 -      (Funencodable_char_position, Fcheck_coding_systems_region): Call
 -      get_translation_table with max_lookup NULL.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (get_translation_table): Declare it as Lisp_Object.
 -      (LOOKUP_TRANSLATION_TABLE): New macro.
 -      (produce_chars, consume_chars): Use LOOKUP_TRANSLATION_TABLE
 -      instead of CHAR_TABLE_REF.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (MAX_ANNOTATION_LENGTH): Adjust for the change of
 -      annotation data format.
 -      (ADD_ANNOTATION_DATA, ADD_COMPOSITION_DATA, ADD_CHARSET_DATA):
 -      Change arguments FROM and TO to single argument NCHARS.  Change caller.
 -      (decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule)
 -      (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
 -      (decode_coding_ccl, decode_coding_charset): Pay attention to
 -      coding->charbuf_used.
 -      (get_translation): New function.
 -      (produce_chars): New arguments translation_table and last_block.
 -      Translate characters here.  Return number of carryover chars.
 -      Change caller.
 -      (produce_composition): New argument pos.  Change caller.
 -      Adjust for the change of annotation data format.
 -      (produce_charset, produce_annotation): Likewise.
 -      (decode_coding, encode_coding): Don't call translate_chars.
 -      (consume_chars): New arg translation_table.  Change caller.
 -      (translate_chars): Delete.
 -      (syms_of_coding): Make translation-table's number of extra slots 2.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (simple_search): Fix setting this_pos_byte in backward
 -      search.
 -
 -      * coding.c (detect_coding_emacs_mule): Fix counting of encoded
 -      byte sequence.
 -      (detect_coding_ccl): Fix setting of the variable valids.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_list_fonts): Fix the detection of an auto-scaled font.
 -
 -      * coding.c (decode_coding_utf_16): Fix handling of surrogate pair.
 -
 -      * editfns.c (Ftranslate_region_internal): Rename from
 -      Ftranslate_region.  Accept a char-table in TABLE.
 -      (syms_of_editfns): Defsubr Stranslate_region_internal.
 -
 -      * xfaces.c (set_lface_from_font_name): If a font is specified for
 -      a frame, generate a fontset from the font.
 -      (build_scalable_font_name): If the scalable font is requested for
 -      a specific size, don't change that size.
 -      (try_font_list): Try a scalable font also in the case that a
 -      pattern string is specified.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (Fface_font): New optional arg CHARACTER.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (CHARSET_OFFSET): New macro.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_get_font_repertory): Fix for non-Unicode-bmp charset.
 -
 -      * fontset.c (fontset_face): Handle the case that repertory is a
 -      char-table.
 -      (find_font_encoding): Return nil for unknown encoding.
 -      (Fset_fontset_font): Ignore a font of unknown encoding.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (describe_vector): Handle default value of a char table.
 -
 -      * fontset.c (fontset_face): Handle fallback fonts correctly.
 -      (Ffontset_info): Return infomation about fallback fonts.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (FONTSET_DEFAULT): New macro.
 -      (FONTSET_ADD, fontset_add): Handle the case that range is nil.
 -      (Fset_fontset_font): Change the 2nd arg name to TARGET, and handle
 -      the case that it is nil.
 -      (dump_fontset): Call FONTSET_DEFAULT, not FONTSET_FALLBACK.
 -      (syms_of_fontset): Set char-table-extra-slots property of fontset to 9.
 -
 -      * charset.h (CHAR_CHARSET_P): Fix for the case that the method is
 -      subset or superset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * emacs.c (main): Call init_charset after syms_of_XXX.
 -
 -      * charset.c (Vcharset_map_directory): Delete.
 -      (Vcharset_map_path): New variable.
 -      (load_charset_map_from_file): Use Vcharset_map_path instead.
 -      (init_charset): Initialize Vcharset_map_path.
 -      (syms_of_charset): Delete declaration of "charset-map-directory",
 -      add declaration of "charset-map-path".
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (string_char_to_byte, string_byte_to_char): Optimize for
 -      ASCII only string.
 -
 -      * fileio.c (Finsert_file_contents): Avoid detecting a code twice.
 -
 -      * coding.c (detect_coding_iso_2022): Fix handling of SS2 and SS3.
 -      (detect_coding, detect_coding_system): Treat '\0' as normal ASCII byte.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.h (SJIS_TO_JIS2, JIS_TO_SJIS2): New macros.
 -
 -      * coding.c (QCmnemonic, QCdefalut_char)
 -      (QCdecode_translation_table, QCencode_translation_table)
 -      (QCpost_read_conversion, QCpre_write_conversion): New variables.
 -      (get_translation_table): Return a list of translation tables if
 -      necessary.
 -      (decode_coding): Call get_translation_table with ENCODEP 0.
 -      (char_encodable_p): If translation_table is non-nil, always call
 -      translate_char.
 -      (Fdefine_coding_system_internal): Accept list of translation
 -      tables as :encode-translation-table and :decode-translation-table.
 -      (Fcoding_system_put): New function.
 -      (syms_of_coding): Declare new symbols.  Defsubr
 -      Scoding_system_put.
 -      (decode_coding_sjis, encode_coding_sjis): Handle 4th charset,
 -      typically JISX0212.
 -
 -      * charset.c (map_charset_chars): Fix arg to map_charset_chars in
 -      when the charset is superset type.
 -
 -      * character.c (translate_char): Accept list of translation tables.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.h (enum coding_attr_index): New member coding_attr_trans_tbl.
 -      (CODING_ATTR_TRANS_TBL): New macro.
 -
 -      * coding.c (get_translation_table): New function.
 -      (translate_chars): Fix the bug of skipping annotation data.
 -      (decode_coding, encode_coding): Utilize get_translation_table.
 -      (char_encodable_p, Funencodable_char_position): Translate char if
 -      necessary.
 -      (Ffind_coding_systems_region_internal)
 -      (Fcheck_coding_systems_region): Setup translation table for encode
 -      in a coding system attribute vector in advance.
 -      (Fdefine_coding_system_internal): Allow a symbol as translation
 -      table.  For shift-jis type coding system, allow 4th charset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_sjis): Check the first byte rigidly.
 -
 -      * xdisp.c (get_next_display_element): Pass -1 as POS to
 -      FACE_FOR_CHAR if displaying a C-string.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (get_composition_id): Handle xoff and yoff in a
 -      composition rule.
 -
 -      * composite.h (COMPOSITION_DECODE_RULE): New arg xoff and yoff.
 -      (struct composition): New member lbearing and rbearing.
 -
 -      * xdisp.c (move_it_to): Optimize for the case (op & MOVE_TO_Y).
 -      (x_get_glyph_overhangs): Handle a composition glyph.
 -      (x_produce_glyphs): Setup lbearing and rbreaing for a composition glyph.
 -
 -      * xterm.c (x_compute_glyph_string_overhangs): Handle also a
 -      composition glyph.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * print.c: Include charset.h.
 -      (Vprint_charset_text_property): New variable.
 -      (Qdefault): Extern it.
 -      (PRINT_STRING_NON_CHARSET_FOUND)
 -      (PRINT_STRING_UNSAFE_CHARSET_FOUND): New macros.
 -      (print_check_string_result): New variable.
 -      (print_check_string_charset_prop): New function.
 -      (print_prune_charset_plist): New variable.
 -      (print_prune_string_charset): New function.
 -      (print_object): Call print_prune_string_charset if
 -      Vprint_charset_text_property is not t.
 -      (print_interval): Print nothing if interval->plist is nil.
 -      (syms_of_print): Declare Vprint_charset_text_property as a lisp
 -      variable.  Init and staticpro print_prune_charset_plist.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (new_fontset_from_font_name): Use the specified font
 -      for all characters in the new fontset.
 -
 -      * macterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
 -      OBJECT args.
 -
 -      * xdisp.c (x_produce_glyphs): Call FACE_FOR_CHAR with POS and
 -      OBJECT args for composition too.
 -
 -      * w32term.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
 -      OBJECT args.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * dispextern.h (FACE_FOR_CHAR): New args POS and OBJECT.
 -
 -      * fontset.c (reorder_font_vector): Adjust for the change of
 -      FONT_DEF format.
 -      (fontset_face): New arg id.  Change caller.
 -      (face_for_char): New args pos and object.
 -      (make_fontset_for_ascii_face): Adjust for the change of FONT_DEF format.
 -      (fs_query_fontset): Check NAME by Fassoc too.
 -      (Fset_fontset_font): Allow non-XLFD font name.
 -      (Ffontset_info): Adjust for the change of FONT_DEF format.
 -
 -      * fontset.h (face_for_char): Adjust prototype.
 -
 -      * xdisp.c (face_before_or_after_it_pos, get_next_display_element)
 -      (append_space, extend_face_to_end_of_line)
 -      (get_char_face_and_encoding, BUILD_COMPOSITE_GLYPH_STRING)
 -      (x_produce_glyphs): Call FACE_FOR_CHAR with POS and OBJECT args.
 -
 -      * xfaces.c (compute_char_face): Call FACE_FOR_CHAR with
 -      POS and OBJECT args.
 -
 -      * xterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with
 -      POS and OBJECT args.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32select.c (Fw32_set_clipboard_data): Avoid potential realloc
 -      of GlobalAlloc'ed memory.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * ccl.c (Fccl_execute_on_string): Fix the condition of loop.
 -
 -      * charset.h (charset_table_used): Delete extern.
 -
 -      * charset.c (charset_table_used): Make it static.
 -      (map_charset_chars): Fix args to c_function with.
 -
 -      * chartab.c (map_sub_char_table_for_charset): Fix args to
 -      c_function with.
 -
 -      * coding.h (enum coding_result_code): Delete
 -      CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
 -
 -      * coding.c (Qinsufficient_source, Qinconsistent_eol)
 -      (Qinvalid_source, Qinterrupted, Qinsufficient_memory): New variables.
 -      (Vlast_code_conversion_error): New variables.
 -      (syms_of_coding): DEFSYM or DEFVAR_LISP them.
 -      (ONE_MORE_BYTE): Record error if any instead of signaling an
 -      error.  If non-ASCII multibyte char is found, return the negative
 -      value of the code.  All callers changed to check it.
 -      (ONE_MORE_BYTE_NO_CHECK): Likewise.
 -      (record_conversion_result): New function.  Change all codes setting
 -      coding->result to call this function.
 -      (detect_coding_utf_8, decode_coding_utf_8)
 -      (detect_coding_emacs_mule, detect_coding_sji, detect_coding_big5):
 -      Don't use the local variable incomplete.
 -      (emacs_mule_char): Change the second arg to `const'.
 -      (decode_coding): Fix of flushing out unprocessed data.
 -      (make_conversion_work_buffer): Fix making of a work buffer.
 -      (decode_coding_object): Return coding->dst_object.
 -
 -      * fontset.c (set_fontset_font): Fix args.
 -
 -      * lisp.h (CHARACTERBITS): Define as 22.
 -
 -      * process.c (send_process): Be sure to set coding->src_multibyte.
 -
 -      * xdisp.c (handle_auto_composed_prop): Fix setting of limit.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_auto_composed_prop): Give limit to
 -      Fnext_single_char_property_change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (syms_of_composite): Don't make the composition hash
 -      table weak.
 -
 -      * fontset.c (Fset_fontset_font): Fix docstring.
 -
 -      * lisp.h (detect_coding_system): Adjust prototype.
 -
 -      * fileio.c (kill_workbuf_unwind): Delete this function.
 -      (Finsert_file_contents): Adjust the call of detect_coding_system.
 -      Get conversion_buffer by code_conversion_save.  Use the macro
 -      CODING_MAY_REQUIRE_DECODING.  After decoding, update
 -      coding_system.
 -
 -      * coding.h (make_conversion_work_buffer): Delete extern.
 -      (code_conversion_save): Extern it.
 -
 -      * coding.c (enum iso_code_class_type): Delete ISO_carriage_return.
 -      (CODING_GET_INFO): Delete argument eol_type.  Change callers.
 -      (decode_coding_utf_8): Don't do eol converion.
 -      (detect_coding_utf_16): Check coding->src_chars, not
 -      coding->src_bytes.  Add heuristics for those that have no signature.
 -      (decode_coding_emacs_mule, decode_coding_iso_2022)
 -      (decode_coding_sjis, decode_coding_big5, decode_coding_charset):
 -      Don't do eol converion.
 -      (adjust_coding_eol_type): Return a new coding system.
 -      (detect_coding): Don't detect eol.  Fix for utf-16 detection.
 -      (decode_eol): In case of CRLF->LF conversion, use del_range_2 on
 -      each change.
 -      (decode_coding): Pay attention to undo_list.  Do eol conversion for
 -      all types of coding-systems (if necessary).
 -      (Vcode_conversion_work_buf_list): Delete it.
 -      (Vcode_conversion_reused_workbuf): Rename from
 -      Vcode_conversion_reused_work_buf.
 -      (Vcode_conversion_workbuf_name): New variable.
 -      (reused_workbuf_in_use): New variable.
 -      (make_conversion_work_buffer): Delete the arg DEPTH.
 -      (code_conversion_restore): Change argument to cons.
 -      (code_conversion_save): Delete the argument BUFFER.  Change callers.
 -      (detect_coding_system): New argument src_chars.  Change callers.
 -      Fix for utf-16 detection.
 -      (init_coding_once): Don't use ISO_carriage_return.
 -      (syms_of_coding): Initialize Vcode_conversion_workbuf_name and
 -      reused_workbuf_in_use.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (store_in_keymap): Pay attention to the case that idx
 -      is a cons specifying a character range.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_auto_composed_prop): Fix the case of returning
 -      HANDLED_RECOMPUTE_PROPS.
 -
 -      * coding.c (Fdefine_coding_system_internal): Fix checking of
 -      ascii compatibility.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (find_charsets_in_text): Delete unused locale variable.
 -      (Fset_charset_priority): Update Vemacs_mule_charset_list too.
 -
 -      * coding.c (encode_coding_emacs_mule): Emit bytes with MSB.
 -      Resync charset_list to Vemacs_mule_charset_list.
 -
 -      * keymap.c (store_in_keymap): Pay attention to the case that idx
 -      is a cons specifying a character range.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (update_compositions): Bind inhibit-read-only, etc
 -      to t before calling remove-list-of-text-properties.
 -
 -      * print.c (print_object): Always print ASCII chars as is.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (Fdefine_key): Fix handling of Lucid style event type list.
 -
 -      * fns.c (Fmapconcat, Fmapcar, Fmapc): Signal an error if SEQUENCE
 -      is a char table.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (skip_chars): Be sure to alloca char_ranges when necessary.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (set_lface_from_font_name): Fix for the case that
 -      FONTNAME is not fontset name.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (base64_encode_1): Fix previous change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (set_fontset_font): New function.
 -      (Fset_fontset_font): If a font is specified for a charset, use
 -      map_charset_chars to store the font spec in a fontset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_face): Create a fallback fontset on demand.
 -      (make_fontset): Don't create a fallback fontset here.
 -      (free_face_fontset): Free a fallback fontset (if any) too.
 -      (n_auto_fontsets): Delete this variable.
 -      (auto_fontset_alist): New variable.
 -      (new_fontset_from_font_name): Check auto_fontset_alist.
 -      (dump_fontset) [FONTSET_DEBUG]: Fully re-written.
 -      (Ffontset_list_all) [FONTSET_DEBUG]: New function.
 -      (syms_of_fontset): Initialize and staticpro auto_fontset_alist.
 -      Defsubr Sfontset_list_all.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Fnew_fontset): Check NAME more rigidly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Fgoto_char): Fix docstring.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * insdel.c (insert_from_gap): Adjust intervals correctly.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (GLYPHSET, WCRANGE): Define if system headers don't.
 -      (pfnGetFontUnicodeRanges): New dynamically loaded function.
 -      (w32_initialize): Try to load it.
 -      (x_get_font_repertory): Use it if available.
 -      (w32_encode_char): Add shortcut for unicode output.
 -
 -      * w32fns.c (w32_load_system_font): Default charset to -1.
 -      (x_to_w32_charset): Match all fonts for unicode.
 -      (w32_to_x_charset): New parameter matching.  Don't return partial
 -      or wildcard charsets.
 -      (w32_to_all_x_charsets): Don't return partial or wildcard charsets.
 -      (w32_codepage_for_font): Return CP_UNICODE for unicode.
 -      (w32_to_x_font): Match charset to real charset.
 -      (enum_font_cb2): Always list unicode versions.
 -
 -      * makefile.w32-in (temacs): Increase EMHEAP.
 -
 -2008-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_encode_char): New charset parameter.
 -      font_info.encoding becomes encoding_type.
 -      (x_get_font_repertory): New function.  Warning: stub only!
 -      (x_new_font): Return quickly if font already set.
 -      (x_new_fontset): fontsetname parameter is Lisp_Object.
 -      Use new fs_query_fontset.  Try new_fontset_from_font_name.
 -      Use fontset_name for return value.
 -
 -      * w32term.h: Declare x_get_font_repertory.
 -
 -      * w32select.c (Fw32_set_clipboard_data): Use string_x_string_p in
 -      place of find_charset_in_text.  Use encode_coding_object in place
 -      of encode_coding.
 -      (Fw32_get_clipboard_data): Use decode_coding_c_string in place of
 -      decode_coding.
 -
 -      * w32fns.c (Fx_create_frame, x_create_tip_frame): Use new version
 -      of x_new_fontset.
 -      (w32_load_system_font): Initialize charset as unicode.
 -      font_info.encoding becomes encoding_type.
 -      (w32_to_x_font): Use decode_coding_c_string in place of decode_coding.
 -      (x_to_w32_font): Use encode_coding_object in place of encode_coding.
 -      (syms_of_w32fns): Set get_font_repertory_func.
 -
 -      * w32console.c: Include character.h.  Use terminal_encode_buffer
 -      from term.c.
 -      (write_glyphs): Use new version of encode_terminal_code.  Use
 -      encode_coding_object in place of encode_coding.
 -
 -      * w32bdf.c (w32_load_bdf_font): Clear font_info before filling.
 -      encoding becomes encoding_type.
 -
 -      * term.c (terminal_encode_buffer): Make externally visible.
 -
 -      * makefile.w32-in: Add character.h dependancies.
 -      (character.o, chartab.o): New targets.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents) [DOS_NT]: Use the macro
 -      CODING_ID_EOL_TYPE.
 -
 -2008-02-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * coding.c (produce_chars): Revert last change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (charset_unicode): Extern it.
 -
 -      * charset.c (string_xstring_p): Check by (C >= 0x100).
 -      (find_charsets_in_text): Change format of the arc CHARSETS.  New
 -      arg MULTIBYTE.
 -      (Ffind_charset_region, Ffind_charset_string): Adjust for the
 -      change of find_charsets_in_text.
 -      (Fsplit_char): Fix doc.  Never return unknown.
 -
 -      * chartab.c (char_table_translate): Use CHARACTERP, not INTEGERP.
 -
 -      * coding.c (Fdefine_coding_system_alias): Update
 -      Vcoding_system_list.
 -
 -      * fontset.c (load_font_get_repertory): Pay attention to the case
 -      that ENCODING of a font is specified by a char-table.
 -
 -      * xterm.c (x_get_font_repertory): Handle the case that the
 -      encoding of font is other than Unicode.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c (encode_terminal_code): Don't handle glyph-table.  Check
 -      if a character is encodable by the terminal coding system.  If
 -      not, produces proper number of `?'s.  Update
 -      terminal_encode_buffer and terminal_encode_buf_size if necessary.
 -      (produce_glyphs): Check by CHAR_BYTE8_P, not SINGLE_BYTE_CHAR_P.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c (terminal_encode_buffer, terminal_encode_buf_size): New
 -      variables.
 -      (encode_terminal_code): Change argument.  Encode multiple
 -      characters at once.  Store the result of encoding in
 -      terminal_encode_buffer.
 -      (write_glyphs, insert_glyphs): Adjust for the change of
 -      encode_terminal_code.
 -      (term_init): Initialize terminal_encode_buffer and
 -      terminal_encode_buf_size.
 -
 -      * coding.c (consume_chars): If coding->src_object is nil, don't
 -      check annotation.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (char_string): Use ASCII_CHAR_P instead of
 -      SINGLE_BYTE_CHAR_P.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_auto_composed_prop): Check if the last
 -      characters of auto-composed region is newly composed with the
 -      following characters.
 -      (handle_composition_prop): Fix checking of point being inside
 -      composition.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (concat): Don't change multibyteness of the result by
 -      concatenating an 8-bit character.
 -
 -      * data.c (Faset): Check newelt by CHECK_CHARACTER.  Don't change
 -      multibyteness of the result when newelt is an 8-bit character.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xmenu.c (find_and_call_menu_selection): Make menu_bar_items_used
 -      EMACS_INT.
 -
 -      * xfns.c (DefaultDepthOfScreen, x_encode_text): Remove unused vars.
 -
 -      * xfaces.c (face_numeric_value): Declare dim size_t.
 -      (Finternal_lisp_face_equal_p): Remove unused f.
 -
 -      * xdisp.c (BUILD_CHAR_GLYPH_STRINGS, display_and_set_cursor)
 -      (MATRIX_ROW): Remove unused vars.
 -      (draw_glyphs, x_insert_glyphs, fast_find_position)
 -      (fast_find_position, fast_find_string_pos): Use EMACS_INT for
 -      byte/char counts.
 -
 -      * regex.c (regex_compile): Remove unused var.
 -
 -      * minibuf.c (Fminibuffer_complete_word): Remove unused var.
 -
 -      * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
 -      (Faccessible_keymaps, where_is_internal): Remove unused vars.
 -
 -      * keyboard.c (cancel_hourglass_unwind): Return Qnil.
 -
 -      * frame.c (frame_name_fnn_p): Make len EMACS_INT.
 -
 -      * fileio.c (Fwrite_region): Remove unused var.
 -
 -      * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
 -      (adjust_frame_glyphs_for_window_redisplay): Remove unused ch_dim.
 -
 -      * composite.c (Fremove_list_of_text_properties): Declare.
 -
 -      * coding.c (inhibit_pre_post_conversion): Remove (unused).
 -      (alloc_destination, produce_chars): Use EMACS_INT for byte/char counts.
 -      (coding_inherit_eol_type): Remove unused attrs.
 -      (detect_coding): Cast arg of detect_eol.
 -
 -      * charset.c (syms_of_charset): Remove unused var p.
 -      (find_charsets_in_text, Ffind_charset_region): Use EMACS_INT for
 -      byte/char counts.
 -
 -      * casetab.c (set_case_table): Remove unused var.
 -
 -      * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
 -      unused vars.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (x_bitmap_mask): Declare.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (x_term_init): Fix type error.
 -
 -      * lisp.h: Add Funibyte_char_to_multibyte.
 -
 -      * coding.c (Fread_coding_system): Fix arg of XSETSTRING.
 -      (Fset_coding_system_priority): Doc fix.
 -
 -      * ccl.c (ccl_driver): Fix arg of CHARACTERP.
 -
 -      * indent.c (check_composition): Make start and end EMACS_INT.
 -
 -      * character.c (lisp_string_width): Make ignore and end EMACS_INT.
 -
 -      * xdisp.c (handle_composition_prop, check_point_in_composition):
 -      Make buffer positions EMACS_INT.
 -
 -      * composite.c (find_composition, run_composition_function)
 -      (update_compositions, Ffind_composition_internal): Make buffer
 -      positions EMACS_INT.
 -
 -      * composite.h (find_composition, update_compositions): Make
 -      position args EMACS_INT.
 -
 -      * keyboard.c (adjust_point_for_property): Make beg and end EMACS_INT.
 -
 -      * intervals.c (get_property_and_range):
 -      * intervals.h (get_property_and_range): Make start and end EMACS_INT.
 -
 -      * unexalpha.c: Don't include varargs.h.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.h (ENCODE_UTF_8): New.
 -
 -      * Makefile.in (gtkutil.o): Depend on coding.h.
 -
 -      * coding.c (Fset_coding_system_priority): Doc fix.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): Call setup_coding_system in
 -      the case of auto saving.
 -
 -2008-02-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * chartab.c (map_char_table, map_char_table_for_charset): Protect
 -      `range' from GC.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_sjis): Check bytes more rigidly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (choose_write_coding_system): Return a decided coding system.
 -      (Fwrite_region): Set Vlast_coding_system_used to the return value
 -      of choose_write_coding_system.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fset_charset_priority): Pay attention to duplicated
 -      arguments.
 -
 -      * coding.c (QCcategory): New variable.
 -      (syms_of_coding): Defsym it.  Set all elements of
 -      Vcoding_category_table and their symbol values.
 -      (Fset_coding_system_priority): Doc fix.  Update symbol qvalues of
 -      coding-category-XXX, and coding-category-list.
 -      (Fdefine_coding_system_internal): Add category in the plist.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * callproc.c (Fcall_process): Handle carryover correctly.
 -
 -      * coding.c (decode_coding_iso_2022): Fix handling of invalid bytes.
 -      (raw_text_coding_system): Check NILP (coding_system).
 -      (coding_inherit_eol_type): Check NILP (coding_system) and
 -      NILP (parent).
 -      (consume_chars): Fix for the case of raw-text.
 -
 -      * process.c (read_process_output): Handle carryover correctly.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * regex.c (re_search_2): Fix last change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * regex.c (GET_CHAR_BEFORE_2): Check multibyte, not
 -      target_multibyte.  Even in a unibyte case, return a converted
 -      multibyte char.
 -      (GET_CHAR_AFTER): New macro.
 -      (PATFETCH): Translate via multibyte char.
 -      (HANDLE_UNIBYTE_RANGE): Delete this macro.
 -      (SETUP_MULTIBYTE_RANGE): New macro.
 -      (regex_compile): Setup compiled code so that its multibyteness
 -      matches that of a target.  Fix the handling of "[X-YZ]" using
 -      SETUP_MULTIBYTE_RANGE.
 -      (analyse_first) <charset>: For filling fastmap for all multibyte
 -      characters, don't check by BASE_LEADING_CODE_P.
 -      (re_search_2): Don't check RE_TARGET_MULTIBYTE_P (bufp).  It is
 -      the same as RE_MULTIBYTE_P (bufp) now.
 -      (mutually_exclusive_p): Check by (! multibyte || IS_REAL_ASCII (c)).
 -      (TARGET_CHAR_AND_LENGTH): Delete this macro.
 -      (TRANSLATE_VIA_MULTIBYTE): New macro.
 -      (re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
 -      It is the same as RE_MULTIBYTE_P (bufp) now.
 -      <exactn>: Translate via multibyte.
 -      <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH.  Don't
 -      translate it.
 -      <charset, charset_not>: Fetch a character by
 -      RE_STRING_CHAR_AND_LENGTH.  Translate via multibyte.
 -      <duplicate>: Call bcmp_translate with the last arg `multibyte'.
 -      <wordbound, notwordbound, wordbeg, wordend, syntaxspec,
 -      notsyntaxspec, categoryspec, notcategoryspec> Fetch a character
 -      by GET_CHAR_AFTER.
 -      (bcmp_translate): Likewise.
 -
 -      * search.c (compile_pattern): Check the member target_multibyte,
 -      not the member multibyte of buf.
 -
 -      * lread.c (read1): While reading a string, set force_singlebyte
 -      and force_multibyte correctly.
 -
 -      * charset.c (Fset_unibyte_charset, init_charset_once): Fix setting
 -      up of unibyte_to_multibyte_table.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (setup_coding_system): If coding has
 -      post-read-conversion or pre-write-conversion, set
 -      CODING_REQUIRE_DECODING_MASK and CODING_REQUIRE_ENCODING_MASK
 -      respectively.
 -      (decode_coding_gap): Run post-read-conversion if any.
 -
 -      * fileio.c (Finsert_file_contents): Even if we read into a
 -      unibyte buffer, check if we must decode the result or not.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (make_conversion_work_buffer): Change the work buffer
 -      name to the same one as that of Emacs 21.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.h (make_conversion_work_buffer): Adjust prototype.
 -      (code_conversion_restore): Don't extern it.
 -
 -      * coding.c (detected_mask): Delete unused variable.
 -      (decode_coding_iso_2022): Pay attention to the byte sequence of
 -      CTEXT extended segment, and retain those bytes as is.
 -      (decode_coding_ccl): Delete unused variable `valids'.
 -      (setup_coding_system): Delete unused variable `category'.
 -      (consume_chars): Delete unused variable `category'.  Make it work
 -      for non-multibyte case.
 -      (make_conversion_work_buffer): Change argument.
 -      (saved_coding): Delete unused variable.
 -      (code_conversion_restore): Don't check saved_coding->destination.
 -      (code_conversion_save): New function.
 -      (decode_coding_gap, encode_coding_gap): Call code_conversion_save
 -      instead of record_unwind_protect.
 -      (decode_coding_object, encode_coding_object): Likewise.  Recover PT.
 -      (detect_coding_system): Delete unused variable `mask'.
 -      (Fdefine_coding_system_internal): Delete unused variable id.
 -
 -      * fileio.c (kill_workbuf_unwind): New function.
 -      (Finsert_file_contents): On replacing, call
 -      make_conversion_work_buffer with correct args, and call
 -      record_unwind_protect with the first arg kill_workbuf_unwind.
 -
 -      * lisp.h (Fgenerate_new_buffer_name): EXFUN it.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (BASE_FONTSET_P): Check FONTSET_BASE, not FONTSET_NAME.
 -      (fontset_add): Fix for the case that TO is less than TO1.
 -      (Ffontset_info): Don't use fallback fontset on checking the
 -      default fontset.
 -      (dump_fontset): New function for debugging.
 -
 -      * coding.c (Fdefine_coding_system_internal): Fix for the case that
 -      coding_type is Qcharset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * chartab.c (map_sub_char_table): New argument DEFAULT_VAL.
 -      (map_char_table): Don't inherit the value from the parent on
 -      initializing VAL.  Adjust for the above change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Qsignature, Qendian): Delete these variables.
 -      (syms_of_coding): Don't initialize them.
 -      (CATEGORY_MASK_UTF_16_AUTO): New macro.
 -      (detect_coding_utf_16): Add CATEGORY_MASK_UTF_16_AUTO in
 -      detect_info->found.
 -      (decode_coding_utf_16): Don't detect BOM here.
 -      (encode_coding_utf_16): Produce BOM if CODING_UTF_16_BOM (coding)
 -      is NOT utf_16_without_bom.
 -      (setup_coding_system): For a coding system of type utf-16, check
 -      if the attribute :endian is Qbig or not (not nil or not), and set
 -      CODING_REQUIRE_DETECTION_MASK if BOM detection is required.
 -      (detect_coding): If coding type is utf-16 and BOM detection is
 -      required, detect it.
 -      (Fdefine_coding_system_internal): For a coding system of type
 -      utf-16, check if the attribute :endian is Qbig or not (not nil or not).
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_set_source): Fix for the case that the current
 -      buffer is different from coding->src_object.
 -      (decode_coding_object): Don't use the conversion work buffer if
 -      DST_OBJECT is a buffer.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * lread.c (read_emacs_mule_char) [len==2]: Index
 -      emacs_mule_charset correctly.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c (Qbig5, Vbig5_coding_system, CATEGORY_MASK_BIG5)
 -      (detect_coding_big5, decode_coding_big5, encode_coding_big5)
 -      (Fdecode_big5_char, Fencode_big5_char): Delete.  (Big5 no longer
 -      treated specially.)
 -      (setup_coding_system, coding_category, CATEGORY_MASK_ANY)
 -      (detected_mask): Remove Big5 bits.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      The following changes are to make the font rescaling facility
 -      compatible with Emacs 21.
 -
 -      * xfaces.c (Vface_font_rescale_alist): Rename from
 -      Vface_resizing_fonts.
 -      (struct font_name): Rename member resizing_ratio to rescale_ratio.
 -      (font_rescale_ratio): Rename from font_resizing_ratio.
 -      (split_font_name): Set font->rescale_ratio.
 -      (better_font_p): Pay attention to font->rescale_ratio.
 -      (build_scalable_font_name): Likewise.  Change RESX, and RESY
 -      fields.
 -      (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp variable.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Qutf_16_be_nosig, Qutf_16_be, Qutf_16_le_nosig)
 -      (Qutf_16_le): Remove these variables.
 -      (syms_of_coding): Don't DEFSYM them.
 -      (decode_coding_utf_16): Fix handling of BOM.
 -      (encode_coding_utf_16): Fix handling of BOM.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): On replacing, before decoding
 -      the file into the work buffer, set point of the work buffer to the end.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c (Fcheck_coding_systems_region): Fix type errors.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
 -      and fix C types.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (SKIP_GLYPHS): New macro.
 -      (set_cursor_from_row): Pay attention to string display properties.
 -
 -      * category.c (copy_category_entry): Fix for the case that RANGE
 -      is an integer.
 -
 -      * xterm.c (x_encode_char): Call ccl_driver with the last arg Qnil.
 -
 -      * w32term.c (w32_encode_char): Call ccl_driver with the last arg Qnil.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fcharset_id_internal): New function.
 -      (syms_of_charset): Defsubr it.
 -
 -      * coding.c (decode_coding_ccl, encode_coding_ccl): Call ccl_driver
 -      with the last arg charset_list acquired from coding.
 -      (Fdefine_coding_system_internal): For ccl-based coding system, fix
 -      the attribute coding_attr_ccl_valids.
 -
 -      * coding.h (enum define_coding_ccl_arg_index): Set the first
 -      member coding_arg_ccl_decoder to coding_arg_max.
 -
 -      * ccl.h (ccl_driver): Adjust prototype.
 -
 -      * ccl.c (CCL_DECODE_CHAR, CCL_ENCODE_CHAR): New macros.
 -      (ccl_driver): New arg CHARSET_LIST.  Use the above macros instead
 -      of DECODE_CHAR, ENCODE_CHAR, CHAR_CHARSET.
 -      (Fccl_execute, Fccl_execute_on_string): Call ccl_driver with the
 -      last arg Qnil.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (ENCODE_CHAR): If the method is SUBSET or SUPERSET,
 -      call encode_char.
 -
 -      * charset.c (encode_char): Fix handling of methods SUBSET and SUPERSET.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * composite.c (syms_of_composite): Make composition_hash_table weak.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * dispextern.h (check_face_attributes, generate_ascii_font_name)
 -      (font_name_registry): Don't extern them.
 -      (split_font_name_into_vector, build_font_name_from_vector): Extern them.
 -
 -      * fontset.h (Qfontset): Don't extern it.
 -      (new_fontset_from_font_name): Extern it.
 -
 -      * fontset.c: Give 8 extra slots to fontset objects.
 -      (Qfontset_info): New variable.
 -      (syms_of_fontset): Defsym it.
 -      (FONTSET_FALLBACK): New macro.
 -      (fontset_face): Try also the default fontset.
 -      (make_fontset): Realize a fallback fontset from the default fontset.
 -      (generate_ascii_font_name): Move from xfaces.c.  Rewritten by
 -      using split_font_name_into_vector and build_font_name_from_vector.
 -      (Fset_fontset_font): Access the elements of font_spec by enum
 -      FONT_SPEC_INDEX.  If font_spec is a string, extract the registry
 -      name by using split_font_name_into_vector.
 -      (Fnew_fontset): If no ASCII font is specified in FONTLIST,
 -      generate a proper font name from the fontset name.  Update
 -      Vfontset_alias_alist.
 -      (n_auto_fontsets): New variable.
 -      (new_fontset_from_font_name): New function.
 -      (Ffont_info): Store the information about fonts generated from the
 -      default fontset in the first extra slot of the returned char-table.
 -
 -      * xfaces.c (generate_ascii_font_name): Move to fontset.c.
 -      (font_name_registry): Delete function.
 -      (split_font_name_into_vector): New function.
 -      (build_font_name_from_vector): New function.
 -      (font_list): The argument REGISTRY is now a list of registry names.
 -      (choose_face_font): If we are choosing an ASCII font, and ATTRS
 -      specifies an explicit font name, return the name as is.  Make a
 -      list of registy names.
 -
 -      * xfns.c (x_set_font, x_create_tip_frame): Adjust for the change
 -      of x_new_fontset.
 -      (Fx_create_frame): Don't call x_new_fontset here.  Just use
 -      x_list_fonts to check the existence of fonts.
 -
 -      * xterm.h (x_new_fontset): Adjust prototype.
 -
 -      * xterm.c (x_new_fontset): Change the arg FONTSETNAME to Lisp
 -      string.  Use new_fontset_from_font_name to create a fontset from a
 -      font name.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (Vfind_word_boundary_function_table): New name for
 -      Vnext_word_boundary_function_table.
 -      (find-word-boundary-function-table): New name for
 -      next-word-boundary-function-table.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in: Fix some dependencies.
 -
 -      * keymap.c (Fapropos_internal): Don't gcpro apropos_predicate but
 -      set it to nil before returning.
 -
 -      * composite.c (update_compositions): Fix type error.
 -
 -      * syntax.c (skip_chars, skip_syntaxes): Fix type errors.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_new_font): Optimize for the case that the font is
 -      already set for the frame.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * chartab.c (char_table_ascii): Check if the char table contents
 -      is sub-char-table or not.
 -      (char_table_set, char_table_set_range): Fix argument to
 -      char_table_ascii.
 -
 -      * coding.c (CATEGORY_MASK_RAW_TEXT): New macro.
 -      (detect_coding_utf_8, detect_coding_utf_16)
 -      (detect_coding_emacs_mule, detect_coding_iso_2022)
 -      (detect_coding_sjis, detect_coding_big5)
 -      (detect_coding_ccl, detect_coding_charset): Change argument MASK
 -      to DETECT_INFO.  Update DETECT_INFO and return 1 if the byte
 -      sequence is valid in this coding system.  Change callers.
 -      (MAX_ANNOTATION_LENGTH): New macro.
 -      (ADD_ANNOTATION_DATA): New macro.
 -      (ADD_COMPOSITION_DATA): Change argument.  Change callers.  Call
 -      ADD_ANNOTATION_DATA.  Change the format of annotation data.
 -      (ADD_CHARSET_DATA): New macro.
 -      (emacs_mule_char): New argument ID.  Change callers.
 -      (decode_coding_emacs_mule, decode_coding_iso_2022)
 -      (decode_coding_sjis, decode_coding_big5, decode_coding_charset):
 -      Produce charset annotation data in coding->charbuf.
 -      (encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
 -      to charset annotation data in coding->charbuf.
 -      (setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
 -      coding->common_flags if the coding system is iso-2022 based and
 -      uses designation.
 -      (produce_composition): Adjust for the new annotation data format.
 -      (produce_charset): New function.
 -      (produce_annotation): Handle charset annotation.
 -      (handle_composition_annotation, handle_charset_annotation): New
 -      functions.
 -      (consume_chars): Handle charset annotation.  Utilize the above two
 -      functions.
 -      (encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
 -      buffer, get the deleted text as a string and set
 -      coding->src_object to that string.
 -      (detect_coding, detect_coding_system): Use the new struct
 -      coding_detection_info.
 -
 -      * coding.h (struct coding_detection_info): New structure.
 -      (struct coding_system): Adjust prototype of the member `detector'.
 -      (CODING_ANNOTATE_CHARSET_MASK): New macro.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * insdel.c (insert_from_gap): Fix argument to offset_intervals.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * keymap.c (apropos_predicate, apropos_accumulate): Declare static.
 -      (Fapropos_internal): Don't gcpro apropos_accumulate.  Set result
 -      to new local and nullify apropos_accumulate before returning.
 -      (syms_of_keymap): Staticpro and initialize apropos_accumulate.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fdefine_charset_internal): Setup charset.fast_map
 -      correctly.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * fns.c (Flanginfo): Call synchronize_system_time_locale.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      The following changes are to make character composition happen
 -      automatically on displaying.
 -
 -      * Makefile.in (lisp, shortlisp): Add composite.elc.
 -
 -      * composite.h (Qauto_composed, Vauto_composition_function)
 -      (Qauto_composition_function): Extern them.
 -
 -      * composite.c (Vcomposition_function_table)
 -      (Qcomposition_function_table): Delete variables.
 -      (Qauto_composed, Vauto_composition_function)
 -      (Qauto_composition_function): New variables.
 -      (run_composition_function): Don't call
 -      compose-chars-after-function.
 -      (update_compositions): Clear `auto-composed' text property.
 -      (compose_chars_in_text): Delete this function.
 -      (syms_of_composite): Staticpro Qauto_composed and
 -      Qauto_composition_function.  Declare Vauto_composition_function as
 -      a Lisp variable.
 -
 -      * dispextern.h (enum prop_idx): Add member AUTO_COMPOSED_PROP_IDX.
 -
 -      * xdisp.c (it_props): Add an entry for Qauto_composed.
 -      (handle_auto_composed_prop): New function.
 -
 -      * xselect.c (selection_data_to_lisp_data): Don't call
 -      compose_chars_in_text.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * keyboard.c (read_char): Modify checking around use of
 -      Vkeyboard_translate_table.
 -
 -      * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
 -      and fix C types.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_utf_8, decode_coding_emacs_mule)
 -      (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
 -      (decode_coding_charset, produce_chars): When eol_type is Qdos, handle
 -      the case that the last byte is '\r' correctly.
 -      (decode_coding): Flush out the unprocessed data correctly.
 -      (decode_coding_gap): Set CODING_MODE_LAST_BLOCK bit of coding->mode.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (XTread_socket): Fix changes for defined keysyms.
 -      Add XK_ISO... case.
 -      (xaw_scroll_callback): Revert last change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fset_charset_priority): Update Viso_2022_charset_list.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (Vface_resizing_fonts): New variable.
 -      (struct font_name): New member `resizing_ratio'.
 -      (font_resizing_ratio): New function.
 -      (split_font_name): Set font->resizing_ratio.
 -      (better_font_p): Pay attention to font->resizing_ratio.
 -      (build_scalable_font_name): Likewise.  Don't change POINT_SIZE,
 -      RESX, and RESY fields.
 -      (try_alternative_families): Try scalable fonts if
 -      Vscalable_fonts_allowed is not Qt.
 -      (syms_of_xfaces): Declare Vface_resizing_fonts as a Lisp variable.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (xaw_scroll_callback): Cast correctly.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * keyboard.c (lispy_accent_codes, lispy_accent_keys): Extend.
 -      (lispy_kana_keys): Comment out.
 -      (make_lispy_event) [XK_kana_A]: Comment out.
 -
 -      * xterm.c (xaw_scroll_callback): Cast call_data.
 -      (XTread_socket): Deal with ASCII keysyms.
 -      (syms_of_xterm) <Vx_keysym_table>: Fix args of make_hash_table.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (Vx_keysym_table): New.
 -      (syms_of_xterm): Initialize it.
 -      (XTread_socket): Use it.
 -      From head: Eliminate incorrect optimization that tried to avoid
 -      decoding the output of X*LookupString.
 -      (x_get_font_repertory): Delete charset declaration.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_charset): If only ASCII bytes are found,
 -      return 0.
 -      (Fdefine_coding_system_internal): Setup
 -      CODING_ATTR_ASCII_COMPAT (attrs) correctly.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c (Fcheck_coding_system): Doc fix.
 -
 -      * editfns.c (Finsert_byte): Return a proper value.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding): Fix args to translate_chars.  Pay
 -      attention to Vstandard_translation_table_for_decode.
 -      (encode_coding): Fix args to translate_chars.  Pay attention to
 -      Vstandard_translation_table_for_encode.
 -
 -      * data.c (Faset): Check NEWELT by ASCII_CHAR_P, not by
 -      SINGLE_BYTE_CHAR_P.
 -
 -      * editfns.c (general_insert_function): Check VAL by ASCII_CHAR_P,
 -      not by SINGLE_BYTE_CHAR_P.
 -
 -      * fns.c (concat): Check CH by ASCII_CHAR_P, not by
 -      SINGLE_BYTE_CHAR_P.
 -
 -      * insdel.c (copy_text): Check C by ASCII_CHAR_P, not by
 -      SINGLE_BYTE_CHAR_P.
 -
 -      * keymap.c (Ftext_char_description): Check C by ASCII_CHAR_P, not
 -      by SINGLE_BYTE_CHAR_P.
 -
 -      * search.c (Freplace_match): Check C by ASCII_CHAR_P, not by
 -      SINGLE_BYTE_CHAR_P.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * fns.c (Fstring_as_multibyte, Fstring_to_multibyte): Doc fix.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * fns.c (Flanginfo): Fix typo.
 -
 -      * unexelf.c (unexec): Make last change conditional on Irix 6.5.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (detect_coding_utf_8, detect_coding_utf_16)
 -      (detect_coding_emacs_mule, detect_coding_iso_2022)
 -      (detect_coding_sjis, detect_coding_big5, detect_coding_ccl): Check
 -      incomplete byte sequence.  Don't update *mask when correctly detected.
 -      (decode_coding_sjis): Fix decoding of katakana-jisx0201.
 -      (detect_eol): Delete the argument CODING, and add the argument CATEGORY.
 -      (detect_coding, detect_coding_system): Adjust for the changes above.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (char_string): Rename from
 -      char_string_with_unification.  Pay attention to CHAR_MODIFIER_MASK.
 -      (string_char): Rename from string_char.
 -
 -      * character.h (CHAR_STRING, CHAR_STRING_ADVANCE): Call char_string
 -      if C is greater than MAX_3_BYTE_CHAR.
 -      (STRING_CHAR, STRING_CHAR_AND_LENGTH, STRING_CHAR_ADVANCE): Call
 -      string_char instead of string_char_with_unification.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c (decode_coding_utf_8): Treat surrogates as invalid.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (push_key_description): Pay attention to force_multibyte.
 -
 -      * regex.c (re_search_2): Fix for the case of unibyte buffer.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * charset.c (define_charset_internal): Rename `supprementary'.
 -
 -      * Makefile.in (lisp, shortlisp): Remove latin-N.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xfns.c (x_window, x_window): Use use_xim.
 -
 -      * xterm.c (use_xim): Initialize.
 -      (xim_open_dpy, xim_initialize, xim_close_dpy): Use use_xim.
 -      (x_term_init): Maybe set use_xim.
 -
 -      * xterm.h (use_xim) [HAVE_X_I18N]: Declare.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (search_buffer): Fix case-fold-search of multibyte
 -      characters.
 -      (boyer_moore): Rename the last argument to char_high_bits.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (display_string): Fix for the case of zero width glyph.
 -
 -      * xfns.c (x_set_font): Change the error message of the case that
 -      x_new_fontset returns Qt.
 -
 -      * xfaces.c (set_lface_from_font_name): Reject the default fontset.
 -      (Finternal_set_lisp_face_attribute): Use signal_error for the
 -      error of invalid fontset.
 -
 -      * xterm.c (x_new_fontset): If FONTSETNAME specifies the default
 -      fontset, return Qt.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * unexelf.c (unexec): Make .got handling not SGI-specific.
 -
 -      * syntax.c (syms_of_syntax) <multibyte-syntax-as-symbol>: Doc fix.
 -
 -      * regex.c: Use `ifdef HAVE_ALLOCA_H', not `if HAVE_ALLOCA_H'.
 -
 -      * keyboard.c (read_key_sequence): Fix type error.
 -
 -      * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte): Fix
 -      type error.
 -
 -      * fontset.c (fontset_add): Return Lisp_Object.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * charset.h (charset_ordered_list_tick): Declare extern.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      The following changes (and some of 2008-02-01 changes of mine) are
 -      for handling syntax, category, and case conversion for unibyte
 -      characters by converting them to multibyte on the fly.  With these
 -      changes, we don't have to setup syntax and case tables for unibyte
 -      characters in each language environment.
 -
 -      * abbrev.c (Fexpand_abbrev): Convert a unibyte character to
 -      multibyte if necessary.
 -
 -      * bytecode.c (Fbyte_code): Likewise.
 -
 -      * character.h (LEADING_CODE_LATIN_1_MIN)
 -      (LEADING_CODE_LATIN_1_MAX): New macros.
 -      (unibyte_to_multibyte_table): Extern it.
 -      (unibyte_char_to_multibyte): New macro.
 -      (MAKE_CHAR_MULTIBYTE): Use unibyte_to_multibyte_table.
 -      (CHAR_LEADING_CODE): New macro.
 -      (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): New macro.
 -
 -      * character.c (unibyte_to_multibyte_table): New variable.
 -      (unibyte_char_to_multibyte): Move to character.h and define as macro.
 -      (multibyte_char_to_unibyte): If C is an eight-bit character,
 -      convert it to the corresponding byte value.
 -
 -      * charset.c (Fset_unibyte_charset): If the dimension of CHARSET is
 -      not 1, signals an error.  Update the elements of
 -      unibyte_to_multibyte_table.
 -      (init_charset_once): Initialize unibyte_to_multibyte_table.
 -      (syms_of_charset): Define the charset `iso-8859-1'.
 -
 -      * cmds.c (internal_self_insert): In a multibyte buffer, insert C
 -      as is without converting it to unibyte.  In a unibyte buffer,
 -      convert C to multibyte before checking the syntax.
 -
 -      * lisp.h (unibyte_char_to_multibyte): Delete extern.
 -
 -      * minibuf.c (Fminibuffer_complete_word): Use the macro
 -      FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
 -
 -      * regex.h (struct re_pattern_buffer): New member target_multibyte.
 -
 -      * regex.c (RE_TARGET_MULTIBYTE_P): New macro.
 -      (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte.  If
 -      that is zero, convert an eight-bit char to multibyte.
 -      (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
 -      non-emacs case.
 -      (PATFETCH): Convert an eight-bit char to multibyte.
 -      (HANDLE_UNIBYTE_RANGE): New macro.
 -      (regex_compile): Setup the compiled pattern for multibyte chars
 -      even if the given regex string is unibyte.  Use PATFETCH_RAW
 -      instead of PATFETCH in many places.  To handle `charset'
 -      specification of unibyte, call HANDLE_UNIBYTE_RANGE.  Use bitmap
 -      only for ASCII chars.
 -      (analyse_first) <exactn>: Simplify because the compiled pattern
 -      is multibyte.
 -      <charset_not>: Setup fastmap from bitmap only for ASCII chars.
 -      <charset>: Use CHAR_LEADING_CODE to get leading codes.
 -      <categoryspec>: If multibyte, setup fastmap only for ASCII chars here.
 -      (re_compile_fastmap) [emacs]: Call analyse_first with the arg
 -      multibyte always 1.
 -      (re_search_2): In emacs, set the locale variable multibyte to 1,
 -      otherwise to 0.  New local variable target_multibyte.  Check it
 -      to decide the multibyteness of STR1 and STR2.  If
 -      target_multibyte is zero, convert unibyte chars to multibyte
 -      before translating and checking fastmap.
 -      (TARGET_CHAR_AND_LENGTH): New macro.
 -      (re_match_2_internal): In emacs, set the locale variable multibyte
 -      to 1, otherwise to 0.  New local variable target_multibyte.  Check
 -      it to decide the multibyteness of STR1 and STR2.  Use
 -      TARGET_CHAR_AND_LENGTH to fetch a character from D.
 -      <charset, charset_not>: If multibyte is nonzero, check fastmap
 -      only for ASCII chars.  Call bcmp_translate with
 -      target_multibyte, not with multibyte.
 -      <begline>: Declare the local variable C as `unsigned'.
 -      (bcmp_translate): Change the last arg name to target_multibyte.
 -
 -      * search.c (compile_pattern_1): Don't adjust the multibyteness of
 -      the regexp pattern and the matching target.  Set cp->buf.multibyte
 -      to the multibyteness of the regexp pattern.  Set
 -      cp->but.target_multibyte to the multibyteness of the matching target.
 -      (wordify): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE instead of
 -      FETCH_STRING_CHAR_ADVANCE.
 -      (Freplace_match): Convert unibyte chars to multibyte.
 -
 -      * syntax.c (char_quoted, back_comment, scan_words)
 -      (Fforward_comment, scan_lists, Fbackward_prefix_chars)
 -      (scan_sexps_forward): Use FETCH_CHAR_AS_MULTIBYTE to convert
 -      unibyte chars to multibyte.
 -      (skip_chars): Delete the arg syntaxp, and move the code for
 -      handling syntaxes to skip_syntaxes.  Change callers.
 -      Fix the case that the multibyteness of STRING and the current
 -      buffer doesn't match.
 -      (skip_syntaxes): New function.
 -      (SYNTAX_WITH_MULTIBYTE_CHECK): Check C by ASCII_CHAR_P, not by
 -      SINGLE_BYTE_CHAR_P.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (QCfontset): New variable.
 -      (LFACE_FONTSET): New macro.
 -      (check_lface_attrs): Check also LFACE_FONTSET_INDEX.
 -      (set_lface_from_font_name): Setup LFACE_FONTSET (lface).
 -      (Finternal_set_lisp_face_attribute)
 -      (Finternal_get_lisp_face_attribute): Handle QCfontset.
 -      (lface_same_font_attributes_p): Fix checking of LFACE_FONT_INDEX,
 -      check also LFACE_FONTSET_INDEX.
 -      (face_fontset): Check attrs[LFACE_FONTSET_INDEX], not
 -      attrs[LFACE_FONT_INDEX].
 -      (syms_of_xfaces): Intern and staticpro QCfontset.
 -
 -      * dispextern.h (enum lface_attribute_index): New member
 -      LFACE_FONTSET_INDEX.
 -
 -      * fns.c (base64_encode_1): Handle eight-bit chars correctly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_set_destination): Fix coding->destination for
 -      the case converting a region.
 -      (encode_coding_utf_8): Encode eight-bit chars as single byte.
 -      (encode_coding_object): Fix coding->dst_pos and
 -      coding->dst_pos_byte for the case converting a region.
 -
 -      * insdel.c (insert_from_gap): Make it work even if PT != GTP.
 -
 -      * character.h (BYTE8_STRING): New macro.
 -
 -      * fns.c (base64_decode_1): Insert eight-bit chars correctly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (get_next_display_element): Don't display unibyte 8-bit
 -      characters by octal form.
 -
 -      * abbrev.c (Fexpand_abbrev): Fix for the multibyte case.
 -
 -      * buffer.h (_fetch_multibyte_char_len): Delete extern.
 -      (FETCH_MULTIBYTE_CHAR, BUF_FETCH_MULTIBYTE_CHAR): Don't use
 -      _fetch_multibyte_char_len.
 -      (FETCH_CHAR_AS_MULTIBYTE): New macro.
 -
 -      * casetab.c (set_canon, set_identity, shuffle): Simplify.
 -
 -      * casefiddle.c (casify_object): Simplify.  Handle the case that
 -      the case conversion change the byte length.
 -      (casify_region): Likewise.
 -
 -      * character.h (MAKE_CHAR_UNIBYTE, MAKE_CHAR_MULTIBYTE): New macros.
 -
 -      * character.c (_fetch_multibyte_char_len): Delete this variable.
 -      (syms_of_character): Setup Vprintable_chars.
 -
 -      * editfns.c (Fchar_equal): Fix for the unibyte case.
 -      (Finsert_byte): New function.
 -      (syms_of_editfns): Defsubr it.
 -
 -      * keyboard.c (read_key_sequence): Use ~CHAR_MODIFIER_MASK instead
 -      of direct code 0x3ffff.
 -
 -      * search.c (Freplace_match): Fix for the unibyte case.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * lread.c (safe_to_load_p): Fix the logic.
 -
 -      * syntax.c (scan_words): Don't treat characters belonging to
 -      different scripts as constituting a word.
 -
 -      * editfns.c (Fformat): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
 -
 -      * fontset.c (Fset_fontset_font): Treat `ascii' as charset, not script.
 -
 -      * emacs.c (main): In the case of --unibyte, instead of aborting on
 -      finding non-empty buffer, make it unibyte.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_new_fontset): Call `create-fontset-from-ascii-font'
 -      to create a fontset.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * character.c (Funibyte_char_to_multibyte): Doc fix.
 -
 -      * xfns.c [HAVE_STDLIB_H]: Fix last change.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_add): Make the type `int'.
 -      (fontset_id_valid_p): Define it if FONTSET_DEBUG is defined.
 -
 -      * character.c (unibyte_char_to_multibyte)
 -      (multibyte_char_to_unibyte, Funibyte_char_to_multibyte): Refer to
 -      charset_unibyte, not charset_primary.
 -
 -      * charset.h (charset_unibyte): Extern it instead of charset_primary.
 -
 -      * charset.c (charset_unibyte): Rename from charset_primary.
 -      (Funibyte_charset): Rename from Fprimary_charset.
 -      (Fset_unibyte_charset): Rename from Fset_primary_charset.
 -      (syms_of_charset): Adjust for the above changes.
 -
 -      * w32term.c (x_produce_glyphs): Use ASCII_CHAR_P, not
 -      SINGLE_BYTE_CHAR_P.  Fix the logic of handling non-ASCII char when
 -      it->multibyte_p is zero.
 -
 -      * lisp.h (nonascii_insert_offset, Vnonascii_translation_table):
 -      Delete extern.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Fdefine_coding_system_internal): Fix category setting
 -      for a coding system of type iso-2022.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.h (FS_LOAD_FONT): Call fs_load_font with the arg CHARSET -1.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (Vnext_word_boundary_function_table): New variable.
 -      (next-word-boundary-function-table): Declare it as a Lisp variable
 -      in syms_of_syntax.
 -      (scan_words): Call functions in Vnext_word_boundary_function_table
 -      if any.
 -
 -      * xterm.c (x_load_font): Initialize fontp->fontset to -1.
 -
 -      * fontset.c (fs_load_font): If fontp->charset is not negative,
 -      return fontp without setting its members.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xfns.c [HAVE_STDLIB_H]: Change logic (instead of fixing typo).
 -
 -      * m/sparc.h (HAVE_ALLOCA): Delete.
 -
 -      * s/irix6-5.h: Don't include strings.h.
 -      (bcopy, bzero, bcmp): Don't undef.
 -
 -      * s/irix6-0.h (bcopy, bzero, bcmp): Don't undef.
 -
 -      * s/usg5-4.h (NO_SIOCTL_H): Don't define.
 -      (TIOCSIGSEND): Don't test IRIX6.
 -      (bcopy, bzero, bcmp): Define conditionally.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * buffer.c (Qas, Qmake, Qto): New variables.
 -      (Fset_buffer_multibyte): New optional arg METHOD.  Change caller.
 -      (syms_of_buffer): Intern and staticpro Qas, Qmake, and Qto.
 -
 -      * callproc.c (Fcall_process): Don't call insert_1_both directly if
 -      we are inserting a process output into a multibyte buffer.
 -
 -      * character.h (CHAR_TO_BYTE8): If C is not eight-bit char, call
 -      multibyte_char_to_unibyte.
 -
 -      * character.c (Funibyte_char_to_multibyte): If C can't be decoded
 -      by the primary charset, make it eight-bit char.
 -      (Fmultibyte_char_to_unibyte): Call CHAR_TO_BYTE8.
 -
 -      * charset.c (charset_eight_bit, Qeight_bit_control): New variables.
 -      (charset_8_bit__control, charset_8_bit_graphic)
 -      (Qeight_bit_control, Qeight_bit_graphic): Delete these variables.
 -      (define_charset_internal): New function.
 -      (syms_of_charset): Call define_charset_internal for pre-defined
 -      charsets.
 -
 -      * charset.h (charset_8_bit): Extern it.
 -
 -      * coding.c (make_conversion_work_buffer): Adjust for the change
 -      of Fset_buffer_multibyte.
 -      (encode_coding_raw_text): Increment p0 in the loop.
 -
 -      * lisp.h (Fset_buffer_multibyte): Adjust prototype.
 -
 -      * xdisp.c (setup_echo_area_for_printing, set_message_1): Adjust
 -      for the change of Fset_buffer_multibyte.
 -
 -      * fns.c (Fstring_to_multibyte): New function.
 -      (syms_of_fns): Declare Fstring_to_multibyte as Lisp subroutine.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xfns.c (x_put_x_image): Declare args.
 -
 -      * xfaces.c (font_name_registry, choose_face_font): Delete unused vars.
 -      (try_font_list): Declare an arg.
 -
 -      * xdisp.c (message2_nolog, set_message): Declare an arg.
 -
 -      * terminfo.c (tparam): Declare an arg.  Use P_ to declare tparm.
 -
 -      * syntax.c (scan_sexps_forward): Declare an arg.
 -
 -      * scroll.c (calculate_scrolling, calculate_direct_scrolling):
 -      Declare an arg.
 -
 -      * lisp.h (Fnew_fontset): Declare.
 -
 -      * keymap.c (push_key_description): Call CHARACTERP correctly.
 -
 -      * fontset.c (fontset_add): Declare args.  Call make_number correctly.
 -      (face_for_char): Delete unused vars.
 -      (Fset_fontset_font): Doc fix.  Delete unused vars.
 -
 -      * doc.c (Fsubstitute_command_keys): Delete unused vars.
 -
 -      * composite.c (update_compositions): Declare arg.
 -
 -      * cm.c (calccost, cmgoto): Declare args.
 -
 -      * charset.c: Remove `emacs' conditional.  Doc fixes.
 -      (map_char_table_for_charset): Declare.
 -
 -      * character.c (syms_of_character) <translation-table-vector>: Doc fix.
 -
 -      * ccl.c: Remove `emacs' conditional.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      The following changes are to allow specifying multiple font
 -      patterns for a character range (specified by script or charset).
 -
 -      * Makefile.in (abbrev.o): Depend on syntax.h.
 -      (xfaces.o): Depend on charset.h.
 -
 -      * alloc.c (Fmake_string): Use ASCII_CHAR_P, not
 -      SINGLE_BYTE_CHAR_P.
 -
 -      * ccl.c (Fccl_execute_on_string): Add `const' to local variables.
 -
 -      * character.h (Vchar_script_table): Extern it.
 -
 -      * character.c (Vscript_alist): Delete.
 -      (Vchar_script_table, Qchar_script_table): New variable.
 -      (syms_of_character): Declare Vchar_script_table as a lisp variable
 -      and initialize it.
 -
 -      * chartab.c (Fmake_char_table): Doc fix.  If PURPOSE doesn't
 -      have property char-table-extra-slots, make no extra slot.
 -
 -      * dispextern.h (struct face): Delete member `charset'.
 -      (FACE_SUITABLE_FOR_CHAR_P, FACE_FOR): Use ASCII_CHAR_P, not
 -      SINGLE_BYTE_CHAR_P.
 -      (choose_face_font, lookup_non_ascii_face, font_name_registry):
 -      Add prototypes.
 -      (lookup_face, lookup_named_face, lookup_derived_face): Fix prototype.
 -      (generate_ascii_font_name): Rename from generate_ascii_font.
 -
 -      * fontset.h (get_font_repertory_func): New prototype.
 -      (make_fontset_for_ascii_face, fs_load_font): Fix prototypes.
 -      (FS_LOAD_FONT): Call fs_load_font with the 3rd arg charset_ascii.
 -
 -      * fontset.c (Qprepend, Qappend): New variables.
 -      (FONTSET_CHARSET_ALIST, FONTSET_FACE_ALIST): Delete.
 -      (FONTSET_NOFONT_FACE, FONTSET_REPERTORY): New macros.
 -      (FONTSET_REF): Optimize if FONTSET is Vdefault_fontset.
 -      (FONTSET_REF_AND_RANGE, FONTSET_ADD): New macros.
 -      (fontset_ref_and_range, fontset_add, reorder_font_vector)
 -      (load_font_get_repertory): New functions.
 -      (fontset_set): Delete.
 -      (fontset_face): New arg FACE.  Return face ID, not face.
 -      Complete re-write to handle new fontset structure.  Change caller.
 -      (free_face_fontset): Use ASET istead of AREF (X) = Y.
 -      (face_for_char): Don't call lookup_face.
 -      (make_fontset_for_ascii_face): New arg FACE.
 -      (fs_load_font): New arg CHARSET_ID.  Don't check
 -      Vfont_encoding_alist here.
 -      (find_font_encoding): New function.
 -      (list_fontsets): Use STRINGP, not ! NILP.
 -      (accumulate_script_ranges): New function.
 -      (Fset_fontset_font, Fnew_fontset, Ffontset_info): Completely
 -      re-written to handle new fontset structure.
 -      (Ffontset_font): Return a copy of element.
 -      (syms_of_fontset): Define symbols Qprepend and Qappend.  Fix
 -      docstring of font-encoding-alist.
 -
 -      * lisp.h (CHAR_TABLE_REF): Remove unnecessary check (IDX >= 0).
 -      (Fset_fotset_font): Fix arguments to 5.
 -
 -      * msdos.c (XMenuActivate): Adjust for the change of lookup_derived_face.
 -
 -      * xdisp.c (message_dolog, set_message_1, extend_face_to_end_of_line):
 -      Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
 -      (highlight_trailing_whitespace): Adjust for the change of
 -      lookup_named_face.
 -
 -      * xfaces.c: Include charset.h.
 -      (load_face_font): Delete argument C.  Change caller.
 -      (generate_ascii_font_name): Rename from generate_ascii_font.
 -      (font_name_registry): New function.
 -      (cache_face): Store ascii faces before non-ascii faces in buckets.
 -      (lookup_face): Delete arguments C and BASE_FACE.  Change caller.
 -      Lookup only ascii faces.
 -      (lookup_non_ascii_face): New function.
 -      (lookup_named_face): Delete argument C.  Change caller.
 -      (lookup_derived_face): Delete argument C.  Change caller.
 -      (try_font_list): New arg PATTERN.  Change caller.  If PATTERN is
 -      a string, just call font_list with it.
 -      (choose_face_font): Delete arguments FACE and C.  New arg
 -      FONT_SPEC.  Change caller.
 -      (realize_face, realize_x_face): Delete arguments C and BASE_FACE.
 -      Change caller.
 -      (realize_non_ascii_face): New function.
 -      (realize_x_face): Call load_face_font here.
 -      (realize_tty_face): Delete argument C.  Change caller.
 -      (compute_char_face): If CH is not ascii, call FACE_FOR_CHAR to
 -      get a face ID.
 -      (dump_realized_face): Don't print charset of FACE.
 -
 -      * xfns.c (x_set_font): Always call x_new_fontset and
 -      store_frame_parameter.
 -      (Fx_create_frame): Call x_new_fontset, not x_new_font.
 -      (syms_of_xfns): Set get_font_repertory_func to x_get_font_repertory.
 -
 -      * xterm.h (x_get_font_repertory): Extern it.
 -
 -      * xterm.c (x_produce_glyphs): Use ASCII_CHAR_P, not
 -      SINGLE_BYTE_CHAR_P.  Fix the logic of handling non-ASCII char when
 -      it->multibyte_p is zero.
 -      (XTread_socket): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
 -      (x_new_fontset): If FONTSETNAME doesn't match any existing
 -      fontsets, create a new one.
 -      (x_get_font_repertory): New function.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Ffind_coding_systems_region_internal): Detect an
 -      ASCII only string correctly.
 -
 -      * lread.c (Fload): Don't load with Qload_force_doc_strings t if
 -      version is 0.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * lread.c: Include "coding.h".
 -      (Qget_emacs_mule_file_char, Qload_force_doc_strings)
 -      (load_each_byte, unread_char): New variables.
 -      (readchar_backlog): Delete.
 -      (readchar): Return a character unless load_each_byte is nonzero.
 -      Handle the case that readcharfun is Qget_emacs_mule_file_char or a
 -      cons.  If unread_char is not -1, simply return it.
 -      (unreadchar): Handle the case that readcharfun is
 -      Qget_emacs_mule_file_char or a cons.  Set unread_char if necessary.
 -      (read_multibyte): Delete.
 -      (readbyte_for_lambda, readbyte_from_file, readbyte_from_string)
 -      (read_emacs_mule_char): New functions.
 -      (Fload): Even if the file doesn't have the extension ".elc", if
 -      safe_to_load_p returns a positive version number, assume that the
 -      file contains bytecompiled code.  If the version is less than 22,
 -      load the file while decoding multibyte sequences by emacs-mule.
 -      (readevalloop): Don't use readchar_backlog.
 -      (Fread): Likewise.  Pay attention to the case that STREAM is a cons.
 -      (Fread_from_string): Pay attention to the case that STREAM is a cons.
 -      (read_escape): Delete the arg BYTEREP.
 -      (read1): Set load_each_byte to 1 temporarily while handling
 -      #@NUMBER.  Don't call read_multibyte.
 -      (read_vector): Call Fread with a cons.  If readcharfun is
 -      Qget_emacs_mule_file_char, decode the read string by emacs-mule.
 -      (read_list): If doc_reference is 2, make the cdr part string as unibyte.
 -      (syms_of_lread): Intern and staticpro Qget_emacs_mule_file_char
 -      and Qload_force_doc_strings.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (face_before_or_after_it_pos): Call
 -      FETCH_MULTIBYTE_CHAR with byte postion, not char position.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.h (TRAILING_CODE_P): New macro.
 -      (MAYBE_UNIFY_CHAR): Adjust for the change of Funify_charset.
 -      (string_char_with_unification): Fix prototype.
 -      (Vscript_alist): Extern it.
 -
 -      * character.c (Vscript_alist): New variable.
 -      (string_char_with_unification, str_as_unibyte)
 -      (string_escape_byte8): Add `const' to local variables.
 -      (syms_of_character): Declare script-alist as a Lisp variable.
 -
 -      * charset.h (Vcharset_ordered_list): Extern it.
 -      (charset_ordered_list_tick): Extern it.
 -      (EMACS_MULE_LEADING_CODE_PRIVATE_11)
 -      (EMACS_MULE_LEADING_CODE_PRIVATE_12)
 -      (EMACS_MULE_LEADING_CODE_PRIVATE_21)
 -      (EMACS_MULE_LEADING_CODE_PRIVATE_22): New macros.
 -      (Funify_charset): Adjust for the change of Funify_charset.
 -
 -      * charset.c (charset_ordered_list_tick): New variable.
 -      (Fdefine_charset_internal): Increment charset_ordered_list_tick.
 -      (Funify_charset): New optional arg DEUNIFY.  If it is non-nil,
 -      deunify intead of unify a charset.
 -      (string_xstring_p): Add `const' to local variables.
 -      (find_charsets_in_text): Add `const' to arguments and local variables.
 -      (encode_char): Adjust for the change of Funify_charset.  Fix
 -      detecting of invalid code.
 -      (Fset_charset_priority): Increment charset_ordered_list_tick.
 -      (Fmap_charset_chars): Fix handling of default value for FROM_CODE
 -      and TO_CODE.
 -
 -      * coding.c (LEADING_CODE_PRIVATE_11, LEADING_CODE_PRIVATE_12)
 -      (LEADING_CODE_PRIVATE_21, LEADING_CODE_PRIVATE_22): Delete macros.
 -      Changed callers to use EMACS_MULE_LEADING_CODE_PRIVATE_11, etc.
 -      (decode_coding_ccl, consume_chars)
 -      (Ffind_coding_systems_region_internal)
 -      (Fcheck_coding_systems_region): Add `const' to local variables.
 -
 -      * print.c (print_object): Use octal form for printing the
 -      contents of a bool vector.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * lread.c (Fload) <!load_dangerous_libraries>: Don't leak fd.
 -      <version == 20>: Refuse to load.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * fns.c: Move coding.h.
 -      (Qcodeset, Qdays, Qmonths): New.
 -      (concat): Use CHARACTERP instead of INTEGERP.
 -      (Flocale_codeset): Delete.
 -      (Flanginfo): New function.
 -      (syms_of_fns): Change accordingly.
 -
 -      * coding.c (adjust_coding_eol_type): Fix eol_type/eol_seen mixup.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * casetab.c (init_casetab_once, init_casetab_once): Fix
 -      CHAR_TABLE_SET call.
 -
 -      * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call.
 -
 -      * character.c (syms_of_character): Fix CHAR_TABLE_SET call.
 -
 -      * charset.c (Fmap_charset_chars): Check args.  Convert Lisp types.
 -      (load_charset_map, Fdeclare_equiv_charset, Fencode_char)
 -      (Fset_charset_priority, syms_of_charset): Convert Lisp types.
 -
 -      * charset.h (CHECK_CHARSET_GET_ID): Use XINT on AREF result.
 -
 -      * coding.c (ENCODE_DESIGNATION, decode_eol)
 -      (make_conversion_work_buffer, code_conversion_restore)
 -      (Fdefine_coding_system_internal): Convert Lisp types.
 -      (code_conversion_restore): Use EQ, not ==.
 -      (Fencode_coding_string): Fix code_convert_string call.
 -
 -      * coding.h (code_convert_region): Fix prototype.
 -
 -      * dispextern.h (redraw_frame, redraw_garbaged_frames): Remove.
 -
 -      * fontset.c (fontset_ref, fontset_set, fs_load_font)
 -      (Ffontset_info): Convert Lisp types.
 -
 -      * syntax.h (SYNTAX_ENTRY_INT): Don't use make_number.
 -
 -      * xterm.c (note_mouse_movement): Fix call of window_from_coordinates.
 -
 -      * xdisp.c (display_mode_element): Fix call of Fset_text_properties.
 -
 -      * chartab.c: Include "...h", not <...h> in some cases.
 -
 -      * callproc.c (Fcall_process): Remove unused variables.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c (Fset_coding_system_priority): Allow null arg list.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * minibuf.c (Fminibuffer_complete_word): Remove unused var.
 -      (Fself_insert_and_exit): Use CHARACTERP.
 -
 -      * callproc.c (Fcall_process): Remove unused vars.
 -
 -      * xterm.c (XTread_socket): Add extra dead keysyms.
 -
 -      * xdisp.c (decode_mode_spec_coding): Use CHARACTERP.
 -
 -      * dispextern.h: Remove prototypes for redraw_frame,
 -      redraw_garbaged_frames.
 -
 -      * cmds.c (Fself_insert_command): Use CHARACTERP.
 -
 -      * chartab.c (make_sub_char_table): Remove unused var.
 -      (Fset_char_table_default, Fmap_char_table): Doc fix.
 -
 -      * keymap.c (access_keymap): Remove generic char code.
 -      (push_key_description): Use CHARACTERP.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * charset.c: Doc fixes.
 -      (Funify_charset): Extra checking.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * lread.c: Remove some unused variables.
 -      (safe_to_load_p): If safe, return the magic number version byte.
 -      (Fload): Maybe use load-with-code-conversion.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * category.c (Fmodify_category_entry): Don't modify the contents
 -      of category_set for characters out of the range.  Avoid
 -      unnecessary modification.
 -
 -      * character.h (MAYBE_UNIFY_CHAR): Adjust for the change of
 -      Vchar_unify_table.  The default value of the table is now nil.
 -
 -      * character.c (syms_of_character): Setup Vchar_width_table for
 -      eight-bit-control and raw-byte chars.
 -
 -      * charset.h (enum define_charset_arg_index): Delete
 -      charset_arg_parents and add charset_arg_subset and
 -      charset_arg_superset.
 -      (enum charset_attr_index): Delete charset_parents and add
 -      charset_subset and charset_superset.
 -      (enum charset_method): Delete CHARSET_METHOD_INHERIT and add
 -      CHARSET_METHOD_SUBSET and CHARSET_METHOD_SUPERSET.
 -      (CHARSET_ATTR_PARENTS, CHARSET_PARENTS): Delete.
 -      (CHARSET_ATTR_SUBSET, CHARSET_ATTR_SUPERSET, CHARSET_SUBSET)
 -      (CHARSET_SUPERSET): New macros.
 -      (charset_work): Extern it.
 -      (ENCODE_CHAR): Use charset_work.
 -      (CHAR_CHARSET_P): Adjust for the change of encoder format.
 -      (map_charset_chars): Extern it.
 -
 -      * charset.c (load_charset_map): Set the default value of encoder
 -      and deunifier char-tables to nil.
 -      (map_charset_chars): Change argument.  Change callers.  Use
 -      map_char_table_for_charset instead of map_char_table.
 -      (Fmap_charset_chars): New optional args from_code and to_code.
 -      (Fdefine_charset_internal): Adjust for the change of
 -      `define-charset' (:parents -> :subset or :superset).
 -      (charset_work): New variable.
 -      (encode_char, syms_of_charset): Adjust for the change of
 -      Fdefine_charset_internal.
 -      (Ffind_charset_string): Setup the vector `charsets' correctly.
 -
 -      * chartab.c (sub_char_table_ref_and_range): New arg default.  Fix
 -      the previous change.
 -      (char_table_ref_and_range): Adjust for the above change.
 -      (map_sub_char_table_for_charset): New function.
 -      (map_char_table_for_charset): New function.
 -
 -      * keymap.c (describe_vector): Handle a char-table directly here.
 -      (describe_char_table): Delete.
 -
 -      * lisp.h (map_charset_chars): Delete.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * fns.c (count_combining): Comment out (unused).
 -      (Flocale_codeset): New.
 -      (syms_of_fns): Defsubr it.
 -
 -      * config.in (HAVE_PTY_H, HAVE_SIZE_T, HAVE_LANGINFO_CODESET): New.
 -      (size_t): Remove.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in (chartab.o): Depend on charset.h.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (syms_of_character): Set the default value of
 -      Vprintable_chars to Qnil.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in (lisp, shortlisp): Change indian.elc to indian.el.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (load_charset_map): Handle the case that from < to
 -      correctly.
 -
 -      * coding.c (encode_coding_emacs_mule, encode_coding_iso_2022)
 -      (encode_coding_sjis, encode_coding_big5, encode_coding_charset):
 -      Pay attention to raw-8-bit chars.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (lisp, shortlisp): Change chinese.elc to chinese.el.
 -      It is not bytecompiled now.
 -
 -      * charset.c (charset_jisx0201_roman, charset_jisx0208_1978)
 -      (charset_jisx0208): New variables.
 -      (Fdefine_charset_internal): Setup them if appropriate.
 -      (init_charset_once): Initialize them to -1.
 -
 -      * charset.h (charset_jisx0201_roman, charset_jisx0208_1978)
 -      (charset_jisx0208): Extern them.
 -
 -      * coding.c (CODING_ISO_FLAG_USE_ROMAN): New macro.
 -      (CODING_ISO_FLAG_USE_OLDJIS): New macro.
 -      (CODING_ISO_FLAG_FULL_SUPPORT): Change macro definition.
 -      (setup_iso_safe_charsets): Fix arguments to Fassq.
 -      (DECODE_DESIGNATION, ENCODE_ISO_CHARACTER_DIMENSION1)
 -      (ENCODE_ISO_CHARACTER_DIMENSION2): Pay attention to
 -      CODING_ISO_FLAG_USE_ROMAN and CODING_ISO_FLAG_USE_OLDJIS.
 -      (encode_coding_iso_2022): Change the 1st arg to
 -      ENCODE_ISO_CHARACTER to a variable.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (enum define_charset_arg_index): New enums
 -      charset_arg_min_code and charset_arg_max_code.
 -      (struct charset): New member char_index_offset.
 -
 -      * charset.c (CODE_POINT_TO_INDEX, INDEX_TO_CODE_POINT):
 -      Take charset->char_index_offset into account.
 -      (Fdefine_charset_internal): Handle args[charset_arg_min_code] and
 -      args[charset_arg_max_code].  Setup charset.char_index_offset.
 -      (syms_of_charset): Fix args to Fdefine_charset_internal.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c (decode_coding_utf_8): Reject overlong sequences.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c: Doc fixes.
 -      (Fcoding_system_aliases): Fix return value.
 -      (Qmac): Remove (duplicated) definition.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * charset.c (Fcharset_priority_list, Fset_charset_priority):
 -      New functions.
 -
 -      * character.c (Fstring): Doc fix.
 -
 -      * charset.c (Fdefine_charset_alias): Update Vcharset_list.
 -
 -      * fontset.c (Ffontset_info): Doc fix.  Return charset names, not ids.
 -      (font-encoding-alist): Doc fix.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * term.c (costs_set): Declare static, non-initialized for pcc.
 -      (encode_terminal_code): Remove unused var.
 -
 -      * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl
 -      for K&R.
 -
 -      * xterm.c (xlwmenu_window_p): Fix prototype for K&R.
 -
 -      * coding.c (setup_iso_safe_charsets): Fix arg decl for K&R.
 -      (suffixes): Move out of make_subsidiaries for K&R.
 -
 -      * charset.c (map_charset_chars): Fix c_function declaration for K&R.
 -
 -      * lisp.h (DEFUN) [!PROTOTYPES]: Remove spurious `args'.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * data.c (Fchar_or_string_p): Doc fix.  Use CHARACTERP.
 -
 -      * category.c (Fmodify_category_entry): Doc fix.  Remove unused vars.
 -
 -2008-02-01  Yong Lu  <lyongu@asia-infonet.com>
 -
 -      * charset.c (Fdefine_charset_internal): Fix argument to bzero.
 -
 -      * coding.c (decode_coding_charset): Workaround for the bug of GCC 2.96.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (lisp, shortlisp): Change cyrillic.elc to cyrillic.el,
 -      vietnamese.elc to vietnamese.el.  They are not bytecompiled now.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_charset): Adjust for the change of
 -      Fdefine_coding_system_internal.
 -      (Fdefine_coding_system_internal): For a coding system of
 -      `charset' type, store a list of charset IDs in
 -      `charset_attr_charset_valids' element of coding attributes.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
 -      (emacs_mule_char): New arg src.  Delete arg `composition'.  Change
 -      caller.  Handle 2-byte and 3-byte charsets correctly.
 -      (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Rename from
 -      DECODE_EMACS_MULE_COMPOSITION_RULE.  Change caller.
 -      (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro.
 -      (DECODE_EMACS_MULE_21_COMPOSITION): Call
 -      DECODE_EMACS_MULE_COMPOSITION_RULE_21.  Produce correct annotation
 -      sequence.
 -      (decode_coding_emacs_mule): Handle composition correctly.  Rewind
 -      `src' and `consumed_chars' correctly before calling emacs_mule_char.
 -      (DECODE_COMPOSITION_START): Correctly handle the case of altchar
 -      and alt&rule composition.
 -      (decode_coding_iso_2022): Handle composition correctly.
 -      (init_coding_once): Setup emacs_mule_bytes for private charsets.
 -
 -      * charset.c (Fdefine_charset_internal): Fix bug for the case of
 -      re-defining a charset.  If the charset has :emacs-mule-id, setup
 -      emacs_mule_bytes.
 -      (Fmake_char): If CODE1 is nil, use the minimum code of the charset.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_iso_2022, encode_coding_sjis)
 -      (encode_coding_big5, encode_coding_charset): If coding requires safe
 -      encoding, produce a character specified by
 -      CODING_INHIBIT_CHARACTER_SUBSTITUTION.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (XSetIMValues): Declare.
 -
 -      * process.c: Conditionally include sys/wait.h, pty.h.
 -
 -      * print.c (print_object): Fix print format for 64-bit systems.
 -
 -      * keyboard.c (modify_event_symbol): Fix print format for 64-bit systems.
 -
 -      * buffer.c (emacs_strerror): Declare.
 -
 -      * fontset.c (Fclear_face_cache): Declare.
 -      (accumulate_font_info): Comment-out (unused).
 -      (face_for_char, Fset_fontset_font, Ffontset_info): Remove unused
 -      variables.
 -
 -      * character.h (string_escape_byte8): Declare.
 -
 -      * charset.c (load_charset_map, load_charset_map_from_file): Remove
 -      unused vars.
 -      (Fdefine_charset_internal, Fsplit_char, syms_of_charset)
 -      (Fmap_charset_chars): Doc fix.
 -
 -      * coding.c (Vchar_coding_system_table, Qchar_coding_system): Remove.
 -      (Fset_coding_system_priority, Fset_coding_system_priority)
 -      (Fdefine_coding_system_internal): Doc fix.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Remove -nointrinsics.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * character.c (string_escape_byte8): Make multibyte string with
 -      correct size.
 -
 -      * charset.c (Fmake_char): Delete unnecessary code.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfns.c (x_encode_text): Allocate coding.destination here, and
 -      call encode_coding_object with dst_object Qnil.
 -
 -      * buffer.c (Fset_buffer_multibyte): Convert 8-bit bytes to
 -      multibyte form correctly.
 -
 -      * fontset.c (fs_load_font): Check fontp->full_name (not fontname)
 -      against Vfont_encoding_alist.
 -
 -      * coding.c (Fdecode_sjis_char): Fix typo (0x7F->0xFF).  Fix the
 -      handling of charset list.
 -      (encode_coding_iso_2022): Setup coding->safe_charsets in advance.
 -      (decode_coding_object): Move point to coding->dst_pos before
 -      calling post-read-conversion function.
 -      (encode_coding_object): Give correct arguments to
 -      pre-write-conversion.  Ignore the return value of
 -      pre-write-conversion function.  Pay attention to the case that
 -      pre-write-conversion changes the current buffer.  If dst_object is
 -      Qt, even if coding->src_bytes is zero, allocate at least one byte
 -      to coding->destination.
 -
 -      * coding.h (JIS_TO_SJIS): Fix typo (j1->s1, j2->s2).
 -
 -      * charset.c (Fmake_char): Make it more backward compatible.
 -      (Fmap_charset_chars): Fix docstring.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * coding.c: Doc fixes.
 -      (Fdefine_coding_system_alias): Use names, not symbols, in
 -      coding-system-alist.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (free_realized_fontsets): Call Fclear_face_cache instead
 -      of calling free_realized_face.
 -
 -2008-02-01  Yong Lu  <lyongu@asia-infonet.com>
 -
 -      * charset.c (read_hex): Don't treat SPC as a comment starter.
 -      (decode_char): If CODE_POINT_TO_INDEX returns -1, always return -1.
 -      (Fdecode_char): Fix typo.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (struct charset): New member `code_space_mask'.
 -
 -      * coding.c (coding_set_source): Delete the local variable beg_byte.
 -      (encode_coding_charset, Fdefine_coding_system_internal):
 -      Delete the local variable charset.
 -      (Fdefine_coding_system_internal): Setup
 -      attrs[coding_attr_charset_valids] correctly.
 -
 -      * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask'
 -      member to check if CODE is valid or not.
 -      (Fdefine_charset_internal): Initialize `code_space_mask' member.
 -      (encode_char): Before calling CODE_POINT_TO_INDEX, check if CODE
 -      is within the range of charset->min_code and carset->max_code.
 -
 -2008-02-01  Dave Love  <fx@gnu.org>
 -
 -      * syntax.h (syntax_temp) [!__GNUC__]: Declare.
 -
 -      * dispextern.h (generate_ascii_font): Fix return type.
 -
 -      * xfaces.c (generate_ascii_font): Fix arg declaration.
 -
 -      * coding.c (coding_inherit_eol_type)
 -      (Fset_terminal_coding_system_internal)
 -      (Fset_safe_terminal_coding_system_internal): Fix arg declarations.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_charset, encode_coding_charset): Handle
 -      multiple charsets correctly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (boyer_moore): Fix handling of multibyte character
 -      translation.
 -
 -      * xdisp.c (display_mode_element): When the variable `elt' is
 -      changed, update `this' and `lisp_string'.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * buffer.c (Fset_buffer_multibyte): Fix 8-bit char handling.
 -
 -      * callproc.c (Fcall_process): Be sure to give the current buffer
 -      to decode_coding_c_string.  Update PT and PT_BYTE after the insertion.
 -
 -      * charset.c (struct charset_map_entries): New struct.
 -      (load_charset_map): Rename from parse_charset_map.  New args
 -      entries and n_entries.  Change caller.
 -      (load_charset_map_from_file): Rename from load_charset_map.
 -      Change caller.  New arg control_flag.  Call load_charset_map at
 -      the tail.
 -      (load_charset_map_from_vector): New function.
 -      (Fdefine_charset_internal): Setup charset.compact_codes_p.
 -      (encode_char): If the charset is compact, change a character index
 -      to a code point.
 -
 -      * coding.c (coding_alloc_by_making_gap): Check the case that the
 -      source and destination are the same correctly.
 -      (decode_coding_raw_text): Set coding->consumed_char and
 -      coding->consumed to 0.
 -      (produce_chars): If coding->chars_at_source is nonzero, update
 -      coding->consumed_char and coding->consumed before calling
 -      alloc_destination.
 -      (Fdefine_coding_system_alias): Register ALIAS in
 -      Vcoding_system_alist.
 -      (syms_of_coding): Define `no-conversion' coding system at the tail.
 -
 -      * fileio.c (Finsert_file_contents): Set coding_system instead of
 -      val.  If the current buffer is multibyte, always call
 -      decode_coding_gap.
 -
 -      * xfaces.c (try_font_list): Give higher priority to fontset's
 -      family than face's family.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * callproc.c (Fcall_process): Be sure to give the current buffer
 -      to decode_coding_c_string.
 -
 -      * xfaces.c (try_font_list): Give a family specified in a fontset
 -      higher priority than a family specified in a face.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): Fix calculation of `inserted'.
 -      Fix arguments to insert_from_buffer.
 -
 -      * xdisp.c (display_mode_element): Fix calculation of `bytepos'.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (produce_chars): Set the variable `multibytep' correctly.
 -      (decode_coding_gap): Set coding->dst_multibyte correctly.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_utf_8): Initialize produced_chars to 0.
 -      (decode_coding_utf_16): Fix converting high and low bytes to code-point.
 -      (encode_coding_utf_16): Substitute coding->default_char for
 -      non-Unicode characters.
 -      (decode_coding): Don't call record_insert here.
 -      (setup_coding_system): Initialize `surrogate' of
 -      coding->spec.utf_16 to 0.
 -      (EMIT_ONE_BYTE): Fix for multibyte case.
 -
 -      * insdel.c (insert_from_gap): Call record_insert.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * casefiddle.c (casify_region): Fix multibyte case.
 -
 -      * character.c (c_string_width): Add return type `int'.
 -      (char_string_with_unification): Delete arg ADVANCED.
 -
 -      * character.h (CHAR_VALID_P): Don't call CHARACTERP.
 -      (CHAR_STRING): Adjust for the change of char_string_with_unification.
 -      (CHAR_STRING_ADVANCE): Make it do-while statement.
 -
 -      * chartab.c (sub_char_table_set_range): Optimize for the case
 -      DEPTH == 3.  Add workaround code for a GCC optimization bug.
 -
 -      * charset.c (parse_charset_map): Remove an unused variable.
 -
 -      * coding.c: Delete unused variables.
 -
 -      * fileio.c (Finsert_file_contents): Set coding_system to Qnil
 -      earlier.  If inserted is zero and the coding system doesn't
 -      require flushing, don't call decode_coding_gap.
 -
 -      * syntax.h (SET_RAW_SYNTAX_ENTRY): Don't call make_number.
 -
 -2008-02-01  Kenichi Handa  <handa@m17n.org>
 -
 -      The following changes are for using Unicode as an internal
 -      character model, and use UTF-8 format for buffer/string
 -      representation.
 -
 -      * .gdbinit (xchartable): Adjust for the change of char table structure.
 -      (xsubchartable, xcoding, xcharset, xcurbuf): New commands.
 -
 -      * Makefile.in (obj): Add character.o and chartab.o.
 -      (lisp, shortlisp): Remove utf-8.elc.
 -      (*.o): For many files, change dependency on charset.h to
 -      character.h, and add dependency on character.h.
 -      (character.o, chartab.o): New targets.
 -
 -      * abbrev.c, bytecode.c, casefiddle.c, cmds.c, dispnew.c, doc.c:
 -      * doprnt.c, dosfns.c, frame.c, marker.c, minibuf.c, msdos.c:
 -      * w16select.c, w32bdf.c, w32console.c: Include "character.h" instead
 -      of "charset.h".
 -
 -      * dired.c, filelock.c: Include "character.h".
 -
 -      * alloc.c: Include "character.h" instead of "charset.h".
 -      (Fmake_char_table, make_sub_char_table): Move to chartab.c.
 -      (syms_of_alloc): Remove defsubr for Smake_char_table.
 -
 -      * buffer.c: Include "character.h" instead of "charset.h", don't
 -      include "coding.h".
 -      (Fset_buffer_multibyte): Adjust for UTF-8.
 -
 -      * buffer.h: EXFUN Fbuffer_live_p.
 -
 -      * callproc.c: Include "character.h" instead of "charset.h".
 -      (Fcall_process): Big change for the new code-conversion APIs.
 -
 -      * casetab.c: Include "character.h" instead of "charset.h".
 -      (set_canon, set_identity, shuffle): Adjust for the new
 -      map_char_table spec.
 -      (init_casetab_once): Call CHAR_TABLE_SET instead of directly
 -      accessing the char table structure.
 -
 -      * chartab.c: New file that implements char table.
 -
 -      * category.c: Include "character.h".
 -      (copy_category_entry): New function.
 -      (copy_category_table): Call map_char_table and copy_category_entry.
 -      (Fmake_category_table): Initialize all top-level slots.
 -      (char_category_set): New function.
 -      (modify_lower_category_set): Delete.
 -      (Fmodify_category_entry): Call char_table_ref_and_range.
 -
 -      * category.h (CATEGORY_SET): Just call char_category_set.
 -
 -      * ccl.c: Include "character.h".
 -      (Qccl, Qcclp): New variables.
 -      (CCL_WRITE_CHAR): Alway treat the arg CH as a character even if
 -      it's less than 256.
 -      (CCL_WRITE_MULTIBYTE_CHAR): Delete.
 -      (CCL_WRITE_STRING, CCL_READ_CHAR): Adjust for the change of SRC
 -      and DST type.
 -      (ccl_driver): Change types of argument, adjust code accordingly.
 -      (Fccl_execute, Fccl_execute_on_string): Adjust for the change of
 -      ccl_driver.
 -      (syms_of_ccl): Intern and staticpro Qccl and Qcclp.
 -
 -      * ccl.h (struct ccl_program): Delete members eol_type and multibyte.
 -      New members src_multibyte, dst_multibyte, consumed, and produced.
 -      (struct ccl_spec): Delete members decoder and encoder.  New member ccl.
 -      (CODING_SPEC_CCL_PROGRAM): New macro.
 -      (ccl_driver): Update prototype.
 -      (Qccl, Qcclp, Fccl_program_p): Extern them.
 -      (CHECK_CCL_PROGRAM): New macro.
 -
 -      * character.c, character.h, chartab.c: New files.
 -
 -      * charset.c: Mostly re-written.  Move character and multibyte sequence
 -      handling codes to character.c.
 -
 -      * charset.h: Mostly re-written.  Move character and multibyte sequence
 -      handling codes to character.h.
 -
 -      * coding.c, coding.h: Mostly re-written.
 -
 -      * composite.c: Include "character.h" instead of "charset.h".
 -      (CHAR_WIDTH): Move to character.h.
 -      (HASH_KEY, HASH_VALUE): Delete.
 -
 -      * composite.h (enum composition_method): Change order of enumeration
 -      symbols.
 -
 -      * data.c: Include "character.h" instead of "charset.h".
 -      (Faref): Call CHAR_TABLE_REF for a char table.
 -      (Faset): Call CHAR_TABLE_SET for a char table.
 -
 -      * dispextern.h (free_realized_face, check_face_attribytes)
 -      (generate_ascii_font): Extern them.
 -      (free_realized_multibyte_face): Delete extern.
 -
 -      * disptab.h (DISP_CHAR_VECTOR): Adjust for the change of char
 -      table structure.
 -
 -      * editfns.c: Include "character.h" instead of "charset.h".
 -      (Fchar_to_string): Always call CHAR_STRING.
 -
 -      * emacs.c (main): Call init_charset_once, init_charset,
 -      syms_of_chartab, and syms_of_character.
 -
 -      * fileio.c: Include "character.h" instead of "charset.h".
 -      (Finsert_file_contents): Big change for the new code-conversion API.
 -      (choose_write_coding_system, Fwrite_region): Likewise.
 -      (build_annotations_2): Delete.
 -      (e_write): Big change for the new code-conversion API.
 -
 -      * fns.c: Include "character.h" instead of "charset.h".
 -      (copy_sub_char_table): Move to chartab.c.
 -      (Fcopy_sequence): Call copy_char_table for a char table.
 -      (concat): Delete codes calling count_multibyte.
 -      (string_char_to_byte, string_byte_to_char): Adjust for the new
 -      multibyte form.
 -      (internal_equal): Adjust for the change of char table structure.
 -      (Fchar_table_subtype, Fchar_table_parent, Fset_char_table_parent)
 -      (Fchar_table_extra_slot, Fset_char_table_extra_slot)
 -      (Fchar_table_range, Fset_char_table_range, Fset_char_table_default)
 -      (char_table_translate, optimize_sub_char_table)
 -      (Foptimize_char_table, map_char_table, Fmap_char_table): Move to
 -      chartab.c.
 -      (char_table_ref_and_index): Delete.
 -      (HASH_KEY, HASH_VALUE): Move to lisp.h.
 -      (Fmd5): Call preferred_coding_system instead of accessing
 -      Vcoding_category_list.  Adjust for the new code-conversion API.
 -      (syms_of_fns): Move defsubr for char table related functions to
 -      chartab.c.
 -
 -      * fontset.c: Mostly re-written.
 -
 -      * fontset.h (struct font_info): Change type of the member encoding_type.
 -      (enum FONT_SPEC_INDEX): New enum.
 -      (fontset_font_pattern, fs_load_font): Update prototype.
 -      (FS_LOAD_FONT): Adjust for the change of fs_load_font.
 -
 -      * indent.c: Include "character.h" instead of "charset.h".
 -      (MULTIBYTE_BYTES_WIDTH): Call CHAR_WIDTH instead of WIDTH_BY_CHAR_HEAD.
 -
 -      * insdel.c: Include "character.h" instead of "charset.h".
 -      (copy_text): Don't refer to Vnonascii_translation_table.
 -      (insert_from_gap): New function.
 -
 -      * keyboard.c: Include "character.h" instead of "charset.h".
 -      (command_loop_1): Never call direct_output_forward_char before
 -      a non-ASCII character.
 -      (read_char): If Vkeyboard_translate_table is a char table, always
 -      translate a character.
 -
 -      * keymap.c: Include "character.h".
 -      (store_in_keymap): Handle the case that IDX is a cons.
 -      (Fdefine_key): Handle the case that KEY is a cons and the car part
 -      is also a cons (range).
 -      (push_key_description): Adjust for the new character code.
 -      (describe_vector): Call describe_char_table for a char table.
 -      (describe_char_table): New function.
 -
 -      * keymap.h (describe_char_table): Extern it.
 -
 -      * lisp.h (enum pvec_type): New member PVEC_SUB_CHAR_TABLE.
 -      (XSUB_CHAR_TABLE, XSETSUB_CHAR_TABLE): New macros.
 -      (CHAR_TABLE_ORDINARY_SLOTS, CHAR_TABLE_SINGLE_BYTE_SLOTS)
 -      (SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS):
 -      Delete.
 -      (CHAR_TABLE_REF, CHAR_TABLE_SET): Adjust for the new char table
 -      structure.
 -      (CHAR_TABLE_TRANSLATE): Just call char_table_translate.
 -      (CHARTAB_SIZE_BITS_0, CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2)
 -      (CHARTAB_SIZE_BITS_3): New macros.
 -      (chartab_size): Extern it.
 -      (struct Lisp_Char_Table): Re-design.
 -      (struct Lisp_Sub_Char_Table): New structure.
 -      (HASH_KEY, HASH_VALUE): Move from fns.c.
 -      (CHARACTERBITS): Define as 22.
 -      (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjust for the above change.
 -      (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE.
 -      (GC_SUB_CHAR_TABLE_P): New macro.
 -      (Fencode_coding_string, Fdecode_coding_string): Update EXFUN.
 -      (code_convert_string_norecord): Deleted extern.
 -      (init_character_once, syms_of_character, init_charset)
 -      (syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
 -
 -      * lread.c: Include "character.h".
 -      (read_multibyte): New arg NBYTES.
 -      (read_escape): Change the meaning of returned *BYTEREP.
 -      (to_multibyte): Delete.
 -      (read1): Adjust the handling of char table and string.
 -
 -      * print.c: Include "character.h" instead of "charset.h".
 -      (print_string): Convert 8-bit raw bytes to octal form by
 -      string_escape_byte8.
 -      (print_object): Adjust for the new multibyte form.  Print 8-bit
 -      raw bytes always in octal form.  Handle sub char table correctly.
 -
 -      * process.c: Include "character.h" instead of "charset.h".
 -      (read_process_output, send_process): Adjust for the new
 -      code-conversion API.
 -
 -      * puresize.h (BASE_PURESIZE): Increase.
 -
 -      * regex.c: Include "character.h" instead of "charset.h".
 -      (BYTE8_TO_CHAR, CHAR_BYTE8_P) [not emacs]: New dummy macros.
 -      (regex_compile): Accept a range whose starting and ending
 -      character have different leading bytes.
 -      (analyse_first): Adjust for the above change.
 -
 -      * search.c: Include "character.h" instead of "charset.h".
 -      (search_buffer, boyer_moore): Adjust for the new multibyte form.
 -      (Freplace_match): Adjust for the change of multibyte_char_to_unibyte.
 -
 -      * syntax.c: Include "character.h" instead of "charset.h".
 -      (syntax_parent_lookup): Delete.
 -      (Fmodify_syntax_entry): Accept a cons as CHAR.
 -      (skip_chars): Adjust for the new multibyte form.
 -      (init_syntax_once): Call char_table_set_range instead of directly
 -      accessing the structure of a char table.
 -
 -      * syntax.h (SET_RAW_SYNTAX_ENTRY): Call CHAR_TABLE_SET.
 -      (SYNTAX_ENTRY_FOLLOW_PARENT): Delete macro.
 -      (SET_RAW_SYNTAX_ENTRY_RANGE): New macro.
 -      (SYNTAX_ENTRY_INT): Call CHAR_TABLE_REF.
 -
 -      * term.c: Include "buffer.h" and "character.h".
 -      (encode_terminal_code, write_glyphs): Adjust for the new
 -      code-conversion API.
 -      (produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.
 -
 -      * w32term.c (x_new_font): Adjust for the change of FS_LOAD_FONT.
 -
 -      * xdisp.c: Include "character.h".
 -      (get_next_display_element): Adjust for the new multibyte form.
 -      (disp_char_vector): Adjust for the new char table structure.
 -      (decode_mode_spec_coding): Adjust for the new structure of
 -      coding system.
 -      (decode_mode_spec): Adjust for the new code-conversion API.
 -
 -      * xfaces.c: Include "character.h" instead of "charset.h".
 -      (load_face_font): Adjust for the change of choose_face_font and
 -      FS_LOAD_FONT.
 -      (generate_ascii_font): New function.
 -      (set_lface_from_font_name): Adjust for the change of FS_LOAD_FONT.
 -      (set_font_frame_param): Adjust for the change of choose_face_font.
 -      (free_realized_face): Make it public.
 -      (free_realized_faces_for_fontset): Rename from
 -      free_realized_multibyte_face.  Free also faces realized for ASCII.
 -      (choose_face_font): Change arguments.  Adjust for the change of
 -      fontset_font_pattern and FS_LOAD_FONT.
 -
 -      * xfns.c: Include "character.h".
 -      (x_encode_text): Adjust for the new code-conversion API.
 -
 -      * xselect.c: Don't include "charset.h".
 -      (selection_data_to_lisp_data): Adjust for the new code conversion API.
 -
 -      * xterm.c: Include "character.h".
 -      (x_encode_char): New argument CHARSET.  Change caller.
 -      (x_get_char_face_and_encoding, x_get_glyph_face_and_encoding):
 -      Call ENCODE_CHAR instead of SPLIT_CHAR.
 -      (x_produce_glyphs): Don't check Vnonascii_translation_table Call
 -      CHAR_WIDTH instead of CHARSET_WIDTH.
 -      (XTread_socket): Adjust for the new code-conversion API.
 -      (x_new_font): Adjust for the change of FS_LOAD_FONT.
 -      (x_load_font): Adjust for the change of struct font.
 -
 -2008-02-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xfaces.c (face_at_buffer_position): Remove unused vars.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ccl.c (CCL_WRITE_CHAR, CCL_WRITE_MULTIBYTE_CHAR):
 -      Fix overflow checking.
 -
 -2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ccl.c (CCL_WRITE_CHAR, CCL_WRITE_MULTIBYTE_CHAR, ccl_driver):
 -      Cancel previous change.
 -
 -2008-01-31  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * ccl.c (CCL_WRITE_CHAR): Increment extra_bytes only when
 -      ccl->eight_bit_control.  Fix check for buffer overflow.
 -      (CCL_WRITE_MULTIBYTE_CHAR): Fix check for buffer overflow.
 -      (ccl_driver): Initialize extra_bytes to 0.
 -
 -2008-01-31  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * keyboard.c (make_ctrl_char): If C is a multibyte character, just
 -      return it ORed with ctrl_modifier.
 -
 -2008-01-29  Miles Bader  <miles@gnu.org>
 -
 -      * macterm.c (XTset_vertical_scroll_bar): Fix merge mistake.
 -
 -2008-01-28  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (stat): Don't double check for networked drive.
 -
 -2008-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (run_window_configuration_change_hook): New function.
 -      Code extracted from set_window_buffer.  Set the selected frame.
 -      (set_window_buffer): Use it.
 -      * window.h (run_window_configuration_change_hook): Declare.
 -      * dispnew.c (change_frame_size_1): Use it instead of set-window-buffer.
 -
 -      * keyboard.c (read_char): Yet another int/Lisp_Object mixup (YAILOM).
 -
 -2008-01-27  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in: Remove references to unused macros.
 -
 -2008-01-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (g_b_init_get_sid_sub_authority)
 -      (g_b_init_get_sid_sub_authority_count): New static variables.
 -      (GetSidSubAuthority_Proc, GetSidSubAuthorityCount_Proc): New typedefs.
 -      (get_sid_sub_authority, get_sid_sub_authority_count): New functions.
 -      (init_user_info): Use them to retrieve uid and gid.
 -      Use 500/513, the Windows defaults, as Administrator's uid/gid.
 -      (fstat): Use pw_uid and pw_gid from the_passwd structure for
 -      st_uid and st_gid of the file.
 -
 -2008-01-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (logon_network_drive): New function.
 -      (stat): Use it.
 -
 -2008-01-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (pos_visible_p): Handle the case where charpos falls on
 -      invisible text covered with an ellipsis.
 -
 -2008-01-25  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (redisplay_window): Run Qwindow_text_change_functions and
 -      jump back to beginning.  Move some other initializations after that.
 -      (Qwindow_text_change_functions, Vwindow_text_change_functions):
 -      New variables.
 -      (syms_of_xdisp): Init them.
 -
 -      * keyboard.c (read_char): Restore echo_message_buffer after redisplay.
 -
 -      * buffer.c (reset_buffer_local_variables):
 -      Implement `permanent-local-hook'.
 -      (Qpermanent_local_hook): New variable.
 -      (syms_of_buffer): Init and staticpro it.
 -
 -2008-01-25  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_retrieve_arg): Pacify GCC on x86_64 GNU/Linux.
 -
 -2008-01-25  Thien-Thi Nguyen  <ttn@gnuvola.org>
 -
 -      * fns.c (Fclrhash): Return TABLE.
 -
 -2008-01-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_scroll_bar_create): Initialize bar->redraw_needed_p.
 -      (XTset_vertical_scroll_bar): Redraw scroll bar if bar->redraw_needed_p
 -      is set even without positional changes.
 -      (x_scroll_bar_clear): Set bar->redraw_needed_p.
 -
 -      * macterm.h (struct scroll_bar): New member `redraw_needed_p'.
 -
 -2008-01-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * xterm.c (handle_one_xevent): Revert to counting chars not bytes.
 -
 -      * w32term.c (w32_read_socket) <WM_CHAR>: Decode characters outside
 -      the unicode range available in MULE by locale-coding-system.
 -      Improve dbcs lead byte detection.  Set event timestamp and modifiers
 -      earlier.
 -
 -2008-01-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (mac_emacs_pid) [MAC_OSX]: New variable.
 -      [MAC_OSX] (init_mac_osx_environment): Initialize it.
 -      [MAC_OSX] (mac_try_close_socket) [SELECT_USE_CFSOCKET]: Return 0
 -      when used on child processes.
 -
 -2008-01-21  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_method_return_internal): Rename from
 -      Fdbus_method_return.
 -      (Fdbus_unregister_object): Move to dbus.el.
 -      (Fdbus_call_method, Fdbus_method_return_internal)
 -      (Fdbus_send_signal): Improve debug messages.
 -
 -2008-01-20  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * undo.c (undo_inhibit_record_point): New variable.
 -      (syms_of_undo): Initialize it.
 -      (record_point): Don't record point when undo_inhibit_record_point
 -      is set.
 -
 -2008-01-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (list_processes_1): Don't use SCHARS on a nil buffer name.
 -
 -      * xdisp.c (Qauto_hscroll_mode): New var.
 -      (syms_of_xdisp): Initialize it.
 -      (hscroll_window_tree): Use it to lookup `auto-hscroll-mode' in each
 -      window's buffer.
 -      (hscroll_windows): Don't check automatic_hscrolling_p here.
 -
 -      * window.c (set_window_buffer): Don't unnecessarily reset hscroll and
 -      vscroll if we're setting window-buffer to the value it already has.
 -
 -2008-01-18  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/intel386.h: Remove references to XENIX.
 -
 -2008-01-17  Andreas Schwab  <schwab@suse.de>
 -
 -      * m/amdx86-64.h (START_FILES, LIB_STANDARD): Use HAVE_LIB64_DIR
 -      instead of HAVE_X86_64_LIB64_DIR.
 -      * m/ibms390x.h (START_FILES, LIB_STANDARD): Likewise.
 -
 -2008-01-17  Glenn Morris  <rgm@gnu.org>
 -
 -      * m/ibms390x.h (START_FILES, LIB_STANDARD): Adjust value according
 -      to HAVE_X86_64_LIB64_DIR.
 -
 -2008-01-16  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/irix3-3.h:
 -      * s/irix4-0.h:
 -      * s/386-ix.h:
 -      * s/domain.h:
 -      * s/hpux9-x11r4.h:
 -      * s/hpux9shxr4.h: Remove files for systems no longer supported.
 -
 -      * sysdep.c: Remove code containing references to symbols defined
 -      by unsupported systems.
 -
 -2008-01-16  Glenn Morris  <rgm@gnu.org>
 -
 -      * coding.c (select-safe-coding-system-function): Doc fix.
 -
 -2008-01-15  Glenn Morris  <rgm@gnu.org>
 -
 -      * config.in: Revert 2008-01-13 change: this is a generated file.
 -
 -2008-01-13  Tom Tromey  <tromey@redhat.com>
 -
 -      * lisp.h: Fix typo.
 -
 -2008-01-13  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/sequent-ptx.h:
 -      * m/sequent.h:
 -      * s/ptx.h:
 -      * s/ptx4-2.h:
 -      * s/ptx4.h: Remove files for systems no longer supported.
 -
 -      * callproc.c (Fcall_process): Fix previous change.
 -
 -2008-01-13  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * unexsunos4.c: Remove file, system not supported anymore.
 -
 -      * m/mips.h:
 -      * m/intel386.h:
 -      * callproc.c:
 -      * config.in:
 -      * ecrt0.c:
 -      * emacs.c:
 -      * fileio.c:
 -      * frame.c:
 -      * getpagesize.h:
 -      * keyboard.c:
 -      * lread.c:
 -      * process.c:
 -      * puresize.h:
 -      * sysdep.c:
 -      * systty.h:
 -      * syswait.h:
 -      * unexec.c:
 -      * xdisp.c:
 -      * alloc.c: Remove code containing references to symbols defined by
 -      unsupported systems.
 -
 -2008-01-11  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * coding.c (detect_coding_mask): Fix previous change.
 -
 -2008-01-09  Kenichi Handa  <handa@ni.aist.go.jp>
 -
 -      * coding.c (detect_coding_iso2022): New arg
 -      latin_extra_code_state.  Allow Latin extra codes only
 -      when *latin_extra_code_state is nonzero.
 -      (detect_coding_mask): If there is a NULL byte, detect the encoding
 -      as UTF-16 or binary.  If Latin extra codes exist, detect the
 -      encoding as ISO-2022 only when there's no other proper encoding is
 -      found.
 -
 -2008-01-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * frame.c (Fmake_terminal_frame): Use #ifdef MAC_OS8 instead of
 -      #ifdef MAC_OS.
 -
 -2008-01-08  Richard Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Ffile_name_directory, Fexpand_file_name): Doc fixes.
 -
 -2008-01-06  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * keyboard.c (parse_menu_item): Don't enclose key bindings on
 -      menu bar in parentheses.
 -
 -2008-01-06  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/7300.h:
 -      * m/acorn.h:
 -      * m/alliant-2800.h:
 -      * m/alliant.h:
 -      * m/alliant1.h:
 -      * m/alliant4.h:
 -      * m/altos.h:
 -      * m/amdahl.h:
 -      * m/apollo.h:
 -      * m/att3b.h:
 -      * m/aviion-intel.h:
 -      * m/aviion.h:
 -      * m/celerity.h:
 -      * m/clipper.h:
 -      * m/cnvrgnt.h:
 -      * m/convex.h:
 -      * m/cydra5.h:
 -      * m/delta88k.h:
 -      * m/dpx2.h:
 -      * m/dual.h:
 -      * m/elxsi.h:
 -      * m/f301.h:
 -      * m/gould-np1.h:
 -      * m/gould.h:
 -      * m/i860.h:
 -      * m/ibmps2-aix.h:
 -      * m/ibmrt-aix.h:
 -      * m/ibmrt.h:
 -      * m/irist.h:
 -      * m/is386.h:
 -      * m/isi-ov.h:
 -      * m/mega68.h:
 -      * m/mg1.h:
 -      * m/news-r6.h:
 -      * m/news-risc.h:
 -      * m/news.h:
 -      * m/nh3000.h:
 -      * m/nh4000.h:
 -      * m/ns16000.h:
 -      * m/ns32000.h:
 -      * m/nu.h:
 -      * m/orion.h:
 -      * m/orion105.h:
 -      * m/paragon.h:
 -      * m/pfa50.h:
 -      * m/plexus.h:
 -      * m/pyramid.h:
 -      * m/pyrmips.h:
 -      * m/sh3el.h:
 -      * m/sps7.h:
 -      * m/sr2k.h:
 -      * m/stride.h:
 -      * m/sun1.h:
 -      * m/sun2.h:
 -      * m/sun3-68881.h:
 -      * m/sun3-fpa.h:
 -      * m/sun3-soft.h:
 -      * m/sun3.h:
 -      * m/sun386.h:
 -      * m/symmetry.h:
 -      * m/tad68k.h:
 -      * m/tahoe.h:
 -      * m/targon31.h:
 -      * m/tek4300.h:
 -      * m/tekxd88.h:
 -      * m/tower32.h:
 -      * m/tower32v3.h:
 -      * m/ustation.h:
 -      * m/wicat.h:
 -      * m/xps100.h:
 -      * s/cxux.h:
 -      * s/cxux7.h:
 -      * s/dgux.h:
 -      * s/dgux4.h:
 -      * s/dgux5-4-3.h:
 -      * s/dgux5-4r2.h:
 -      * s/esix.h:
 -      * s/esix5r4.h:
 -      * s/hiuxmpp.h:
 -      * s/hiuxwe2.h:
 -      * s/iris3-5.h:
 -      * s/iris3-6.h:
 -      * s/isc2-2.h:
 -      * s/isc3-0.h:
 -      * s/isc4-0.h:
 -      * s/isc4-1.h:
 -      * s/newsos5.h:
 -      * s/newsos6.h:
 -      * s/osf1.h:
 -      * s/osf5-0.h:
 -      * s/riscix1-1.h:
 -      * s/riscix12.h:
 -      * s/sco4.h:
 -      * s/sco5.h:
 -      * s/sunos4-0.h:
 -      * s/sunos4-1.h:
 -      * s/sunos413.h:
 -      * s/sunos4shr.h:
 -      * s/umax.h:
 -      * s/unipl5-2.h:
 -      * s/xenix.h:
 -      * cxux-crt0.s:
 -      * unexapollo.c:
 -      * unexconvex.c:
 -      * unexenix.c:
 -      * unexsni.c: Remove files for systems no longer supported.
 -
 -      * m/intel386.h: Remove references to unsupported systems.
 -
 -      * w32.c (get_emacs_configuration): Remove reference to i860.
 -
 -      * sysdep.c: Remove dead code.
 -
 -2008-01-05  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/rtu.h:
 -      * m/masscomp.h: Remove files.  Platform is obsolete.
 -
 -2008-01-04  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_method_return): New function.
 -      (xd_read_message): Add the serial number to the event.
 -      (Fdbus_register_method): Activate the function.
 -
 -2008-01-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (read_key_sequence): Fix typo.
 -
 -2008-01-03  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (all): Replace XCAR by CAR_SAFE and XCDR by CDR_SAFE.
 -      (xd_signature, xd_append_arg): Handle element type detection for
 -      empty arrays.
 -      (Fdbus_call_method, Fdbus_send_signal): Undo type casting for
 -      SDATA () calls; this must be solved more general.
 -      (Fdbus_register_signal): Use SBYTES instead of strlen.
 -
 -2008-01-03  Magnus Henoch  <magnus@zemdatav>
 -
 -      * dbusbind.c (xd_append_arg): Use unsigned char instead of
 -      unsigned int for byte values (necessary for big-endian platform).
 -      (Fdbus_call_method): Handle the case of no returned arguments.
 -
 -2007-12-31  Tom Tromey  <tromey@redhat.com>  (tiny change)
 -
 -      * dbusbind.c (xd_read_message): Use non-static input_event struct.
 -
 -2007-12-31  Magnus Henoch  <mange@freemail.hu>
 -
 -      * dbusbind.c (xd_signature): Signature of variant is just "v".
 -
 -2007-12-30  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c: Fix several errors and compiler warnings.
 -      Reported by Tom Tromey <tromey@redhat.com>.
 -      (XD_ERROR, XD_DEBUG_MESSAGE)
 -      (XD_DEBUG_VALID_LISP_OBJECT_P): Wrap code with "do ... while (0)".
 -      (xd_append_arg): Part for basic D-Bus types rewritten.
 -      (xd_retrieve_arg): Split implementation of DBUS_TYPE_BYTE and
 -      DBUS_TYPE_(U)INT16.  Don't call XD_DEBUG_MESSAGE with "%f" if not
 -      appropriate.
 -      (xd_read_message): Return Qnil.  Don't signal an error; it is not
 -      useful during event reading.
 -      (Fdbus_register_signal): Signal an error if the check for
 -      FUNCTIONP fails.
 -      (Fdbus_register_method): New function.  The implementation is not
 -      complete, the call of the function signals an error therefore.
 -      (Fdbus_unregister_object): New function, renamed from
 -      Fdbus_unregister_signal.  The initial check signals an error, if
 -      the object is not well formed.
 -
 -2007-12-30  Richard Stallman  <rms@gnu.org>
 -
 -      * textprop.c (get_char_property_and_overlay):
 -      Signal error if POSITION is out of range in a buffer.
 -
 -2007-12-29  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * w32fns.c (Fx_create_frame): Make copy of frame parameters
 -      because the original parameters are in pure storage now.
 -
 -2007-12-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (phys_cursor_in_rect_p): Check if cursor is in fringe area.
 -
 -2007-12-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * callint.c (syms_of_callint) <command-history>: Add reference to
 -      history-length in the doc string.
 -
 -2007-12-17  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc) <WM_KEYDOWN>: Cast char to unsigned
 -      before passing as wParam.
 -
 -2007-12-22  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_retrieve_arg): Handle DBUS_TYPE_BYTE,
 -      DBUS_TYPE_INT16, DBUS_TYPE_UINT16, DBUS_TYPE_INT64,
 -      DBUS_TYPE_UINT64, DBUS_TYPE_DOUBLE and DBUS_TYPE_SIGNATURE.
 -      Return float when DBUS_TYPE_INT32 or DBUS_TYPE_UINT32 do not fit
 -      as number.
 -      (Fdbus_call_method): Fix docstring.
 -
 -2007-12-21  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (XD_BASIC_DBUS_TYPE, XD_DBUS_TYPE_P, XD_NEXT_VALUE):
 -      New macros.
 -      (XD_SYMBOL_TO_DBUS_TYPE): Rename from XD_LISP_SYMBOL_TO_DBUS_TYPE.
 -      (XD_OBJECT_TO_DBUS_TYPE): Rename from XD_LISP_OBJECT_TO_DBUS_TYPE.
 -      Simplify.
 -      (xd_signature): New function.
 -      (xd_append_arg): Compute also signatures.  Major rewrite.
 -      (xd_retrieve_arg): Make debug messages friendly.
 -      (Fdbus_call_method, Fdbus_send_signal): Extend docstring.
 -      Check for signatures of arguments.
 -
 -2007-12-19  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (QCdbus_type_byte, QCdbus_type_boolean)
 -      (QCdbus_type_int16, QCdbus_type_uint16, QCdbus_type_int32)
 -      (QCdbus_type_uint32, QCdbus_type_int64, QCdbus_type_uint64)
 -      (QCdbus_type_double, QCdbus_type_string, QCdbus_type_object_path)
 -      (QCdbus_type_signature, QCdbus_type_array, QCdbus_type_variant)
 -      (QCdbus_type_struct, QCdbus_type_dict_entry): New D-Bus type symbols.
 -      (XD_LISP_SYMBOL_TO_DBUS_TYPE): New macro.
 -      (XD_LISP_OBJECT_TO_DBUS_TYPE): Add compound types.
 -      (xd_retrieve_value): Remove.  Functionality included in ...
 -      (xd_append_arg): New function.
 -      (Fdbus_call_method, Fdbus_send_signal): Apply it.
 -
 -2007-12-16  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (top): Include <stdio.h>.
 -      (Fdbus_call_method, Fdbus_send_signal): Apply type cast in
 -      dbus_message_new_method_call and dbus_message_new_signal.
 -      (Fdbus_register_signal): Rename unique_name to uname.
 -      Check handler for FUNCTIONP instead of CHECK_SYMBOL.  Handle case of
 -      non-existing unique name.  Fix typos in matching rule.  Return an
 -      object which is useful in Fdbus_unregister_signal.
 -      (Fdbus_unregister_signal): Reimplementation, in order to remove
 -      only the corresponding entry.
 -      (Vdbus_registered_functions_table): Change the order of entries.
 -      Apply these changes in xd_read_message and Fdbus_register_signal.
 -
 -2007-12-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * fileio.c (Finsert_file_contents): Fix overflow check to not
 -      depend on undefined integer overflow.
 -
 -2007-12-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_read_socket): Use MULTIBYTE_CHAR_KEYSTROKE_EVENT
 -      for characters above 127.
 -
 -2007-12-13  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
 -      before dereferencing array.
 -      (lookup_vk_code): Remove zero comparison.
 -
 -2007-12-14  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_retrieve_value, xd_retrieve_arg)
 -      (Fdbus_call_method, Fdbus_send_signal, xd_read_message):
 -      Use `unsigned int' instead of `uint'.
 -      (xd_read_message, Fdbus_register_signal): Split expressions into
 -      multiple lines before operators "&&" and "||", according to the
 -      GNU Coding Standards.
 -
 -2007-12-14  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dispextern.h (WINDOWS_NT): Fix incorrect spelling of WINDOWSNT.
 -
 -2007-12-12  Juri Linkov  <juri@jurta.org>
 -
 -      * buffer.c (Frename_buffer): In interactive spec replace
 -      `read-buffer' with `read-string' that uses `buffer-name-history'
 -      as history, and the current buffer's name as default.
 -
 -2007-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (Fcommand_execute): Call Qcall_interactively instead of
 -      manipulating the backtrace manually.
 -      (make_lispy_event): Merge the ASCII and MULTIBYTE cases.
 -      (struct backtrace, backtrace_list): Remove.
 -      (command_loop_1): Remove dead var `no_direct'.
 -
 -      * buffer.c (reset_buffer_local_variables): If permanent_too is 0, also
 -      preserve non-built-in buffer-local variables.
 -      (Fkill_all_local_variables): Don't re-create&re-set permanent
 -      buffer-local variables.
 -
 -2007-12-09  Juri Linkov  <juri@jurta.org>
 -
 -      * buffer.c (Frename_buffer): Change interactive spec from "s" to
 -      Lisp code that uses `read-buffer' with current buffer as default.
 -
 -2007-12-08  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_read_message): Generate an event for every
 -      registered handler.  There might be several handlers registered
 -      for the same signal.
 -      (Fdbus_register_signal): Don't overwrite a registration for the
 -      same signal.  Add a new registration if handlers are different.
 -      (Vdbus_registered_functions_table): Rework doc string.
 -
 -2007-12-07  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (Fdbus_get_unique_name, xd_read_message)
 -      (Fdbus_register_signal): Use DBUS_MAXIMUM_NAME_LENGTH and
 -      DBUS_MAXIMUM_MATCH_RULE_LENGTH for string lengths.
 -      (Fdbus_call_method, Fdbus_send_signal, Fdbus_register_signal):
 -      Unify argument lists.
 -      (xd_read_message, Fdbus_register_signal): Reorder and extend event
 -      arguments and hash table keys.  Use unique name for service.
 -      (Fdbus_unregister_signal): Remove checks.
 -      (Vdbus_registered_functions_table): Fix doc string.
 -
 -2007-12-05  Magnus Henoch  <mange@freemail.hu>
 -
 -      * process.c (make_process): Initialize pty_flag to 0.
 -
 -2007-12-05  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (xbm_load) [WINDOWSNT]: Shuffle the bits of directly
 -      specified XBMs.
 -
 -2007-12-05  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (syms_of_xdisp) <scroll-conservatively>: Doc fix.
 -
 -2007-12-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (cfsockets_for_select) [MAC_OSX && SELECT_USE_CFSOCKET]:
 -      New variable.
 -      (mac_try_close_socket) [MAC_OSX]: New function.
 -      [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]:
 -      Update cfsockets_for_select.  Replace invalid CFRunLoop source.
 -
 -      * sysdep.c (emacs_close) [MAC_OSX && HAVE_CARBON]:
 -      Use mac_try_close_socket.
 -
 -2007-12-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (unrelocate): New argument BASE.  Use it instead of
 -      reloc_base.
 -      (copy_dysymtab): Compute relocation base here.
 -      (rebase_reloc_address) [__ppc64__]: New function.
 -      (copy_dysymtab) [__ppc64__]: Use it if relocation base needs to be
 -      changed.
 -
 -2007-12-05  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32proc.c (sys_spawnve): Quote args with wildcards.
 -
 -2007-12-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (copy_data_segment): Also copy __gcc_except_tab and
 -      __objc_* sections.
 -      (unrelocate) [_LP64]: Set relocation base to address of data segment.
 -
 -2007-12-05  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (xd_read_message): Return value is a Lisp_Object.
 -      Move check for Vdbus_registered_functions_table to
 -      xd_read_queued_messages.
 -      (xd_read_queued_messages): Protect xd_read_message calls by
 -      internal_condition_case_1.
 -
 -2007-12-04  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * dbusbind.c (QCdbus_system_bus, QCdbus_session_bus): Rename from
 -      Qdbus_system_bus and Qdbus_session_bus, respectively.
 -      (Vdbus_intern_symbols): Remove.
 -      (Vdbus_registered_functions_table): New hash table.
 -      (XD_SYMBOL_INTERN_SYMBOL): Remove.
 -      (xd_read_message, Fdbus_register_signal, Fdbus_unregister_signal):
 -      Rewrite in order to manage registered functions by hash table
 -      Vdbus_registered_functions_table.
 -
 -2007-12-03  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c: Update URL to Window Manager Specification in comment.
 -
 -2007-12-02  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * config.in (HAVE_DBUS): Add.
 -
 -      * Makefile.in (HAVE_DBUS): Add D-Bus definitions if defined.
 -      (ALL_CFLAGS): Add ${DBUS_CFLAGS}.
 -      (obj): Add $(DBUS_OBJ).
 -      (LIBES): Add $(DBUS_LIBS).
 -      (dbusbind.o): New target.
 -
 -      * dbusbind.c: New file.
 -
 -      * emacs.c (main): Call syms_of_dbusbind when HAVE_DBUS is defined.
 -
 -      * keyboard.c: All D-Bus related code is wrapped by "#ifdef HAVE_DBUS".
 -      (Qdbus_event): New Lisp symbol.
 -      (kbd_buffer_get_event, make_lispy_event): Handle DBUS_EVENT.
 -      (gobble_input): Call xd_read_queued_messages, reading D-Bus messages.
 -      (keys_of_keyboard): Define dbus-event.
 -
 -      * termhooks.h (event_kind): Add DBUS_EVENT when HAVE_DBUS is defined.
 -
 -2007-12-01  Richard Stallman  <rms@gnu.org>
 -
 -      * search.c (syms_of_search) <inhibit-changing-match-data>: Doc fix.
 -
 -2007-11-30  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32console.c (w32con_ins_del_lines, scroll_line): Clip to window.
 -      (w32con_reset_terminal_modes): Clear screen buffer.
 -      (w32_face_attributes): Don't use color indexes that are out of range.
 -      Only reverse the default colors.
 -
 -      * xfaces.c (map_tty_color, tty_color_name): Remove special case for
 -      WINDOWSNT.
 -
 -      * w32console.c, w32term.h (vga_stdcolor_name): Remove.
 -
 -2007-11-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32console.c: Leave HAVE_WINDOW_SYSTEM defined.
 -      (w32_face_attributes): Use Vtty_defined_color_alist to determine
 -      if the terminal colors are initialized.
 -      (unspecified_fg, unspecified_bg): Remove unused declarations.
 -
 -2007-11-29  Andreas Schwab  <schwab@suse.de>
 -
 -      * keyboard.c (apply_modifiers): Fix typo.
 -
 -2007-11-29  Richard Stallman  <rms@gnu.org>
 -
 -      * keymap.c (Fcurrent_local_map): Doc fix.
 -
 -2007-11-28  Petr Salinger  <Petr.Salinger@seznam.cz>  (tiny change)
 -
 -      * s/gnu-kfreebsd.h: New file.
 -
 -2007-11-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
 -      Don't cast redundantly.
 -
 -      * keyboard.c (KEY_TO_CHAR): New macro.
 -      (parse_modifiers, apply_modifiers): Accept integer arguments.
 -      (read_key_sequence): Use them to unify the "shift->unshift" mapping
 -      for chars and symbol keys.
 -      After doing such remapping, apply function-key-map again.
 -
 -2007-11-27  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (SOME_MACHINE_LISP): Remove VMS files, they are not
 -      compiled anymore.
 -
 -2007-11-26  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.c (list_processes_1): Fix indentation level of the
 -      command column.
 -
 -2007-11-23  Andreas Schwab  <schwab@suse.de>
 -
 -      * editfns.c (Fformat): Handle %c specially since it requires the
 -      argument to be of type int.
 -
 -2007-11-23  Markus Triska  <markus.triska@gmx.at>
 -
 -      * emacs.c (main): Call init_editfns before init_process, since
 -      init_process sets Vprocess_connection_type depending on OS release.
 -
 -2007-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * data.c (do_symval_forwarding): Use same code as in find_symbol_value.
 -      (find_symbol_value): Use do_symval_forwarding.
 -
 -      * data.c (set_internal): Set the value in the `cons-cell' (for
 -      Buffer_Local_values) not only for frame-local variables.
 -
 -2007-11-22  Andreas Schwab  <schwab@suse.de>
 -
 -      * data.c (Fnumber_to_string): Add cast when passing EMACS_INT
 -      values to sprintf.
 -      * keymap.c (Fsingle_key_description): Likewise.
 -      * print.c (print_object): Likewise.
 -
 -2007-11-22  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Don't call x-gtk-map-stock if
 -      file for image is nil.
 -
 -2007-11-22  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * term.c: Include stdarg.h.
 -      (fatal): Implement using varargs.
 -      * lisp.h (fatal): Add argument types.  (Restore 2005-09-30 change).
 -
 -2007-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (struct Lisp_Buffer_Objfwd): Add a `slottype' field.
 -      * data.c (store_symval_forwarding): Get type from buffer_objfwd.
 -      Update call to buffer_slot_type_mismatch.
 -      * buffer.h (buffer_local_types, PER_BUFFER_TYPE): Remove.
 -      (buffer_slot_type_mismatch): Update.
 -      * buffer.c (buffer_local_types): Remove.
 -      (buffer_slot_type_mismatch): Get the symbol and type as arguments.
 -      (defvar_per_buffer): Set the type in the buffer_objfwd.
 -
 -2007-11-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32bdf.c (w32_init_bdf_font, w32_BDF_to_x_font):
 -      CreateFileMapping returns NULL on failure.
 -
 -2007-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * search.c (Fset_match_data): Remove the `evaporate' feature.
 -      (unwind_set_match_data): Don't use the `evaporate' feature.
 -
 -2007-11-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * dispnew.c (init_display) [WINDOWSNT]: Hardcode terminal_type.
 -
 -      * w32console.c (w32con_write_glyphs): Remove unused variables.
 -
 -2007-11-20  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * macterm.c (mac_term_init): Call add_keyboard_wait_descriptor.
 -
 -      * s/darwin.h (MULTI_KBOARD): Remove.
 -
 -      * macfns.c (x_create_tip_frame, Fx_create_frame)
 -      (x_create_tip_frame): Don't deal with MULTI_KBOARD.
 -
 -2007-11-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fbuffer_local_value): Remove redundant test.
 -      (swap_out_buffer_local_variables): Swap out binding in `buffer' rather
 -      than in `current-buffer' to match the comment.
 -      Do the swap using swap_in_global_binding.
 -
 -      * data.c (store_symval_forwarding, set_internal):
 -      * eval.c (specbind): Remove dead code.
 -
 -      * coding.c (detect_coding, Fupdate_coding_systems_internal):
 -      * fns.c (Fmd5): Use find_symbol_value rather than SYMBOL_VALUE
 -      Since we do not want to see internal Lisp_*fwd objects here.
 -
 -2007-11-18  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * sysdep.c (init_system_name): Use getaddrinfo if available.
 -
 -      * xterm.c (x_scroll_bar_set_handle, x_scroll_bar_handle_click)
 -      (x_scroll_bar_note_movement): start, end, with, height in struct
 -      scroll_bar are integers and not Lisp_Object, so remove XINT for them.
 -
 -2007-11-17  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1190000.
 -
 -2007-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.h (struct buffer): Move `undo_list' back to before `name'.
 -      This undoes Richard's change of 14-Oct-2002.
 -
 -      * alloc.c (allocate_other_vector):
 -      * lisp.h (allocate_other_vector): Remove.
 -
 -      * window.c (struct save_window_data): Move non-lisp data to the end
 -      and make it `int' rather than Lisp_Object.
 -      (Fcurrent_window_configuration): Use ALLOCATE_PSEUDOVECTOR.
 -      Done wrap/unwrap integer values.
 -      (Fset_window_configuration, compare_window_configurations):
 -      Update use of fields to their new types.
 -
 -      * xterm.h (struct scroll_bar): Only use Lisp_Object for lisp data.
 -      Turn integer fields into `int'.  Merge x_window_low and x_window_high.
 -      (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK, SCROLL_BAR_X_WINDOW)
 -      (SET_SCROLL_BAR_X_WINDOW): Remove.
 -      (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
 -      Access the new x_window field directly.
 -      * xterm.c (x_scroll_bar_create): Use a pseudovector.
 -      Don't wrap/unwrap integers into Lisp_Objects.
 -      (XTset_vertical_scroll_bar, x_scroll_bar_handle_click)
 -      (x_scroll_bar_report_motion):
 -      Don't wrap/unwrap integers into Lisp_Objects.
 -      (x_term_init): Use SDATA.
 -      (x_window_to_scroll_bar, x_create_toolkit_scroll_bar)
 -      (x_scroll_bar_set_handle, x_scroll_bar_remove)
 -      (XTset_vertical_scroll_bar, x_scroll_bar_expose)
 -      (x_scroll_bar_report_motion, x_scroll_bar_clear):
 -      * xfns.c (x_set_background_color):
 -      * gtkutil.c (xg_create_scroll_bar, xg_set_toolkit_scroll_bar_thumb):
 -      Access the new x_window field directly.
 -
 -      * alloc.c (ALLOCATE_PSEUDOVECTOR): Move to lisp.h.
 -      (allocate_pseudovector): Make non-static.
 -
 -      * lisp.h (enum pvec_type): New tag PVEC_OTHER.
 -      (allocate_pseudovector): Declare.
 -      (ALLOCATE_PSEUDOVECTOR): Move from alloc.c.
 -
 -2007-11-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * editfns.c (Fformat): Correctly format EMACS_INT values.
 -      Also take precision into account when formatting an integer.
 -
 -      * keyboard.c (Fevent_symbol_parse_modifiers): Fix declaration.
 -
 -2007-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (Fevent_symbol_parse_modifiers): New function.
 -      (syms_of_keyboard): Defsubr it.
 -
 -      * data.c (swap_in_global_binding): Fix longstanding bug where
 -      store_symval_forwarding was not called with the right second argument,
 -      thus causing objfwd-ing from being dropped.
 -
 -2007-11-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * macfns.c (Fx_create_frame, 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_backing_store)
 -      (Fx_display_visual_class, Fx_display_save_under):
 -      * w32fns.c (Fx_create_frame, 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)
 -      (Fw32_select_font, Fx_display_save_under):
 -      * xfns.c (Fx_create_frame, 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_backing_store)
 -      (Fx_display_save_under): Fix typos in docstrings.
 -
 -2007-11-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (Fw32_registered_hot_keys): Don't return the nil values
 -      corresponding to deleted entries; they are an implementation detail.
 -      (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits):
 -      Remove variables.
 -      (w32_pass_extra_mouse_buttons_to_system, w32_strict_fontnames)
 -      (w32_pass_multimedia_buttons_to_system, w32_strict_painting)
 -      (Vw32_charset_info_alist, w32_to_x_color, w32_init_class)
 -      (w32_createscrollbar, w32_createwindow, my_post_msg, w32_get_modifiers)
 -      (w32_grabbed_keys, cancel_all_deferred_msgs): Make static.
 -      (Fw32_define_rgb_color, Fw32_load_color_file)
 -      (syms_of_w32fns) <w32-pass-multimedia-buttons-to-system>:
 -      Fix typos in docstrings.
 -      (Fx_server_version): Reflow docstring.
 -      (Fw32_shell_execute): Doc fixes.
 -
 -2007-11-13  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (Fw32_register_hot_key): Don't try to register hot key
 -      if w32_parse_hot_key returned nil.
 -
 -2007-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (load_overlay_strings): Fix copy&paste typo.
 -
 -2007-11-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * s/ms-w32.c (USE_TOOLKIT_SCROLL_BARS): Define.
 -
 -      * w32term.c (w32_scroll_bar_handle_click): Use SCROLL_BAR_CLICK_EVENT.
 -
 -      * keyboard.c (discard_mouse_events, make_lispy_event) [WINDOWSNT]:
 -      Remove W32_SCROLL_BAR_CLICK_EVENT.
 -
 -      * termhooks.h (enum event_kind) [WINDOWSNT]: Likewise.
 -      Add MULTIMEDIA_KEY_EVENT.
 -
 -      * keyboard.c (lispy_function_keys) [WINDOWSNT]: Add more keys.
 -      (lispy_multimedia_keys) [WINDOWSNT]: New array.
 -      (make_lispy_event) [WINDOWSNT]: Use it to translate
 -      MULTIMEDIA_KEY_EVENT.
 -
 -      * w32term.h (WM_APPCOMMAND): Define if not already.
 -      (GET_APPCOMMAND_LPARAM): Likewise.
 -
 -      * w32term.c (w32_read_socket): Generate MULTIMEDIA_KEY_EVENT from
 -      WM_APPCOMMAND.
 -
 -      * w32fns.c (w32_pass_multimedia_buttons_to_system): New user option.
 -      (syms_of_w32fns): Export and initialize it.
 -      (w32_wnd_proc): Pass WM_APPCOMMAND on to w32_read_socket.
 -
 -2007-11-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispextern.h (struct it): Don't define OVERLAY_STRING_CHUNK_SIZE
 -      twice.
 -
 -      * xdisp.c (handle_face_prop): Fix last change.
 -
 -2007-11-09  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (handle_face_prop): Test for strings that came from overlays,
 -      not just for after-strings and before-strings.
 -      Call face_for_overlay_string and pass the overlay to it.
 -      (handle_display_prop): Determine whether property came from an overlay.
 -      Pass OVERLAY arg to handle_single_display_spec.
 -      (handle_single_display_spec): New arg OVERLAY sets it->from_overlay.
 -      (load_overlay_strings): Fill in it->string_overlays.
 -      (get_overlay_strings_1, push_it, pop_it): Handle it->from_overlays.
 -
 -      * xfaces.c (face_for_overlay_string): Function renamed from
 -      face_at_buffer_position_no_overlays, and add arg OVERLAY.
 -
 -      * dispextern.h (struct it): New elt string_overlays.
 -      New elt from_overlay, also in stack.
 -      Rearrange a few elements.
 -      (face_for_overlay_string): Decl renamed from
 -      face_at_buffer_position_no_overlays, and add argument.
 -
 -2007-11-09  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (handle_face_prop): Use face_at_buffer_position_no_overlays
 -      to get the base face for an overlay string.
 -
 -      * dispextern.h (face_at_buffer_position_no_overlays): Add decl.
 -
 -      * xfaces.c (face_at_buffer_position_no_overlays): New function.
 -
 -      * xdisp.c (handle_stop): Move some code out of loop.
 -
 -2007-11-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c [USE_ATSUI] (Fmac_atsu_font_face_attributes):
 -      Fix conversion from Lisp object to ATSUFontID.
 -
 -2007-11-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * xdisp.c (Fformat_mode_line): Do nothing when noninteractive.
 -
 -2007-11-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (unexec_regions_recorder, unexec_regions_merge):
 -      Don't assume regions are aligned to page boundary.
 -      (print_load_command_name): Add LC_UUID if defined.
 -
 -2007-11-09  Richard Stallman  <rms@gnu.org>
 -
 -      * emacs.c (syms_of_emacs) <installation-directory>: Reflow docstring.
 -
 -2007-11-07  Jason Rumney  <jasonr@gnu.org>
 -
 -      * s/windows95.h: Remove.
 -
 -2007-11-06  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_menu_proxy): Handle GTK_IMAGE_ICON_NAME and
 -      abort with a message on unhandled store_type values.
 -
 -2007-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c, xfns.c, xselect.c, xterm.h, s/msdos.h, s/sco4.h, s/sco5.h:
 -      Remove HAVE_X11R5 and HAVE_X11R4.
 -
 -2007-11-01  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in: Remove references to sunfns.c and sunfns.o.
 -
 -2007-11-01  Johan Bockgård  <bojohan@gnu.org>
 -
 -      * macterm.c, w32term.c, xterm.c (x_draw_stretch_glyph_string):
 -      Don't set s->stippled_p here, since it has already been set by
 -      x_set_glyph_string_gc from x_draw_glyph_string.
 -
 -2007-11-01  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * sunfns.c: Remove file.
 -
 -      * m/sun386.h:
 -      * m/sun2.h:
 -      * m/sparc.h: Remove Sun windows code.
 -
 -2007-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (syms_of_keyboard): Initialize the initial_kboard.
 -      (init_keyboard): Set current_kboard's window-system to nil.
 -      (tty_read_avail_input): Typo.
 -      * frame.c (make_initial_frame): Don't initialize the initial_kboard.
 -
 -2007-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/usg5-4.h:
 -      * s/usg5-3.h:
 -      * s/ptx.h:
 -      * m/is386.h:
 -      * m/ibmps2-aix.h:
 -      * Makefile.in: Remove all mentions of X10.
 -
 -      * dispnew.c (syms_of_display): Don't mention version 10.
 -
 -2007-10-28  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * makefile.w32-in (OBJ1): Remove abbrev.$(O).
 -      ($(BLD)/abbrev.$(O)): Remove.
 -
 -2007-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Rewrite abbrev.c in Elisp.
 -      * image.c (Qcount): Don't declare as extern.
 -      (syms_of_image): Initialize and staticpro `Qcount'.
 -      * puresize.h (BASE_PURESIZE): Increase for the new abbrev.el functions.
 -      * emacs.c (main): Don't call syms_of_abbrev.
 -      * Makefile.in (obj): Remove abbrev.o.
 -      (abbrev.o): Remove.
 -      * abbrev.c: Remove.
 -
 -2007-10-26  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (window_min_size_2): Don't count header-line.
 -
 -2007-10-26  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * frame.h (struct frame): Move all bit fields after the first bit
 -      field to take advantage of the available space.  Group all the
 -      chars together to reduce wasted space due to padding.
 -
 -2007-10-26  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (Fread_minibuffer, Feval_minibuffer): Reflow docstrings.
 -
 -      * alloc.c (spare_memory, stack_copy, stack_copy_size, ignore_warnings)
 -      (Vdead, dont_register_blocks, staticvec, staticidx, interval_block)
 -      (n_interval_blocks, init_strings, check_string_bytes, check_sblock)
 -      (init_float, free_float, n_cons_blocks, init_cons, all_vectors)
 -      (n_vectors, symbol_block, symbol_block_index, symbol_free_list)
 -      (n_symbol_blocks, init_symbol, marker_block, marker_free_list)
 -      (n_marker_blocks, init_marker, valid_pointer_p, make_pure_float)
 -      (last_marked, mark_object_loop_halt): Make static.
 -
 -      * frame.c (syms_of_frame) <delete-frame-functions>:
 -      Fix typo in docstring.
 -
 -2007-10-25  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32.c (init_environment): Fix tiny memory leak.
 -      (w32_get_resource): Remove unused variable `ok'.
 -
 -2007-10-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Make `window-system' into a keyboard-local variable (rather than
 -      frame-local as done originally by multi-tty).
 -
 -      * keyboard.h (struct kboard): Add Vwindow_system.
 -      * keyboard.c (init_kboard): Set a default for Vwindow_system.
 -      (mark_kboards): Mark Vwindow_system.
 -
 -      * dispnew.c (syms_of_display) <window-system>: Declare terminal-local.
 -      (init_display): Don't set the obsolete `window-system' frame-param.
 -
 -      * xterm.c (x_term_init):
 -      * w32term.c (w32_create_terminal):
 -      * term.c (init_tty): Set Vwindow_system.
 -      * macterm.c (mac_create_terminal): Set a keyboard (missing piece of the
 -      multi-tty merge maybe?), copied from w32term.c.  Set Vwindow_system.
 -
 -      * xfns.c (Fx_create_frame, x_create_tip_frame):
 -      * w32fns.c (Fx_create_frame, x_create_tip_frame):
 -      * macfns.c (Fx_create_frame):
 -      Don't set the obsolete `window-system' frame-param.
 -
 -      * frame.h (Qwindow_system): Remove.
 -      * frame.c (Qwindow_system): Remove.  In `syms_of_frame' as well.
 -      (Fmake_terminal_frame): Don't set obsolete `window-system' frame-param.
 -
 -2007-10-24  Richard Stallman  <rms@gnu.org>
 -
 -      * frame.c (x_figure_window_size): For fullscreen case,
 -      set USPosition | PPosition without clobbering rest of window_prompting.
 -
 -      * keyboard.c (Fcurrent_idle_time): Doc fix.
 -
 -      * print.c (Fwith_output_to_temp_buffer): Doc fix.
 -
 -2007-10-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (unwind_request_sigio): Only define if __ultrix__.
 -
 -      * callproc.c (child_setup): Remove spurious *.
 -
 -      * lisp.h (Fget_text_property): Declare.
 -      (have_menus_p): Declare it here rather than in sys-dep header files.
 -      * macterm.h (have_menus_p):
 -      * msdos.h (have_menus_p):
 -      * xterm.h (have_menus_p): Remove.
 -
 -      * data.c (Fmake_variable_buffer_local, Fmake_local_variable)
 -      (Fmake_variable_frame_local): Just check the variable's const-ness
 -      rather than checking nil or t.
 -
 -2007-10-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c: Include math.h.
 -      (w32_abort): Declaration moved to nt/config.nt.
 -
 -      * s/ms-w32.h (HAVE_STDLIB_H): Define.
 -      (abort): Redefinition moved to nt/config.nt.
 -
 -      * m/windowsnt.h: Remove.
 -
 -2007-10-22  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * emacs.c (Fdump_emacs): Fix typo in message.
 -      (syms_of_emacs) <kill-emacs-hook>: Fix typo in docstring.
 -      <installation-directory>: Reflow docstring.
 -
 -2007-10-22  Juri Linkov  <juri@jurta.org>
 -
 -      * minibuf.c: Allow minibuffer default to be a list of default values.
 -      With empty input use the first element of this list as returned default.
 -      (string_to_object)
 -      (read_minibuf_noninteractive): If defalt is cons, set val to its car.
 -      (read_minibuf): If defalt is cons, set histstring to its car.
 -      (Fread_string): If default_value is cons, set val to its car.
 -      (Fread_buffer): If def is cons, use its car.
 -      (Fcompleting_read): If defalt is cons, set val to its car.
 -
 -2007-10-21  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * fileio.c (Fcopy_file): Call file name handler with preserve_uid_gid.
 -
 -2007-10-20  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * doc.c (Fdocumentation): Check for advice in all cases.
 -
 -2007-10-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Makefile.in [HAVE_LIBRESOLV]: Add -lresolv to linker flags.
 -
 -2007-10-19  Richard Stallman  <rms@gnu.org>
 -
 -      * doc.c (Fdocumentation): Check for and handle an advised function.
 -
 -2007-10-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * process.c (Fset_process_filter): Doc fix.
 -
 -2007-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (read_key_sequence): Undo a change introduced by multi-tty
 -      which caused key-translation-map to applied repeatedly (thus breaking
 -      double-mode).
 -
 -2007-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xselect.c (x_own_selection, x_handle_selection_clear)
 -      (x_clear_frame_selections):
 -      * w32menu.c (list_of_panes, list_of_items):
 -      * w32fns.c (w32_color_map_lookup, Fx_create_frame, Fx_display_list):
 -      * textprop.c (validate_plist, interval_has_all_properties)
 -      (interval_has_some_properties, interval_has_some_properties_list)
 -      (add_properties, text_property_list):
 -      * process.c (Fget_buffer_process, list_processes_1, status_notify):
 -      * minibuf.c (Fassoc_string):
 -      * macselect.c (x_own_selection, x_clear_frame_selections)
 -      (Fx_disown_selection_internal):
 -      * keymap.c (Fcommand_remapping, where_is_internal, describe_map_tree):
 -      Use CONSP rather than !NILP and XC[AD]R rather than Fc[ad]r.
 -
 -2007-10-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * process.c: Link to libs for calling res_init() if available.
 -      (Fmake_network_process): Call res_init() before getaddrinfo or
 -      gethostbyname, if possible.
 -
 -2007-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (read1): Set pvectype for char_tables.
 -
 -      * lisp.h (XMISCANY, XMARKER, XINTFWD, XBOOLFWD, XOBJFWD, XOVERLAY)
 -      (XBUFFER_OBJFWD, XBUFFER_LOCAL_VALUE, XKBOARD_OBJFWD, XSAVE_VALUE):
 -      Add type checks.
 -      (SOME_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP): Remove.
 -
 -      * alloc.c (free_misc): Use XMISCTYPE.
 -      (live_misc_p, gc_sweep): Use Lisp_Misc_Any.
 -
 -2007-10-17  Glenn Morris  <rgm@gnu.org>
 -
 -      * minibuf.c (Qcompletion_ignore_case): New Lisp_Object.
 -      (syms_of_minibuf): Add Qcompletion_ignore_case.
 -      * dired.c (Qcompletion_ignore_case): Change to external.
 -      (syms_of_dired) [VMS]: Remove Qcompletion_ignore_case.
 -      * fileio.c (Qcompletion_ignore_case): New external Lisp_Object.
 -      (Fread_file_name): Use it rather than intern'ing.
 -
 -      * coding.c (Qcompletion_ignore_case): New external Lisp_Object.
 -      (Fread_coding_system): Ignore case of user input.
 -
 -2007-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (handle_display_prop): Ignore display specs after
 -      replacing one when string text is being replaced.
 -      (handle_single_display_spec): Pretend as if characters with display
 -      property haven't been consumed only when buffer text is being replaced.
 -
 -2007-10-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xfns.c (Fx_create_frame, Fx_display_list):
 -      * window.c (window_fixed_size_p, enlarge_window)
 -      (shrink_window_lowest_first):
 -      * macterm.c (init_font_name_table):
 -      * macfns.c (Fx_create_frame, Fx_display_list):
 -      * lread.c (close_load_descs):
 -      * keyboard.c (read_char_x_menu_prompt):
 -      * fns.c (Fmember, Fmemql, Fdelete, Fset_char_table_parent):
 -      * coding.c (code_convert_region_unwind): Test the type of an object
 -      rather than just !NILP before extracting data from it.
 -
 -      * alloc.c (Fpurecopy): Set the pvec tag on pseudo vectors.
 -
 -      * lisp.h (enum Lisp_Misc_Type): Del Lisp_Misc_Some_Buffer_Local_Value.
 -      (XMISCANY): New macro.
 -      (XMISCTYPE): Use it.
 -      (struct Lisp_Misc_Any): New type.
 -      (union Lisp_Misc): Use it.
 -      (struct Lisp_Buffer_Local_Value): Add `local_if_set' bit.
 -      * data.c (Fboundp, store_symval_forwarding, swap_in_global_binding)
 -      (find_symbol_value, set_internal, default_value, Fset_default)
 -      (Fmake_variable_buffer_local, Fmake_local_variable)
 -      (Fkill_local_variable, Fmake_variable_frame_local, Flocal_variable_p)
 -      (Flocal_variable_if_set_p, Fvariable_binding_locus):
 -      The SOME_BUFFER_LOCAL_VALUEP distinction is replaced by local_if_set.
 -      * alloc.c (allocate_buffer): Set the size and tag.
 -      (allocate_misc, mark_maybe_object, mark_object, survives_gc_p):
 -      Use XMISCANY.
 -      (die): Follow the GNU convention for error messages.
 -      * print.c (print_object): SOME_BUFFER_LOCAL_VALUEP -> local_if_set.
 -      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Don't set the
 -      tag any more.
 -      (set_buffer_internal_1):
 -      * frame.c (store_frame_param):
 -      * eval.c (specbind):
 -      * xdisp.c (select_frame_for_redisplay): Drop SOME_BUFFER_LOCAL_VALUEP.
 -
 -      * doc.c (Fsnarf_documentation): Simplify.
 -
 -2007-10-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32term.c (w32_font_is_double_byte, my_create_scrollbar): Make static.
 -      (syms_of_w32term) <w32-enable-unicode-output>: Fix typo in docstring.
 -
 -2007-10-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fmake_indirect_buffer): Set the buffer's tag.
 -
 -2007-10-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (do_autoload): Don't save autoloads.
 -
 -      * data.c (Ffset): Save autoload of the function being set.
 -
 -2007-10-07  John Paul Wallington  <jpw@pobox.com>
 -
 -      * xfns.c (x_create_tip_frame): Set the `display-type' frame
 -      parameter before setting up faces.
 -
 -2007-10-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * ccl.c (Fregister_code_conversion_map):
 -      * keyboard.c (append_tool_bar_item): Reformat last change.
 -
 -      * lisp.h (eabs): Rename from `abs'.  All callers changed.
 -
 -2007-10-05  Dmitry Antipov  <dmantipov@yandex.ru>
 -
 -      * buffer.c (add_overlay_mod_hooklist):
 -      * ccl.c (Fregister_ccl_program, Fregister_code_conversion_map):
 -      * fontset.c (make_fontset):
 -      * keyboard.c (GROW_RAW_KEYBUF, menu_bar_items, menu_bar_item)
 -      (append_tool_bar_item):
 -      * macmenu.c (grow_menu_items):
 -      * w32menu.c (grow_menu_items):
 -      * xmenu.c (grow_menu_items): Use larger_vector.
 -
 -2007-10-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (dos_rawgetc): Undo last change (there's no ``leaving
 -      selected frame'' on MSDOS).
 -
 -2007-10-12  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (Qexplicit_name): New variable.
 -      (x_report_frame_params): Report it in parameter alist.
 -      (syms_of_frame): Intern and staticpro it.
 -
 -2007-10-10  Patrick Mahan  <mahan@mahan.org>  (tiny change)
 -
 -      * macfns.c (x_create_tip_frame): Set terminal for frame.
 -
 -2007-10-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.c (Qenvironment): Remove.
 -      (syms_of_frame) <Qenvironment>: Don't initialize.
 -      (Fdelete_frame): Don't treat the `environment' param specially.
 -      * frame.h (Qenvironment): Don't declare.
 -      * callproc.c (set_initial_environment): Don't set unused frame param.
 -
 -      * frame.c (Fframe_with_environment): Remove.
 -      (syms_of_frame) <Sframe_with_environment>: Don't declare.
 -
 -      * lisp.h (Fframe_with_environment): Don't declare.
 -
 -2007-10-10  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * indent.c (indent_tabs_mode, last_known_column)
 -      (last_known_column_modified): Make static.
 -      (syms_of_indent) <indent-tabs-mode>: Remove redundant info in docstring.
 -
 -2007-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1170000.
 -
 -2007-10-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_set_window_size): Disable code that attempts to tell
 -      Lisp code about a size change before it actually happens.
 -
 -2007-10-09  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (handle_invisible_prop): After setting up an ellipsis,
 -      return HANDLED_RETURN.
 -
 -2007-10-08  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * keyboard.c (kbd_buffer_get_event): Break loop waiting for input
 -      when there's an unread command event.
 -
 -      * frame.c (focus_follows_mouse): Move here from frame.el to allow
 -      window autoselection act appropriately when leaving selected frame.
 -      (syms_of_frame): Initialize focus_follows_mouse.
 -      * frame.h (focus_follows_mouse): Extern it.
 -      * macterm.c (XTread_socket): When focus_follows_mouse is nil
 -      make SELECT_WINDOW_EVENT only if we don't leave the selected frame.
 -      * msdos.c (dos_rawgetc): Likewise.
 -      * w32term.c (w32_read_socket): Likewise.
 -      * xterm.c (handle_one_xevent): Likewise.
 -      * xdisp.c (syms_of_xdisp): In doc-string of
 -      mouse-autoselect-window mention focus-follows-mouse.
 -
 -2007-10-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_load_query_font): Fix missing return value.
 -      [USE_CG_DRAWING] (mac_define_fringe_bitmap, mac_destroy_fringe_bitmap):
 -      Add BLOCK_INPUT.
 -
 -2007-10-08  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_window_cursor_type): Implement documented behavior
 -      for cursor-in-non-selected-windows = t.
 -
 -2007-10-08  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (w32_get_resource): Always close registry keys.
 -
 -2007-10-08  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (LIBS): Add COMCTL32.
 +      * Makefile.in ($(etc)/DOC): Make second command line even shorter.
 +      (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
 +      and add some more files.
  
 -      * w32fns.c (globals_of_w32fns): Init common controls.
 +2011-05-20  Eli Zaretskii  <eliz@gnu.org>
  
 -2007-10-08  Richard Stallman  <rms@gnu.org>
 +      * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
 +      report_file_error introduced by the change from 2011-05-07.
  
 -      * image.c (our_memory_buffer): Rename from omfib_buffer.
 +2011-05-20  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2007-10-08  Richard Stallman  <rms@gnu.org>
 +      * systime.h (Time): Define only if emacs is defined.
 +      This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
 +      where the include path doesn't have X11/X.h by default.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
  
 -      * buffer.c (Foverlays_at): Doc fix.
 +2011-05-20 Kenichi Handa  <handa@m17n.org>
  
 -2007-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * composite.c (find_automatic_composition): Fix previous change.
  
 -      * fns.c (Fplist_put): Preserve uneven tail data.
 +2011-05-20  Glenn Morris  <rgm@gnu.org>
  
 -2007-10-08  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
 +      * lisp.mk: New file, split from Makefile.in.
 +      * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
 +      (shortlisp): Remove.
 +      ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
  
 -      * termhooks.h (enum event_kind): Remove trailing comma.
 +2011-05-19  Glenn Morris  <rgm@gnu.org>
  
 -      * frame.h (enum): Remove trailing comma.
 +      * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
 +      (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
 +      (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
 +      (lisp): Set the order to that of loadup.el.
 +      (shortlisp): Make it a copy of $lisp.
 +      (SOME_MACHINE_LISP): Remove.
 +      ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
 +      Use just $shortlisp, not $SOME_MACHINE_LISP too.
  
 -2007-10-08  Dhruva Krishnamurthy  <dhruvakm@gmail.com>  (tiny change)
 +2011-05-18  Kenichi Handa  <handa@m17n.org>
  
 -      * w32proc.c (delete_child): Don't terminate threads of zombies.
 +      * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
 +      (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
 +      (find_automatic_composition): Mostly rewrite for efficiency.
  
 -2007-10-08  Martin Rudalics  <rudalics@gmx.at>
 +2011-05-18  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * keyboard.h (struct kboard): New elt Vlast_repeatable_command.
 -
 -      * keyboard.c (syms_of_keyboard): Set up new Lisp variable
 -      last-repeatable-command.
 -      (init_kboard): Initialize Vlast_repeatable_command.
 -      (command_loop_1): Set it to real_this_command unless that was
 -      bound to an input event.
 -      (mark_kboards): Mark it.
 -
 -2007-10-08  Richard Stallman  <rms@gnu.org>
 -
 -      * eval.c (condition-case): Doc fix.
 -
 -2007-10-08  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xfaces.c (tty_supports_face_attributes_p): Fix code
 -      for LFACE_INVERSE_INDEX and LFACE_BACKGROUND_INDEX; code
 -      was copied and not edited.
 -
 -2007-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      Add new `input-decode-map' keymap and use it for terminal
 -      escape sequences.
 -      * keyboard.h (struct kboard): Add Vinput_decode_map.
 -      Remove Vlocal_key_translation_map.
 -      * keyboard.c (read_key_sequence): Add support for input-decode-map.
 -      (init_kboard): Init input-decode-map.
 -      Replace local-key-translation-map back with key-translation-map.
 -      (syms_of_keyboard): Declare input-decode-map.
 -      Remove local-key-translation-map.  Update docstrings.
 -      (mark_kboards): Mark Vinput_decode_map.
 -      Don't mark Vlocal_key_translation_map.
 -      * keymap.c (Fdescribe_buffer_bindings): Describe input-decode-map.
 -      Replace local-key-translation-map back with key-translation-map.
 -      * term.c (term_get_fkeys_1, CONDITIONAL_REASSIGN):
 -      Bind in input-decode-map rather than function-key-map.
 -
 -      * lisp.h (XSETPSEUDOVECTOR): Don't set the tag anymore.
 -      This was made redundant by the previous introduction of XSETPVECTYPE.
 -
 -2007-10-09  Richard Stallman  <rms@gnu.org>
 -
 -      * image.c (free_bitmap_record): Rename from Free_Bitmap_Record.
 -
 -2007-09-29  Richard Stallman  <rms@gnu.org>
 -
 -      * eval.c (internal_condition_case_2, internal_condition_case_1)
 -      (internal_condition_case): Reenable abort if x_catching_errors ()
 -      to see if that really happens and why.
 -
 -2007-10-06  Andreas Schwab  <schwab@suse.de>
 -
 -      * fileio.c (Fwrite_region): Ignore EINVAL error from fsync.
 -
 -2007-10-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * image.c (syms_of_image) <image-types>: Fix typo in docstring.
 -
 -2007-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.h (struct frame): Don't try to GC-mark menu_bar_items_used.
 -
 -2007-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.h (struct window):
 -      * window.c (struct save_window_data, struct saved_window):
 -      * termhooks.h (struct terminal):
 -      * process.h (struct Lisp_Process):
 -      * frame.h (struct frame):
 -      * buffer.h (struct buffer):
 -      * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table)
 -      (struct Lisp_Bool_Vector, struct Lisp_Subr, struct Lisp_Hash_Table):
 -      The size field of (pseudo)vectors is now unsigned.
 -      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG): Simplify accordingly.
 -
 -      * lisp.h (struct Lisp_Hash_Table): Move non-traced elements at the end.
 -      Turn `count' into an integer.
 -
 -      * fns.c (make_hash_table, hash_put, hash_remove, hash_clear)
 -      (sweep_weak_table, sweep_weak_hash_tables, Fhash_table_count):
 -      * print.c (print_object) <HASH_TABLE_P>: `count' is an int.
 -      * alloc.c (allocate_hash_table): Use ALLOCATE_PSEUDOVECTOR.
 -      (mark_object) <HASH_TABLE_P>: Use mark_vectorlike.
 -
 -      * alloc.c (allocate_pseudovector): New fun.
 -      (ALLOCATE_PSEUDOVECTOR): New macro.
 -      (allocate_window, allocate_terminal, allocate_frame)
 -      (allocate_process): Use it.
 -      (mark_vectorlike): New function.
 -      (mark_object) <FRAMEP, WINDOWP, BOOL_VECTOR_P, VECTORP>: Use it.
 -      (mark_terminals): Use it.
 -      (Fmake_bool_vector, Fmake_char_table, make_sub_char_table)
 -      (Fmake_byte_code): Use XSETPVECTYPE.
 -
 -      * frame.c (Fframe_parameters): Minor simplification.
 -
 -      * insdel.c (adjust_markers_for_insert): Generalize assertion checks.
 -
 -      * marker.c (Fmarker_buffer): Make test for odd case into a failure.
 -
 -      * buffer.c (Fget_buffer_create, init_buffer_once):
 -      * lread.c (defsubr):
 -      * window.c (Fcurrent_window_configuration): Use XSETPVECTYPE.
 -
 -      * lisp.h (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG): Don't let them be
 -      defined differently in the m/*.h files.
 -      (XCHAR_TABLE, XBOOL_VECTOR): Add assertion checking.
 -      (XSETPVECTYPE): New macro.
 -      (XSETPSEUDOVECTOR): Use it.
 -
 -      * buffer.c (syms_of_buffer) <local-abbrev-table>: Move from abbrev.c.
 -      (DEFVAR_PER_BUFFER, defvar_per_buffer): Move from lisp.h and lread.c.
 -
 -      * lisp.h (defvar_per_buffer, DEFVAR_PER_BUFFER):
 -      * lread.c (defvar_per_buffer):
 -      * abbrev.c (syms_of_abbrev) <local-abbrev-tabl>: Move to buffer.c.
 -
 -      * window.c (candidate_window_p): Only consider as visible frames that
 -      are on the same terminal.
 -
 -      * m/ibms390x.h (MARKBIT): Remove unused macro.
 -
 -2007-10-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * lread.c (Fload): Fix typo in docstring.
 -
 -2007-10-01  Michaël Cadilhac  <michael@cadilhac.name>
 -
 -      * floatfns.c (Fexpt): Manually check for overflows, so that a power
 -      of a non-zero value can't yield zero.
 -
 -2007-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * term.c (term_clear_mouse_face, term_mouse_highlight)
 -      (tty_write_glyphs_with_face): Only define is HAVE_GPM.
 -
 -      * print.c (safe_debug_print): Use XHASH.
 -
 -      * lisp.h (DECL_ALIGN, USE_LSB_TAG): Move logic to before definition of
 -      Lisp elements such as tags.
 -      (XHASH): New macro.
 -      (EQ): Use it.
 -      (SREF, SSET, STRING_COPYIN): Use SDATA.
 -      (VOID_TO_LISP, CVOID_TO_LISP, LISP_TO_VOID, LISP_TO_CVOID): Remove.
 -
 -      * alloc.c (mark_terminal): Remove left-over declaration.
 -      (enum mem_type): Replace all vector subtypes -> MEM_TYPE_VECTORLIKE.
 -      (allocate_vectorlike): Remove type argument.  Adjust callers.
 -      (live_vector_p, mark_maybe_pointer, valid_lisp_object_p):
 -      Only handle the one remaining MEM_TYPE_VECTORLIKE.
 -
 -      * alloc.c (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): New macros
 -      to avoid unnecessary BLOCK_INPUTs when SYNC_INPUT is used.
 -      (xmalloc, xrealloc, xfree, lisp_malloc, lisp_free, lisp_align_malloc)
 -      (lisp_align_free, make_interval, allocate_string, allocate_string_data)
 -      (make_float, Fcons, allocate_vectorlike, Fmake_symbol, allocate_misc):
 -      Use them.
 -
 -      * xfaces.c (load_face_font, free_realized_face, clear_face_gcs):
 -      Don't let signal handlers run when a GC is freed but not yet NULL'ed.
 -      (x_free_gc): Remove BLOCK_INPUT since it's now redundant.
 -
 -2007-09-28  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (lisp, shortlisp): Delete server.elc, it is not
 -      loaded by default.
 -
 -2007-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * term.c (Fgpm_mouse_start): Don't signal an error if already activated
 -      on this tty.
 -      (Fgpm_mouse_stop): Only deactivate if it was activated on this tty.
 -
 -      * term.c (mouse_face_window): Rename from Qmouse_face_window.
 -      Update all users.
 -      (handle_one_term_event): Use Gpm_DrawPointer.
 -      (Fgpm_mouse_start): Rename from Fterm_open_connection.
 -      Signal errors instead of returning nil.  Always return nil.
 -      (Fgpm_mouse_stop): Rename from Fterm_close_connection.
 -      Make it a noop if gpm-mouse was not activated.
 -      (syms_of_term): Update names.
 -
 -2007-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * sysdep.c (narrow_foreground_group, widen_foreground_group): Static.
 -      (init_sys_modes): Check that gpm_tty is the current tty.
 -
 -      * alloc.c (allocate_terminal): Set the vector size to only count the
 -      lisp fields.  Initialize those to nil.
 -      (mark_object): Don't treat terminals specially.
 -      (mark_terminal): Remove.
 -      (mark_terminals): Use mark_object instead.
 -
 -      * termhooks.h (struct terminal): Move all Lisp_Object fields traced by
 -      the GC to the beginning.
 -
 -      * indent.h:
 -      * indent.c: Use EMACS_INT for ints coming from Elisp data.
 -
 -      * indent.c (Fmove_to_column): Use EMACS_INT for buffer positions.
 -
 -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>
 +      * makefile.w32-in: Update dependencies.
  
 -      * callproc.c (getenv_internal_1): New function.
 -      (getenv_internal): Use it.
 -      (Fgetenv_internal): Use it.  Accept an env-list as optional arg.
 +2011-05-18  Christoph Scholtes  <cschol2112@googlemail.com>
  
 -      * 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.
 +      * menu.c: Include limits.h (fixes the MS-Windows build broken by
 +      revision 104625).
  
 -      * 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.
 +2011-05-18  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * 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.
 +      Fix some integer overflow issues, such as string length overflow.
  
 -      * 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.
 +      * insdel.c (count_size_as_multibyte): Check for string overflow.
  
 -      * termhooks.h (struct terminal): Make it into a pseudovector.
 -      Remove `deleted' replaced by checking `name's nullness.
 +      * character.c (lisp_string_width): Check for string overflow.
 +      Use EMACS_INT, not int, for string indexes and lengths; in
 +      particular, 2nd arg is now EMACS_INT, not int.  Do not crash if
 +      the resulting string length overflows an EMACS_INT; instead,
 +      report a string overflow if no precision given.  When checking for
 +      precision exhaustion, use a check that cannot possibly have
 +      integer overflow.  (Bug#8675)
 +      * character.h (lisp_string_width): Adjust to new signature.
  
 -      * print.c (print_object): Handle terminals.
 +      * alloc.c (string_overflow): New function.
 +      (Fmake_string): Use it.  This doesn't change behavior, but saves
 +      a few bytes and will simplify future changes.
 +      * character.c (string_escape_byte8): Likewise.
 +      * lisp.h (string_overflow): New decl.
  
 -      * lisp.h (enum pvec_type): New `terminal' pseudovector.
 -      (XTERMINAL, XSETTERMINAL, TERMINALP, GC_TERMINALP): New macros.
 +      Fixups, following up to the user-interface timestamp change.
 +      * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
 +      for UI timestamps, instead of unsigned long.
 +      * msdos.c (mouse_get_pos): Likewise.
 +      * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
 +      * w32gui.h (Time): Define by including "systime.h" rather than by
 +      declaring it ourselves.  (Bug#8664)
  
 -      * 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.
 +      * dispextern.h (struct image): Don't assume time_t <= unsigned long.
 +      * image.c (clear_image_cache): Likewise.
  
 -2007-09-20  Glenn Morris  <rgm@gnu.org>
 +      * term.c (term_mouse_position): Don't assume time_t wraparound.
  
 -      * process.c (Fmake_network_process): Doc fix.
 +      Be more systematic about user-interface timestamps.
 +      Before, the code sometimes used 'Time', sometimes 'unsigned long',
 +      and sometimes 'EMACS_UINT', to represent these timestamps.  This
 +      change causes it to use 'Time' uniformly, as that's what X uses.
 +      This makes the code easier to follow, and makes it easier to catch
 +      integer overflow bugs such as Bug#8664.
 +      * frame.c (Fmouse_position, Fmouse_pixel_position):
 +      Use Time, not unsigned long, for user-interface timestamps.
 +      * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
 +      (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
 +      * keyboard.h (last_event_timestamp): Likewise.
 +      * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
 +      * menu.h (xmenu_show): Likewise.
 +      * term.c (term_mouse_position): Likewise.
 +      * termhooks.h (struct input_event.timestamp): Likewise.
 +      (struct terminal.mouse_position_hook): Likewise.
 +      * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
 +      * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
 +      * systime.h (Time): New decl.  Pull it in from <X11/X.h> if
 +      HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
 +      what it was before.
 +      * menu.h, termhooks.h: Include "systime.h", for Time.
 +
 +      * keyboard.c (make_lispy_event): Fix problem in integer overflow.
 +      Don't assume that the difference between two unsigned long values
 +      can fit into an integer.  At this point, we know button_down_time
 +      <= event->timestamp, so the difference must be nonnegative, so
 +      there's no need to cast the result if double-click-time is
 +      nonnegative, as it should be; check that it's nonnegative, just in
 +      case.  This bug is triggered when events are more than 2**31 ms
 +      apart (about 25 days).  (Bug#8664)
 +
 +      * xselect.c (last_event_timestamp): Remove duplicate decl.
 +      (x_own_selection): Remove needless cast to unsigned long.
 +
 +      * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
 +      that always fit in int.  Use a sentinel instead of a counter, to
 +      avoid a temp and to allay GCC's concerns about possible int overflow.
 +      * frame.h (struct frame): Use int for menu_bar_items_used
 +      instead of EMACS_INT, since it always fits in int.
 +
 +      * menu.c (grow_menu_items): Check for int overflow.
 +
 +      * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
 +
 +      * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
 +      Before, the code was not consistent.  These values cannot exceed
 +      2**31 - 1 so there's no need to make them unsigned.
 +      (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
 +      (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
 +      (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
 +      as modifiers.
 +      * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
 +
 +      * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
 +      (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
 +      Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
 +      presumably because the widths might not match.
 +
 +      * window.c (size_window): Avoid needless test at loop start.
 +
 +2011-05-18  Courtney Bane  <emacs-bugs-7626@cbane.org>  (tiny change)
 +
 +      * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
 +
 +2011-05-12  Drew Adams  <drew.adams@oracle.com>
  
 -2007-09-19  Jason Rumney  <jasonr@gnu.org>
 +      * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
  
 -      * dispextern.h (w32_init_fringe, mac_init_fringe): Declare rif argument.
 +2011-05-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2007-09-19  Michaël Cadilhac  <michael@cadilhac.name>
 +      * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
 +      `width' to `bar_area_x' and `bar_area_width', respectively.
 +      (x_scroll_run): Take account of fringe background extension.
  
 -      * coding.c (detect_eol_type, detect_eol_type_in_2_octet_form):
 -      Fix a C warning regarding variable constness.
 +      * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
 +      Rename local vars `left' and `width' to `bar_area_x' and
 +      `bar_area_width', respectively.
 +      (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
 +      background extension.
  
 -      * xterm.c (handle_one_xevent): Fix a C warning.
 +2011-05-10  Jim Meyering  <meyering@redhat.com>
  
 -2007-09-18  Jason Rumney  <jasonr@gnu.org>
 +      * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
  
 -      * w32fns.c (Fx_focus_frame): Rename from Fw32_focus_frame.
 +2011-05-10  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 +      * image.c (Finit_image_library): Return t for built-in image types,
 +      like pbm and xbm.  (Bug#8640)
  
 -      * 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.
 +2011-05-09  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2007-09-16  Jan Djärv  <jan.h.d@swipnet.se>
 +      * w32menu.c (set_frame_menubar): Fix submenu allocation.
  
 -      * 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.
 +2011-05-07  Eli Zaretskii  <eliz@gnu.org>
  
 -2007-09-16  Andreas Schwab  <schwab@suse.de>
 +      * w32console.c (Fset_screen_color): Doc fix.
 +      (Fget_screen_color): New function.
 +      (syms_of_ntterm): Defsubr it.
  
 -      * alloc.c (reset_malloc_hooks): Set the hooks to the previous
 -      values instead of zapping them.
 +      * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
 +      unlink the temporary file if Fcall_process didn't create it in the
 +      first place.
 +      (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
 +      child process will be redirected to a file specified with `:file'.
 +      Don't try to re-open tempfile in that case, and set fd[0] to -1 as
 +      cue to call_process_cleanup not to close that handle.
  
 -2007-09-14  Glenn Morris  <rgm@gnu.org>
 +2011-05-07  Ben Key  <bkey76@gmail.com>
  
 -      * 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.
 +      * makefile.w32-in: The bootstrap-temacs rule now makes use of
 +      one of two shell specific rules, either bootstrap-temacs-CMD or
 +      bootstrap-temacs-SH.  The bootstrap-temacs-SH rule is identical
 +      to the previous implementation of the bootstrap-temacs rule.
 +      The bootstrap-temacs-CMD rule is similar to the previous
 +      implementation of the bootstrap-temacs rule except that it
 +      makes use of the ESC_CFLAGS variable instead of the CFLAGS
 +      variable.
  
 -2007-09-14  Kenichi Handa  <handa@m17n.org>
 +      These changes, along with some changes to nt/configure.bat,
 +      nt/gmake.defs, and nt/nmake.defs, are required to extend my
 +      earlier fix to add support for --cflags and --ldflags options
 +      that include quotes so that it works whether make uses cmd or
 +      sh as the shell.
  
 -      * xterm.c (handle_one_xevent): Skip decoding if nbytes is zero.
 +2011-05-06  Michael Albinus  <michael.albinus@gmx.de>
  
 -2007-09-13  Jason Rumney  <jasonr@gnu.org>
 +      * dbusbind.c (QCdbus_type_unix_fd): Declare static.
 +      (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
 +      is a constant.
 +      (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
 +      a string.  Handle both cases.
 +      (Fdbus_call_method_asynchronously, Fdbus_register_signal)
 +      (Fdbus_register_method): Use Qinvalid_function.
  
 -      * fringe.c (w32_init_fringe, mac_init_fringe): Add rif argument.
 +2011-05-06  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * w32term.c (w32_term_init): Pass rif to w32_init_fringe.
 +      * makefile.w32-in: Update dependencies.
 +      (LISP_H): Add inttypes.h and stdin.h.
 +      (PROCESS_H): Add unistd.h.
 +
 +2011-05-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * lread.c: Include limits.h (fixes the MS-Windows build broken by
 +      2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
 +
 +2011-05-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
 +
 +      * term.c (vfatal): Remove stray call to va_end.
 +      It's not needed and the C Standard doesn't allow it here anyway.
 +
 +      Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
 +      * eval.c (verror): doprnt a copy of ap, not the original.  (Bug#8545)
 +
 +      * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
 +      bytes.
 +
 +      * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
 +
 +      * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
 +
 +      * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
 +
 +      * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
 +
 +      * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
 +
 +      * charset.h (struct charset.code_space): Now has 15 elements, not 16.
 +      * charset.c (Fdefine_charset_internal): Don't initialize
 +      charset.code_space[15].  The value was garbage, on hosts with
 +      32-bit int (Bug#8600).
  
 -      * macterm.c (mac_initialize): Don't call mac_init_fringe here.
 -      (mac_term_init): Call here instead, passing rif.
 +      * lread.c (read_integer): Be more consistent with string-to-number.
 +      Use string_to_number to do the actual conversion; this avoids
 +      rounding errors and fixes some other screwups.  Without this fix,
 +      for example, #x1fffffffffffffff was misread as -2305843009213693952.
 +      (digit_to_number): Move earlier, for benefit of read_integer.
 +      Return -1 if the digit is out of range for the base, -2 if it is
 +      not a digit in any supported base.  (Bug#8602)
  
 -2007-09-13  Glenn Morris  <rgm@gnu.org>
 +      * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
  
 -      * s/hpux.h: No longer define `static' as nothing.
 +      * dispnew.c (scrolling_window): Return 1 if we scrolled,
 +      to match comment at start of function.  This also removes a
 +      GCC warning about overflow in a 32+64-bit port.
  
 -2007-09-13  Johan Bockgård  <bojohan@gnu.org>
 +      * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
  
 -      * callint.c (Fcall_interactively): Remove unused var `fun'.
 +      * dbusbind.c: Do not use XPNTR on a value that may be an integer.
 +      Reported by Stefan Monnier in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
 +      (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
 +      Use SYMBOLP-guarded XSYMBOL, not XPNTR.
  
 -2007-09-12  Romain Francoise  <romain@orebokech.com>
 +      * lisp.h (EMACS_INTPTR): Remove.  All uses changed to intptr_t.
 +      (EMACS_UINTPTR): Likewise, with uintptr_t.
  
 -      * window.c (prefer_window_split_horizontally, display_buffer):
 -      Revert 2007-09-08 change.
 +      * lisp.h: Prefer 64-bit EMACS_INT if available.
 +      (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
 +      on 32-bit hosts that have 64-bit int, so that they can access
 +      large files.
 +      However, temporarily disable this change unless the temporary
 +      symbol WIDE_EMACS_INT is defined.
  
 -2007-09-12  Glenn Morris  <rgm@gnu.org>
 +      * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
  
 -      * 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.
 +      Prefer intptr_t/uintptr_t for integers the same widths as pointers.
 +      This removes an assumption that EMACS_INT and long are the same
 +      width as pointers.  The assumption is true for Emacs porting targets
 +      now, but we want to make other targets possible.
 +      * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
 +      (EMACS_INTPTR, EMACS_UINTPTR): New macros.
 +      In the rest of the code, change types of integers that hold casted
 +      pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
 +      replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
 +      (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
 +      (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
 +      No need to cast type when ORing.
 +      (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
 +      * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
 +      * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
 +      assume EMACS_INT is the same width as char *.
 +      * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
 +      (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
 +      Remove no-longer-needed casts.
 +      (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
 +      (xg_tool_bar_help_callback, xg_make_tool_item):
 +      Use EMACS_INTPTR to hold an integer
 +      that will be cast to void *; this can avoid a GCC warning
 +      if EMACS_INT is not the same width as void *.
 +      * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
 +      * xdisp.c (display_echo_area_1, resize_mini_window_1):
 +      (current_message_1, set_message_1):
 +      Use a local to convert to proper width without a cast.
 +      * xmenu.c (dialog_selection_callback): Likewise.
  
 -      * Makefile.in (SOURCES, unlock, relock): Delete.
 +      * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
 +      Also, don't assume VALBITS / RAND_BITS is less than 5,
 +      and don't rely on undefined behavior when shifting a 1 left into
 +      the sign bit.
 +      * lisp.h (get_random): Change signature to match.
 +
 +      * lread.c (hash_string): Use size_t, not int, for hash computation.
 +      Normally we prefer signed values; but hashing is special, because
 +      it's better to use unsigned division on hash table sizes so that
 +      the remainder is nonnegative.  Also, size_t is the natural width
 +      for hashing into memory.  The previous code used 'int', which doesn't
 +      retain enough info to hash well into very large tables.
 +      (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
 +
 +      * dbusbind.c: Don't possibly lose pointer info when converting.
 +      (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
 +      Use XPNTR rather than XHASH, so that the high-order bits of
 +      the pointer aren't lost when converting through void *.
 +
 +      * eval.c (Fautoload): Don't double-shift a pointer.
 +
 +      * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
 +
 +2011-05-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * gnutls.c (DEF_GNUTLS_FN):
 +      * image.c (DEF_IMGLIB_FN): Make function pointers static.
 +
 +2011-05-05  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
 +      marker.  (Bug#8610)
 +
 +2011-05-05 Eli Zaretskii  <eliz@gnu.org>
  
 -      * gtkutil.c (cnt): Rename to menu_grab_callback_cnt for clarity.
 -      (menu_grab_callback): All uses changed.
 +      * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
 +      New version that can reserve upto 2GB of heap space.
  
 -      * xselect.c (cnt): Rename to x_reply_selection_request_cnt for clarity.
 -      (x_reply_selection_request): All uses changed.
 +2011-05-05  Chong Yidong  <cyd@stupidchicken.com>
  
 -2007-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
  
 -      * lread.c (load_warn_old_style_backquotes): Change message to look
 -      better when it appears in the middle of byte-compiler messages.
 +2011-05-05  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -2007-09-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
 +      `gnutls_certificate_set_x509_key_file'.
  
 -      * s/darwin.h (MULTI_KBOARD): Only define for Carbon.
 +2011-05-05  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * xterm.c (x_create_terminal): Add comment.
 +      * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
 +      Update dependencies.
  
 -      * term.c (clear_tty_hooks, set_tty_hooks): Add comments.
 +2011-05-04  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-09-10  Richard Stallman  <rms@gnu.org>
 +      * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
 +      * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
 +      Remove unused parameter `fildes'.
 +      * process.c (read_process_output, send_process): Don't pass it.
  
 -      * xterm.c (x_term_init): Give error if can't open DISPLAY_NAME.
 +2011-05-04  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-09-10  Michaël Cadilhac  <michael@cadilhac.name>
 +      Fix previous change: the library cache is defined in w32.c.
 +      * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
 +      (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
  
 -      * lisp.h (struct Lisp_Subr): Rename `prompt' field to `intspec'.
 -      (DEFUN): Document `intspec', use it instead of `prompt'.
 +2011-05-04  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * eval.c (Fcommandp): Change `->prompt' to `->intspec'.
 +      Implement dynamic loading of GnuTLS on Windows.
  
 -      * data.c (Finteractive_form): If the interactive specification starts
 -      with a `(', use it as a Lisp form.
 +      * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
 +      (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
 +      (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
 +      Declare.
  
 -      * fileio.c (Fset_file_modes): Add an interactive spec that reads a file
 -      name and file modes.
 +      * gnutls.c (Qgnutls_dll): Define.
 +      (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
 +      (gnutls_*): Declare function pointers.
 +      (init_gnutls_functions): New function to initialize function pointers.
 +      (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
 +      (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
 +      (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
 +      Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
 +      (emacs_gnutls_write, emacs_gnutls_read)
 +      (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
 +      (Fgnutls_available_p): New function.
 +      (Fgnutls_boot): Call Fgnutls_available_p.  Use function pointers.
 +      (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
 +      (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
  
 -      * callint.c (Fcall_interactively): Comment fixes.
 +      * image.c: Include w32.h.
 +      (Vimage_type_cache): Delete.
 +      (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
 +      (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
 +      (w32_delayed_load): Move to w32.c.
  
 -2007-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
  
 -      * callint.c (Fcall_interactively): Use Finteractive_form also for subrs
 -      and compiled functions.
 +      * w32.c (QCloaded_from, Vlibrary_cache): Define.
 +      (w32_delayed_load): Move from image.c.  When loading a library, record
 +      its filename in the :loaded-from property of the library id.
 +      (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
 +      Initialize and staticpro them.
 +      (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
  
 -2007-09-08  Fredrik Axelsson  <f.axelsson@gmail.com>
 +      * process.c: Include lisp.h before w32.h, not after.
 +      (wait_reading_process_output): Call emacs_gnutls_record_check_pending
 +      instead of gnutls_record_check_pending.
  
 -      * window.c (prefer_window_split_horizontally): New variable.
 -      (display_buffer): Consider splitting window horizontally depending
 -      on prefer_window_split_horizontally.
 +      * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
  
 -2007-09-08  Eli Zaretskii  <eliz@gnu.org>
 +2011-05-04  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * sysdep.c [WINDOWSNT]: Don't include sysselect.h.
 +      * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
 +      instead of :keyfiles.  Give GnuTLS the keylist and the CRL lists
 +      as passed in.
  
 -2007-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-05-03  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * s/cygwin.h (GC_MARK_STACK): Enable conservative stack marking.
 +      * xterm.c (x_set_frame_alpha): Do not set property on anything
 +      else than FRAME_X_OUTER_WINDOW (Bug#8608).
  
 -      * frame.c (x_set_frame_parameters): Check number is positive before
 -      using XFASTINT.
 +2011-05-02  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * 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.
 +      * sysdep.c (get_tty_size) [WINDOWSNT]: Implement.  (Bug#8596)
  
 -2007-09-07  Angelo Graziosi  <Angelo.Graziosi@roma1.infn.it>  (tiny change)
 +2011-05-02  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * term.c (dissociate_if_controlling_tty): Call setsid on CYGWIN.
 +      * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
 +      (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
 +      (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
 +      (gnutls_global_initialized, Qgnutls_bootprop_priority)
 +      (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
 +      (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
 +      (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
 +      (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
 +      (Qgnutls_bootprop_callbacks_verify): Make static.
  
 -2007-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-05-01  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * window.c (Vsplit_window_preferred_function): New var.
 -      (Fdisplay_buffer): Use it.
 -      (syms_of_window): Export, and initialize it.
 +      * callproc.c: Indentation fixup.
  
 -2007-09-06  Pixel  <pixel@mandriva.com>  (tiny change)
 +      * sysdep.c (wait_for_termination_1): Make static.
 +      (wait_for_termination, interruptible_wait_for_termination):
 +      Move after wait_for_termination_1.
  
 -      * image.c (gif_load): Fix bug: Handle nonexistent colormap.
 +2011-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  
 -2007-09-06  Glenn Morris  <rgm@gnu.org>
 +      * sysdep.c (interruptible_wait_for_termination): New function
 +      which is like wait_for_termination, but allows keyboard
 +      interruptions.
  
 -      * gtkutil.c (menu_grab_callback) <cnt>:
 -      * xselect.c (x_reply_selection_request) <cnt>: Move static
 -      variable to file scope.
 +      * callproc.c (Fcall_process): Add (:file "file") as an option for
 +      the STDOUT buffer.
 +      (Fcall_process_region): Ditto.
  
 -2007-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-04-30  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xdisp.c (redisplay_internal): Make sure Elisp code always sees
 -      consistent values of selected_frame and selected_window.
 +      * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
 +      rather than `XVECTOR (FOO)->size'.
  
 -2007-09-04  Jason Rumney  <jasonr@gnu.org>
 +      * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
 +      inttypes.h, as a gnulib replacement is used if it not available in
 +      system headers.
  
 -      * w32console.c (initialize_w32_display): Zero unused hooks.
 +2011-04-21  Eli Zaretskii  <eliz@gnu.org>
  
 -2007-09-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +      Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
 +      * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
 +      of MOST_POSITIVE_FIXNUM.  (Bug#8528)
  
 -      * term.c (Vsuspend_tty_functions, Vresume_tty_functions)
 -      (syms_of_term, Fsuspend_tty, Fresume_tty): Undo previous change.
 +      * coding.c (coding_alloc_by_realloc): Error out if destination
 +      will grow beyond MOST_POSITIVE_FIXNUM.
 +      (decode_coding_emacs_mule): Abort if there isn't enough place in
 +      charbuf for the composition carryover bytes.  Reserve an extra
 +      space for up to 2 characters produced in a loop.
 +      (decode_coding_iso_2022): Abort if there isn't enough place in
 +      charbuf for the composition carryover bytes.
  
 -2007-09-04  Jason Rumney  <jasonr@gnu.org>
 +2011-04-21  Eli Zaretskii  <eliz@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.
 +      * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
 +      aborting when %lld or %lll format is passed.
 +      [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
 +      %llo or %llx format is passed.  (Bug#8545)
  
 -      * s/ms-w32.h (MULTI_KBOARD): Define.
 +      * window.c (window_scroll_line_based): Use a marker instead of
 +      simple variables to record original value of point.  (Bug#7952)
  
 -      * w32console.c (one_and_only_w32cons): Remove.
 -      (initialize_w32_display): Take terminal argument.
 +      * doprnt.c (doprnt): Fix the case where a multibyte sequence
 +      produced by %s or %c overflows available buffer space.  (Bug#8545)
  
 -      * term.c (init_tty) [WINDOWSNT]: Pass terminal to
 -      initialize_w32_display.
 -      (init_tty) [MULTI_KBOARD]: Include this code on WINDOWSNT too.
 +2011-04-28  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * termhooks.h (enum event_kind) <HORIZ_WHEEL_EVENT>: New event.
 +      * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
 +      (SIZE_MAX): Move defn after all includes, as they might #define it.
  
 -      * 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.
 +2011-04-28  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * w32fns.c (w32_wnd_proc) <WM_DROPFILES>: Merge with WM_MOUSEWHEEL.
 -      <WM_MOUSEHWHEEL>: Pass new system message to lisp.
 +      * w32.c (init_environment): Warn about defaulting HOME to C:\.
  
 -      * w32term.h (WM_MOUSEHWHEEL): Define if system headers don't.
 +2011-04-28  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * w32term.c (construct_mouse_wheel): Make HORIZ_WHEEL_EVENT
 -      from WM_MOUSEHWHEEL.
 -      (w32_read_socket) <WM_MOUSEHWHEEL>: Treat as WM_MOUSEWHEEL.
 +      * keyboard.c (Qdelayed_warnings_hook): Define.
 +      (command_loop_1): Run `delayed-warnings-hook'
 +      if Vdelayed_warnings_list is non-nil.
 +      (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
 +      (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
  
 -      * w32fns.c (x_create_tip_frame) [MULTI_KBOARD]: Get keyboard from
 -      terminal.
 +2011-04-28  Eli Zaretskii  <eliz@gnu.org>
  
 -      * w32term.c (w32_create_terminal) [MULTI_KBOARD]: Create a new
 -      keyboard for the terminal.
 +      * doprnt.c (doprnt): Don't return value smaller than the buffer
 +      size if the message was truncated.  (Bug#8545).
  
 -2007-09-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +2011-04-28  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * 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.
 +      * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
 +      (Fx_window_property): #if-0 the whole functions, not just the bodies.
  
 -2007-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-04-27  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * gtkutil.c (update_frame_tool_bar): Handle stock name as a named icon
 -      if it starts with "n:".
 +      * doprnt.c (doprnt): Support "ll" length modifier, for long long.
  
 -2007-08-31  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-04-27  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * gtkutil.c (update_frame_tool_bar): Initialize wbutton to NULL.
 +      * makefile.w32-in: Update dependencies.
  
 -2007-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-04-27  Eli Zaretskii  <eliz@gnu.org>
  
 -      * frame.h:
 -      * frame.c (Qterm_environment_variable): Remove.
 -      (syms_of_frame): Don't init and staticpro it.
 +      Improve `doprnt' and its usage.  (Bug#8545)
 +      * doprnt.c (doprnt): Make sure `format' is never accessed beyond
 +      `format_end'.  Remove support for %l as a conversion specifier.
 +      Don't use xrealloc.  Improve diagnostics when the %l size modifier
 +      is used.  Update the commentary.
  
 -      * callproc.c (getenv_internal): Remove special case for $TERM.
 +      * eval.c (verror): Simplify calculation of size_t.
  
 -      * 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.
 +      * coding.c (Ffind_operation_coding_system): Fix diagnostic error
 +      messages.
  
 -2007-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +2011-04-27  Yoshiaki Kasahara  <kasahara@nc.kyushu-u.ac.jp>  (tiny change)
  
 -      * config.in (HAVE_WINDOW_SYSTEM): Don't undef MULTI_KBOARD here...
 -      * s/darwin.h: ... do it here.
 +      * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
 +      change.
  
 -2007-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-04-27  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * lisp.h (set_initial_environment): Rename from set_global_environment.
 +      * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
 +      This makes this file independent of the recent pseudovector change.
  
 -      * Makefile.in (${etc}DOC): Re-add a ${EXEEXT} which seems to have been
 -      removed by mistake on the multi-tty branch.
 +2011-04-26  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * frame.c (make_terminal_frame): Yet Another Int/Lisp_Object Mixup.
 -      (Fmodify_frame_parameters): Return a value.
 +      * keyboard.c (handle_user_signal): Fix pointer signedness problem.
  
 -      * image.c (png_load): Comment-out var only used in commented-out code.
 +      * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
 +      (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
 +      Remove unused local.
 +      (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
  
 -      * term.c (mark_ttys): Don't bother checking top_frame (incorrectly)
 -      before passing it to mark_object.
 +      * lisp.h: Fix a problem with aliasing and vector headers.  (Bug#8546)
 +      GCC 4.6.0 optimizes based on type-based alias analysis.
 +      For example, if b is of type struct buffer * and v of type struct
 +      Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
 +      != &v->size, and therefore "v->size = 1; b->size = 2; return
 +      v->size;" must therefore return 1.  This assumption is incorrect
 +      for Emacs, since it type-puns struct Lisp_Vector * with many other
 +      types.  To fix this problem, this patch adds a new type struct
 +      vectorlike_header that documents the constraints on layout of vectors
 +      and pseudovectors, and helps optimizing compilers not get fooled
 +      by Emacs's type punning.  It also adds the macros XSETTYPED_PVECTYPE
 +      XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
 +      * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
 +      the size member.
 +      (XSETPVECTYPE): Rewrite in terms of new macro.
 +      (XSETPVECTYPESIZE): New macro, specifying both type and size.
 +      This is a bit clearer, and further avoids the possibility of
 +      undesirable aliasing.
 +      (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
 +      (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
 +      (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
 +      since Lisp_Subr is a special case (no "next" field).
 +      (ASIZE): Now uses header.size rather than size.
 +      All previous uses of XVECTOR (foo)->size replaced to use this macro,
 +      to avoid the hassle of writing XVECTOR (foo)->header.size.
 +      (struct vectorlike_header): New type.
 +      (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
 +      object, to help avoid aliasing.
 +      (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
 +      (SUBRP): Likewise, since Lisp_Subr is a special case.
 +      * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
 +      (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
 +      (struct Lisp_Hash_Table): Combine first two members into a single
 +      struct vectorlike_header member.  All uses of "size" and "next" members
 +      changed to be "header.size" and "header.next".
 +      * buffer.h (struct buffer): Likewise.
 +      * font.h (struct font_spec, struct font_entity, struct font): Likewise.
 +      * frame.h (struct frame): Likewise.
 +      * process.h (struct Lisp_Process): Likewise.
 +      * termhooks.h (struct terminal): Likewise.
 +      * window.c (struct save_window_data, struct saved_window): Likewise.
 +      * window.h (struct window): Likewise.
 +      * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
 +      Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
 +      * buffer.c (init_buffer_once): Likewise.
 +      * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
 +      special case.
 +      * process.c (Fformat_network_address): Use local var for size,
 +      for brevity.
  
 -      * xfaces.c (internal_resolve_face_name): Return a value.
 -      (internal_resolve_face_name, resolve_face_name_error): Comment out.
 +      * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
  
 -      * xfns.c (check_x_display_info): Yet Another Int/Lisp_Object Mixup.
 -      (x_icon): Comment-out var only used in commented-out code.
 +      Make the Lisp reader and string-to-float more consistent (Bug#8525)
 +      * data.c (atof): Remove decl; no longer used or needed.
 +      (digit_to_number): Move to lread.c.
 +      (Fstring_to_number): Use new string_to_number function, to be
 +      consistent with how the Lisp reader treats infinities and NaNs.
 +      Do not assume that floating-point numbers represent EMACS_INT
 +      without losing information; this is not true on most 64-bit hosts.
 +      Avoid double-rounding errors, by insisting on integers when
 +      parsing non-base-10 numbers, as the documentation specifies.
 +      * lisp.h (string_to_number): New decl, replacing ...
 +      (isfloat_string): Remove.
 +      * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
 +      (read1): Do not accept +. and -. as integers; this
 +      appears to have been a coding error.  Similarly, do not accept
 +      strings like +-1e0 as floating point numbers.  Do not report
 +      overflow for integer overflows unless the base is not 10 which
 +      means we have no simple and reliable way to continue.
 +      Break out the floating-point parsing into a new
 +      function string_to_number, so that Fstring_to_number parses
 +      floating point numbers consistently with the Lisp reader.
 +      (digit_to_number): Move here from data.c.  Make it static inline.
 +      (E_CHAR, EXP_INT): Remove, replacing with ...
 +      (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
 +      (string_to_number): New function, replacing isfloat_string.
 +      This function checks for valid syntax and produces the resulting
 +      Lisp float number too.  Rework it so that string-to-number
 +      no longer mishandles examples like "1.0e+".  Use strtoumax,
 +      so that overflow for non-base-10 numbers is reported only when
 +      there's no portable and simple way to convert to floating point.
 +
 +      * textprop.c (set_text_properties_1): Rewrite for clarity,
 +      and to avoid GCC warning about integer overflow.
 +
 +      * intervals.h (struct interval): Use EMACS_INT for members
 +      where EMACS_UINT might cause problems.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
 +      (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
 +      * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
 +      All uses changed.
 +      (offset_intervals): Tell GCC not to worry about length overflow
 +      when negating a negative length.
 +
 +      * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
 +      (overrun_check_free): Likewise.
 +
 +      * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
 +      in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
 +      word size.
 +
 +      * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
 +      (gnutls_make_error): Rename local to avoid shadowing.
 +      (gnutls_emacs_global_deinit): ifdef out; not used.
 +      (Fgnutls_boot): Use const for pointer to readonly storage.
 +      Comment out unused local.  Fix pointer signedness problems.
 +
 +      * lread.c (openp): Don't stuff size_t into an 'int'.
 +      Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
 +      about possible signed overflow.
 +
 +      * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
 +      (GDK_KEY_g): Don't define if already defined.
 +      (xg_prepare_tooltip): Avoid pointer signedness problem.
 +      (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
 +
 +      * process.c (Fnetwork_interface_info): Avoid left-shift undefined
 +      behavior with 1 << 31.  GCC 4.6.0 warns about this on 32-bit hosts.
 +
 +      * xfns.c (Fx_window_property): Simplify a bit,
 +      to make a bit faster and to avoid GCC 4.6.0 warning.
 +      * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
 +
 +      * fns.c (internal_equal): Don't assume size_t fits in int.
 +
 +      * alloc.c (compact_small_strings): Tighten assertion a little.
 +
 +      Replace pEd with more-general pI, and fix some printf arg casts.
 +      * lisp.h (pI): New macro, generalizing old pEd macro to other
 +      conversion specifiers.  For example, use "...%"pI"d..." rather
 +      than "...%"pEd"...".
 +      (pEd): Remove.  All uses replaced with similar uses of pI.
 +      * src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h: Likewise.
 +      * alloc.c (check_pure_size): Don't overflow by converting size to int.
 +      * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
 +      * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
 +      * dbusbind.c (xd_append_arg): Use pI to avoid cast.
 +      (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
 +      * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
 +      64-bit hosts.
 +      (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
 +      * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
 +      * print.c (safe_debug_print, print_object): Likewise.
 +      (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
 +      to int.
 +      Use pI instead of if-then-else-abort.  Use %p to avoid casts,
 +      avoiding the 0 flag, which is not portable.
 +      * process.c (Fmake_network_process): Use pI to avoid cast.
 +      * region-cache.c (pp_cache): Likewise.
 +      * xdisp.c (decode_mode_spec): Likewise.
 +      * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
 +      behavior on 64-bit hosts with printf arg.
 +      * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
 +      (x_stop_queuing_selection_requests): Likewise.
 +      (x_get_window_property): Don't truncate byte count to an 'int'
 +      when tracing.
 +
 +      * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
 +      here, since it parses constructs like leading '-' and spaces,
 +      which are not wanted; and it overflows with large numbers.
 +      Instead, simply match F[0-9]+, which is what is wanted anyway.
 +
 +      * alloc.c: Remove unportable assumptions about struct layout.
 +      (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
 +      (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
 +      (allocate_vectorlike, make_pure_vector): Use the new macros,
 +      plus offsetof, to remove unportable assumptions about struct layout.
 +      These assumptions hold on all porting targets that I know of, but
 +      they are not guaranteed, they're easy to remove, and removing them
 +      makes further changes easier.
 +
 +      * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
 +      This doesn't fix a bug but makes the code clearer.
 +      (string_overrun_cookie): Now const.  Use initializers that
 +      don't formally overflow signed char, to avoid warnings.
 +      (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
 +      can cause Emacs to crash when string overrun checking is enabled.
 +      (allocate_buffer): Don't assume sizeof (struct buffer) is a
 +      multiple of sizeof (EMACS_INT); it need not be, if
 +      alignof(EMACS_INT) < sizeof (EMACS_INT).
 +      (check_sblock, check_string_bytes, check_string_free_list): Protoize.
 +
 +2011-04-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * keyboard.c (QCrtl): Rename from Qrtl.  All uses changed.
 +
 +2011-04-26  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
 +      supposed to be handshaking.  (Bug#8556)
 +      Reported by Paul Eggert <eggert@cs.ucla.edu>.
 +
 +2011-04-26  Daniel Colascione  <dan.colascione@gmail.com>
 +
 +      * lisp.h (Qdebug): List symbol.
 +      * eval.c (Qdebug): Restore global linkage.
 +      * keyboard.c (debug-on-event): New variable.
 +      (handle_user_signal): Break into debugger when debug-on-event
 +      matches the current signal symbol.
 +
 +2011-04-25  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c (check_sblock, check_string_bytes)
 +      (check_string_free_list): Convert to standard C.
 +
 +2011-04-25  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * w32.c (emacs_gnutls_push): Fix typo.
 +
 +2011-04-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
 +      "cast to pointer from integer of different size".
 +
 +      Improve doprnt and its use in verror.  (Bug#8545)
 +      * doprnt.c (doprnt): Document the set of format control sequences
 +      supported by the function.  Use SAFE_ALLOCA instead of always
 +      using `alloca'.
 +
 +      * eval.c (verror): Don't limit the buffer size at size_max-1, that
 +      is one byte too soon.  Don't use xrealloc; instead xfree and
 +      xmalloc anew.
 +
 +2011-04-24  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
 +      callbacks stage.
 +
 +      * gnutls.c: Renamed global_initialized to
 +      gnutls_global_initialized.  Added internals for the
 +      :verify-hostname-error, :verify-error, and :verify-flags
 +      parameters of `gnutls-boot' and documented those parameters in the
 +      docstring.  Start callback support.
 +      (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
 +      unless a fatal error occured. Call gnutls_alert_send_appropriate
 +      on error. Return error code.
 +      (emacs_gnutls_write): Call emacs_gnutls_handle_error.
 +      (emacs_gnutls_read): Likewise.
 +      (Fgnutls_boot): Return handshake error code.
 +      (emacs_gnutls_handle_error): New function.
 +      (wsaerror_to_errno): Likewise.
 +
 +      * w32.h (emacs_gnutls_pull): Add prototype.
 +      (emacs_gnutls_push): Likewise.
  
 -2007-08-29  Romain Francoise  <romain@orebokech.com>
 +      * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
 +      (emacs_gnutls_push): Likewise.
  
 -      * keyboard.c (Fset_input_mode): Don't call `Fset_quit_char' if
 -      QUIT hasn't been provided.
 +2011-04-24  Claudio Bley  <claudio.bley@gmail.com>  (tiny change)
  
 -2007-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * process.c (wait_reading_process_output): Check if GnuTLS
 +      buffered some data internally if no FDs are set for TLS
 +      connections.
  
 -      * callproc.c (child_setup, getenv_internal): Use the
 -      display-environment-variable and term-environment-variable frame params.
 -      (set_initial_environment): Initialise Vprocess_environment.
 +      * makefile.w32-in (OBJ2): Add gnutls.$(O).
 +      (LIBS): Link to USER_LIBS.
 +      ($(BLD)/gnutls.$(0)): New target.
  
 -      * config.in: Disable multi-keyboard support on a mac.
 +2011-04-24  Eli Zaretskii  <eliz@gnu.org>
  
 -      * frame.c (Qterm_environment_variable)
 -      (Qdisplay_environment_variable): New variables.
 -      (syms_of_frame): Intern and staticpro them.
 -      (Fmake_terminal_frame): Disable output method test.
 +      * xdisp.c (handle_single_display_spec): Rename the
 +      display_replaced_before_p argument into display_replaced_p, to
 +      make it consistent with the commentary.  Fix typos in the
 +      commentary.
  
 -      * frame.h: Declare them here.
 +      * textprop.c (syms_of_textprop): Remove dead code.
 +      (copy_text_properties): Delete obsolete commentary about an
 +      interface that was deleted long ago.  Fix typos in the description
 +      of arguments.
  
 -      * 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.
 +      * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
 +      to changes in oldXMenu/XMenu.h from 2011-04-16.
 +      <menu_help_message, prev_menu_help_message>: Constify.
 +      (IT_menu_make_room): menu->help_text is now `const char **';
 +      adjust.
  
 -      * macmenu.c: Reorder includes.
 -      (Fx_popup_menu): Use terminal specific mouse_position_hook.
 +      * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
 +      to changes in oldXMenu/XMenu.h from 2011-04-16.
 +      (struct XMenu): Declare `help_text' `const char **'.
  
 -      * 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.
 +      * xfaces.c <Qunspecified>: Make extern again.
  
 -      * macterm.h (struct mac_display_info): Add terminal.
 -      (mac_initialize): Delete declaration.
 +      * syntax.c: Include sys/types.h before including regex.h, as
 +      required by Posix.
  
 -      * puresize.h (BASE_PURESIZE): Increase base value to 1164000.
 +      * doc.c (get_doc_string): Improve the format passed to `error'.
  
 -      * sysdep.c: Comment out text after #endif.
 +      * doprnt.c (doprnt): Improve commentary.
  
 -      * term.c (init_tty): Only use terminal->kboard when MULTI_KBOARD
 -      is defined.  Better initialize ttys in windows.  Use terminal
 -      specific mouse_position_hook.
 +      * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
  
 -      * termhooks.h (union display_info): Add mac_display_info.
 +      * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
 +      them with etags.
  
 -      * 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.
 +      * makefile.w32-in (globals.h): Add a dummy recipe, to make any
 +      changes in globals.h immediately force recompilation.
 +      (TAGS): Depend on $(CURDIR)/m/intel386.h and
 +      $(CURDIR)/s/ms-w32.h.
 +      (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
  
 -      * w32term.c (w32_initialize): Make static.
 +      * character.c (Fchar_direction): Function deleted.
 +      (syms_of_character): Don't defsubr it.
 +      <char-direction-table>: Deleted.
  
 -      * xselect.c (x_handle_selection_clear): Only access
 -      terminal->kboard when MULTI_KBOARD is defined.
 +2011-04-23  Eli Zaretskii  <eliz@gnu.org>
  
 -      * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
 -      (SYSTEM_PURESIZE_EXTRA): Only define on Carbon.
 +      Fix doprnt so it could be used again safely in `verror'.  (Bug#8435)
 +      * doprnt.c: Include limits.h.
 +      (SIZE_MAX): New macro.
 +      (doprnt): Return a size_t value.  2nd arg is now size_t.
 +      Many local variables are now size_t instead of int or unsigned.
 +      Improve overflow protection.  Support `l' modifier for integer
 +      conversions.  Support %l conversion.  Don't assume an EMACS_INT
 +      argument for integer conversions and for %c.
  
 -2007-08-29  Jason Rumney  <jasonr@gnu.org>
 +      * lisp.h (doprnt): Restore prototype.
  
 -      * frame.c (Fdelete_frame): Only get kboard when MULTI_KBOARD defined.
 -      (make_terminal_frame) [WINDOWSNT]: Initialize terminal.
 +      * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
 +      $(SRC)/character.h.
  
 -      * fringe.c (w32_init_fringe w32_reset_fringes) [HAVE_NTGUI]:
 -      (mac_init_fringe) [MAC_OS]: Get rif from selected_frame.
 +      * Makefile.in (base_obj): Add back doprnt.o.
  
 -      * keyboard.c (restore_kboard_configuration): Only define when
 -      MULTI_KBOARD defined.
 +      * deps.mk (doprnt.o): Add back prerequisites.
 +      (callint.o): Depend on character.h.
  
 -      * makefile.w32-in: Update dependancies from Makefile.in.
 -      (OBJ1): Add terminal.$(O)
 +      * eval.c (internal_lisp_condition_case): Include the handler
 +      representation in the error message.
 +      (verror): Call doprnt instead of vsnprintf.  Fix an off-by-one bug
 +      when breaking from the loop.
  
 -      * term.c (dissociate_if_controlling_tty) [WINDOWSNT]:
 -      Don't define function body.
 -      (init_tty) [WINDOWSNT]: Use selected_frame for initializing.
 +      * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
  
 -      * termhooks.h (display_info) [WINDOWSNT]: Add w32.
 +      * callint.c (Fcall_interactively): When displaying error message
 +      about invalid control letter, pass the character's codepoint, not
 +      a pointer to its multibyte form.  Improve display of the character
 +      in octal and display also its hex code.
  
 -      * w32.c (request_sigio, unrequest_sigio): Remove.
 +      * character.c (char_string): Use %x to display the (unsigned)
 +      codepoint of an invalid character, to avoid displaying a bogus
 +      negative value.
  
 -      * 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.
 +      * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
 +      `error', not SYMBOL_NAME itself.
  
 -      * w32inevt.c, w32inevt.h (w32_console_read_socket): Make first
 -      arg a frame.
 +      * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
 +      character arguments to `error'.
  
 -      * 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.
 +      * charset.c (check_iso_charset_parameter): Fix incorrect argument
 +      to `error' in error message about FINAL_CHAR argument.  Make sure
 +      FINAL_CHAR is a character, and use %c when it is passed as
 +      argument to `error'.
  
 -      * w32menu.c (Fx_popup_menu): Use terminal specific mouse_position_hook.
 +2011-04-23  Eli Zaretskii  <eliz@gnu.org>
  
 -      * 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.
 +      * s/ms-w32.h (localtime): Redirect to sys_localtime.
  
 -      * 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.
 +      * w32.c: Include <time.h>.
 +      (sys_localtime): New function.
  
 -      * xdisp.c (display_menu_bar) [HAVE_NTGUI]: Check frame type.
 +2011-04-23  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Bump to 50k.
 +      * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
  
 -2007-08-29  Kalle Olavi Niemitalo  <kon@iki.fi>  (tiny change)
 +      * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
  
 -      * keyboard.c (interrupt_signal, handle_interrupt, Fset_quit_char):
 -      Fix get_named_tty calls for the controlling tty.
 +2011-04-23  Samuel Thibault  <sthibault@debian.org>  (tiny change)
  
 -2007-08-29  ARISAWA Akihiro  <ari@mbf.ocn.ne.jp>  (tiny change)
 +      * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
 +      zombies (Bug#8467).
  
 -      * term.c (dissociate_if_controlling_tty) [USG]: Fix parse error.
 +2011-04-19  Eli Zaretskii  <eliz@gnu.org>
  
 -2007-08-29  Yoshiaki Kasahara  <kasahara@nc.kyushu-u.ac.jp>  (tiny change)
 +      * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
 +      gl_state.e_property when gl_state.object is Qt.
  
 -      * term.c (tty_insert_glyphs): Add missing first parameter.
 +      * insdel.c (make_gap_larger): Remove limitation of buffer size
 +      to <= INT_MAX.
  
 -2007-08-29  Károly Lőrentey  <karoly@lorentey.hu>
 +2011-04-18  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * buffer.c (Fbuffer_list, Fbury_buffer):
 -      Take frame->buried_buffer_list into account.
 +      * xdisp.c (lookup_glyphless_char_display)
 +      (produce_glyphless_glyph): Handle cons cell entry in
 +      glyphless-char-display.
 +      (Vglyphless_char_display): Document it.
  
 -      * 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().
 +      * term.c (produce_glyphless_glyph): Handle cons cell entry in
 +      glyphless-char-display.
  
 -      * 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.
 +2011-04-17  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * 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.
 +      * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
  
 -      * 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.
 +      * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
  
 -      * keymap.h (Fset_keymap_parent): Add EXFUN.
 +      * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
 +      definition for no-X builds.
  
 -      * macterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
 -      * w32term.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL):
 -      Remove redundant definition.
 +2011-04-16  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * macfns.c (x_set_mouse_color, x_make_gc):
 -      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
 +      Static checks with GCC 4.6.0 and non-default toolkits.
  
 -      * w32term.c (x_free_frame_resources):
 -      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
 -      (w32_initialize): Use the accessor macros for terminal characteristics.
 +      * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
  
 -      * 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.
 +      * process.c (keyboard_bit_set): Define only if SIGIO.
 +      (send_process_trap): Mark it with NO_RETURN if it doesn't return.
 +      (send_process): Repair possible setjmp clobbering.
  
 -      * termopts.h (no_redraw_on_reenter): Declare.
 +      * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
  
 -      * alloc.c (emacs_blocked_malloc): Disable mallopt call.
 -      (mark_terminals, mark_ttys): Declare.
 -      (Fgarbage_collect): Call them.
 -      (mark_object): Mark buried_buffer_list.
 +      * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
  
 -      * prefix-args.c: Include stdlib.h for exit.
 +      * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
  
 -      * syssignal.h: Add comment.
 +      * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
 +      Define only if needed.
  
 -      * indent.c: Include stdio.h.
 +      * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
 +      by pacifying GCC about it.  Maybe it's time to retire it?
 +      * xfaces.c (USG, __TIMEVAL__): Likewise.
  
 -      * window.h (Vinitial_window_system): Declare.
 -      (Vwindow_system): Delete declaration.
 +      * dispextern.h (struct redisplay_interface): Rename param
 +      to avoid shadowing.
 +      * termhooks.h (struct terminal): Likewise.
 +      * xterm.c (xembed_send_message): Likewise.
  
 -      * fontset.c (Finternal_char_font): Use FRAME_RIF.
 +      * insdel.c (make_gap_smaller): Define only if
 +      USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
  
 -      * image.c (lookup_image): Don't initialize `c' until the xasserts
 -      have been run.
 +      * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
 +      it.
  
 -      * gtkutil.c (xg_create_frame_widgets): Use FRAME_BACKGROUND_PIXEL and
 -      FRAME_FOREGROUND_PIXEL.
 +      * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
 +      so that we aren't warned about unused symbols.
  
 -      * print.c (print_preprocess): Don't lose print_depth levels while
 -      iterating.
 +      * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
  
 -      * widget.c (update_from_various_frame_slots):
 -      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
 +      * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
  
 -      * 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.
 +      * xfns.c (x_real_positions): Mark locals as initialized.
  
 -      * fileio.c (Fread_file_name): Update comment.
 +      * xmenu.c (xmenu_show): Don't use uninitialized vars.
  
 -      * 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.
 +      * xterm.c: Fix problems found by static analysis with other toolkits.
 +      (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
 +      (x_dispatch_event): Declare static if USE_GTK, and
 +      define if USE_GTK || USE_X_TOOLKIT.
 +      (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
 +      * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
 +      * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
 +      if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
  
 -      * 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: Include termchar.h.
 -      (Qterminal, Qterminal_live_p, Qburied_buffer_list, Qtty, Qtty_type)
 -      (Qwindow_system, Qenvironment, Qterm_environment_variable)
 -      (Qdisplay_environment_variable): New vars.
 -      (Fframep): Deal with output_initial.
 -      (Fframe-live-p): Doc fix.
 -      (Fwindow-system): New function.
 -      (x_set_screen_gamma, store_frame_param): Fix compilation errors.
 -      (make_terminal_frame): Don't create frames on a terminal that is
 -      being deleted.  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'.  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ärv  <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.
 +      * xmenu.c (menu_help_callback): Pointer type fixes.
 +      Use const pointers when pointing at readonly data.  Avoid pointer
 +      signedness clashes.
 +      (FALSE): Remove unused macro.
 +      (update_frame_menubar): Remove unused decl.
  
 -2007-08-24  Jason Rumney  <jasonr@gnu.org>
 +      * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
  
 -      * 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.
 +      * menu.c (push_submenu_start, push_submenu_end): Do not define unless
 +      USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
 +      (single_menu_item): Rename local to avoid shadowing.
  
 -2007-08-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * keyboard.c (make_lispy_event): Remove unused local var.
  
 -      * 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).
 +      * frame.c, frame.h (x_get_resource_string): Bring this back, but
 +      only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
  
 -      * image.c (svg_load_image): Blend with specified background if exists.
 -      Use IMAGE_BACKGROUND.  Add Mac OS Support.
 +      * bitmaps: Change bitmaps from unsigned char back to the X11
 +      compatible char.  Avoid the old compiler warnings about
 +      out-of-range initializers by using, for example, '\xab' rather
 +      than 0xab.
  
 -      * 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.
 +      * xgselect.c (xgselect_initialize): Check vs interface
 +      even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
  
 -2007-08-22  Glenn Morris  <rgm@gnu.org>
 +      * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
  
 -      * image.c (x_find_image_file): Search in etc/images/ rather than etc/.
 +      * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
 +      to read-only memory.
  
 -2007-08-22  Paul Pogonyshev  <pogonyshev@gmx.net>
 +      * fns.c (vector): Remove; this old hack is no longer needed.
  
 -      * Makefile.in (ALL_CFLAGS, LIBX): Add RSVG_LIBS.
 +      * xsmfns.c (create_client_leader_window): Rename shadowing arg.
 +      Remove unused var.
 +      (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
  
 -      * 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.
 +      * xrdb.c (x_load_resources): Omit unused local.
  
 -2007-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
 +      (x_window): Rename locals to avoid shadowing.
 +      (USG): Use the kludged USG macro, to pacify gcc.
  
 -      * lread.c (load_warn_old_style_backquotes): Fix up array size typo.
 +      * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
 +      (x_term_init): Remove local to avoid shadowing.
  
 -2007-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
  
 -      * 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.
 +      * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
 +      USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
  
 -      * lisp.h (Fclear_face_cache, Fx_send_client_event): Declare.
 +2011-04-16  Eli Zaretskii  <eliz@gnu.org>
  
 -      * 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.
 +      * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
  
 -2007-08-22  Jason Rumney  <jasonr@gnu.org>
 +      Fix regex.c, syntax.c and friends for buffers > 2GB.
 +      * syntax.h (struct gl_state_s): Declare character position members
 +      EMACS_INT.
  
 -      * w32reg.c (SYSTEM_DEFAULT_RESOURCES): Add missing NULL terminator.
 +      * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
  
 -2007-08-22  Katsumi Yamaoka  <yamaoka@jpl.org>
 +      * textprop.c (verify_interval_modification, interval_of):
 +      Declare arguments EMACS_INT.
  
 -      * puresize.h (BASE_PURESIZE): Increase to 1140000.
 +      * intervals.c (adjust_intervals_for_insertion): Declare arguments
 +      EMACS_INT.
  
 -2007-08-19  Richard Stallman  <rms@gnu.org>
 +      * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
  
 -      * eval.c (Ffunction, Fquote): Signal error if not 1 argument.
 +      * indent.c (Fvertical_motion): Local variable it_start is now
 +      EMACS_INT.
  
 -2007-08-19  Andreas Schwab  <schwab@suse.de>
 +      * regex.c (re_match, re_match_2, re_match_2_internal)
 +      (bcmp_translate, regcomp, regexec, print_double_string)
 +      (group_in_compile_stack, re_search, re_search_2, regex_compile)
 +      (re_compile_pattern, re_exec): Declare arguments and local
 +      variables `size_t' and `ssize_t' and return values `regoff_t', as
 +      appropriate.
 +      (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
 +      (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
 +      <compile_stack_type>: `size' and `avail' are now `size_t'.
  
 -      * alloc.c (pure): Round PURESIZE up.
 +      * regex.h <regoff_t>: Use ssize_t, not int.
 +      (re_search, re_search_2, re_match, re_match_2): Arguments that
 +      specify buffer/string position and length are now ssize_t and
 +      size_t.  Return type is regoff_t.
  
 -2007-08-17  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-04-16  Ben Key  <bkey76@gmail.com>
  
 -      * xterm.c (handle_one_xevent): Remove check that mouse click is in
 -      active frame.
 +      * nsfont.m: Fixed bugs in ns_get_family and
 +      ns_descriptor_to_entity that were caused by using free to
 +      deallocate memory blocks that were allocated by xmalloc (via
 +      xstrdup).  This caused Emacs to crash when compiled with
 +      XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
 +      --enable-checking=xmallocoverrun).  xfree is now used to
 +      deallocate these memory blocks.
 +
 +2011-04-15  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
 +
 +      emacs_write: Accept and return EMACS_INT for sizes.
 +      See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
 +      et seq.
 +      * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
 +      Accept and return EMACS_INT.
 +      (emacs_gnutls_write): Return the number of bytes written on
 +      partial writes.
 +      * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
 +      (emacs_read, emacs_write): Remove check for negative size, as the
 +      Emacs source code has been audited now.
 +      * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
 +      (emacs_read, emacs_write): Use it.
 +      * process.c (send_process): Adjust to the new signatures of
 +      emacs_write and emacs_gnutls_write.  Do not attempt to store
 +      a byte offset into an 'int'; it might overflow.
 +      See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
 +
 +      * sound.c: Don't assume sizes fit in 'int'.
 +      (struct sound_device.period_size, alsa_period_size):
 +      Return EMACS_INT, not int.
 +      (struct sound_device.write, vox_write, alsa_write):
 +      Accept EMACS_INT, not int.
 +      (wav_play, au_play): Use EMACS_INT to store sizes and to
 +      record read return values.
 +
 +2011-04-15  Ben Key  <bkey76@gmail.com>
 +
 +      * keyboard.c (Qundefined): Don't declare static since it is used
 +      in nsfns.m.
 +      * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
 +      static since they are used in nsfont.m.
 +
 +2011-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * process.c (Qprocessp): Don't declare static.
 +      * lisp.h (Qprocessp): Declare again.
 +
 +2011-04-15  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
 +
 +2011-04-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve C-level modularity by making more things 'static'.
 +
 +      Don't publish debugger-only interfaces to other modules.
 +      * lisp.h (safe_debug_print, debug_output_compilation_hack):
 +      (verify_bytepos, count_markers): Move decls to the only modules
 +      that need them.
 +      * region-cache.h (pp_cache): Likewise.
 +      * window.h (check_all_windows): Likewise.
 +      * marker.c, print.c, region-cache.c, window.c: Decls moved here.
 +
 +      * sysdep.c (croak): Now static, if
 +      defined TIOCNOTTY || defined USG5 || defined CYGWIN.
 +      * syssignal.h (croak): Declare only if not static.
 +
 +      * alloc.c (refill_memory_reserve): Now static if
 +      !defined REL_ALLOC || defined SYSTEM_MALLOC.
 +      * lisp.h (refill_memory_reserve): Declare only if not static.
 +
 +      * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
 +      Define only if USE_LUCID.
 +
 +      * xrdb.c (x_customization_string, x_rm_string): Now static.
 +
 +      * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
 +      * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
 +
 +      * xdisp.c (draw_row_with_mouse_face): Now static.
 +      * dispextern.h (draw_row_with_mouse_fave): Remove decl.
 +
 +      * window.h (check_all_windows): Mark externally visible.
 +
 +      * window.c (window_deletion_count): Now static.
 +
 +      * undo.c: Make symbols static if they're not exported.
 +      (last_undo_buffer, last_boundary_position, pending_boundary):
 +      Now static.
  
 -2007-08-16  Richard Stallman  <rms@gnu.org>
 +      * textprop.c (interval_insert_behind_hooks): Now static.
 +      (interval_insert_in_front_hooks): Likewise.
 +
 +      * term.c: Make symbols static if they're not exported.
 +      (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
 +      (max_frame_lines, tty_set_terminal_modes):
 +      (tty_reset_terminal_modes, tty_turn_off_highlight):
 +      (get_tty_terminal): Now static.
 +      (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
 +      * termhooks.h (term_mouse_moveto): Do not declare if
 +      HAVE_WINDOW_SYSTEM.
 +      * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
 +      (tty_turn_off_highlight, get_tty_terminal): Remove decls.
 +
 +      * sysdep.c: Make symbols static if they're not exported.
 +      (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
 +      Now static.
 +      (sigprocmask_set, full_mask): Remove; unused.
 +      (wait_debugging): Mark as visible.
 +      * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
 +      * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
 +
 +      * syntax.c (syntax_temp): Define only if !__GNUC__.
 +
 +      * sound.c (current_sound_device, current_sound): Now static.
 +
 +      * search.c (searchbufs, searchbuf_head): Now static.
 +
 +      * scroll.c (scroll_cost): Remove; unused.
 +      * dispextern.h (scroll_cost): Remove decl.
 +
 +      * region-cache.h (pp_cache): Mark as externally visible.
 +
 +      * process.c: Make symbols static if they're not exported.
 +      (process_tick, update_tick, create_process, chan_process):
 +      (Vprocess_alist, proc_buffered_char, datagram_access):
 +      (fd_callback_data, send_process_frame, process_sent_to): Now static.
 +      (deactivate_process): Mark defn as static, as well as decl.
 +      * lisp.h (create_process): Remove decl.
 +      * process.h (chan_process, Vprocess_alist): Remove decls.
 +
 +      * print.c: Make symbols static if they're not exported.
 +      (print_depth, new_backquote_output, being_printed, print_buffer):
 +      (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
 +      (print_interval, print_number_index, initial_stderr_stream):
 +      Now static.
 +      * lisp.h (Fprinc): Remove decl.
 +      (debug_output_compilation_hack): Mark as externally visible.
 +
 +      * sysdep.c (croak): Move decl from here to syssignal.h.
 +      * syssignal.h (croak): Put it here, so the API can be checked when
 +      'croak' is called from dissociate_if_controlling_tty.
 +
 +      * minibuf.c: Make symbols static if they're not exported.
 +      (minibuf_save_list, choose_minibuf_frame): Now static.
 +      * lisp.h (choose_minibuf_frame): Remove decl.
 +
 +      * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
 +
 +      * lread.c: Make symbols static if they're not exported.
 +      (read_objects, initial_obarray, oblookup_last_bucket_number):
 +      Now static.
 +      (make_symbol): Remove; unused.
 +      * lisp.h (initial_obarray, make_symbol): Remove decls.
 +
 +      * keyboard.c: Make symbols static if they're not exported.
 +      (single_kboard, recent_keys_index, total_keys, recent_keys):
 +      (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
 +      (this_single_command_key_start, echoing, last_auto_save):
 +      (read_key_sequence_cmd, dribble, recursive_edit_unwind):
 +      (command_loop, echo_now, keyboard_init_hook, help_char_p):
 +      (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
 +      (Vlispy_mouse_stem, double_click_count):
 +      Now static.
 +      (force_auto_save_soon): Define only if SIGDANGER.
 +      (ignore_mouse_drag_p): Now static if
 +      !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
 +      (print_help): Remove; unused.
 +      (stop_character, last_timer_event): Mark as externally visible.
 +      * keyboard.h (ignore_mouse_drag_p): Declare only if
 +      defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
 +      (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
 +      * lisp.h (echoing): Remove decl.
 +      (force_auto_save_soon): Declare only if SIGDANGER.
 +      * xdisp.c (redisplay_window): Simplify code, to make it more
 +      obvious that ignore_mouse_drag_p is not accessed if !defined
 +      USE_GTK && !defined HAVE_NS.
 +
 +      * intervals.c: Make symbols static if they're not exported.
 +      (merge_properties_sticky, merge_interval_right, delete_interval):
 +      Now static.
 +      * intervals.h (merge_interval_right, delete_interval): Remove decls.
 +
 +      * insdel.c: Make symbols static if they're not exported.
 +      However, leave prepare_to_modify_buffer alone.  It's never
 +      called from outside this function, but that appears to be a bug.
 +      (combine_after_change_list, combine_after_change_buffer):
 +      (adjust_after_replace, signal_before_change): Now static.
 +      (adjust_after_replace_noundo): Remove; unused.
 +      * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
 +      (signal_before_change): Remove decls.
 +
 +      * indent.c (val_compute_motion, val_vmotion): Now static.
 +
 +      * image.c: Make symbols static if they're not exported.
 +      * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
 +      if USE_GTK.
 +      * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
 +      (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
 +
 +      * fringe.c (standard_bitmaps): Now static.
 +      (max_used_fringe_bitmap): Now static, unless HAVE_NS.
 +
 +      * frame.c: Make symbols static if they're not exported.
 +      (x_report_frame_params, make_terminal_frame): Now static.
 +      (get_frame_param): Now static, unless HAVE_NS.
 +      (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
 +      (x_get_resource_string): Remove; not used.
 +      * frame.h (make_terminal_frame, x_report_frame_params):
 +      (x_get_resource_string); Remove decls.
 +      (x_fullscreen_adjust): Declare only if WINDOWSNT.
 +      * lisp.h (get_frame_param): Declare only if HAVE_NS.
 +
 +      * font.c, fontset.c: Make symbols static if they're not exported.
 +      * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
 +      (FACE_SUITABLE_FOR_CHAR_P): Use it.
 +      * font.c (font_close_object): Now static.
 +      * font.h (font_close_object): Remove.
 +      * fontset.c (FONTSET_OBJLIST): Remove.
 +      (free_realized_fontset) #if-0 the body, which does nothing.
 +      (face_suitable_for_char_p): #if-0, as it's never called.
 +      * fontset.h (face_suitable_for_char_p): Remove decl.
 +      * xfaces.c (face_at_string_position):
 +      Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
 +      since 0 is always ASCII.
 +
 +      * fns.c (weak_hash_tables): Now static.
 +
 +      * fileio.c: Make symbols static if they're not exported.
 +      (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
 +      (Vwrite_region_annotation_buffers): Now static.
 +
 +      * eval.c: Make symbols static if they're not exported.
 +      (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
 +      * lisp.h (backtrace_list): Remove decl.
 +
 +      * emacs.c: Make symbols static if they're not exported.
 +      (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
 +      (fatal_error_code, fatal_error_signal_hook, standard_args):
 +      Now static.
 +      (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
 +      (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
 +      (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
 +      * lisp.h (fatal_error_signal_hook): Remove decl.
 +      (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
 +
 +      * editfns.c: Move a (normally-unused) function to its only use.
 +      * editfns.c, lisp.h (get_operating_system_release): Remove.
 +      * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
 +      worth the hassle of breaking this out.
 +
 +      * xterm.c: Make symbols static if they're not exported.
 +      (x_raise_frame, x_lower_frame, x_wm_set_window_state):
 +      (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
 +      (x_destroy_window, x_delete_display):
 +      Now static.
 +      (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
 +      (x_mouse_leave): Remove; unused.
 +      * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
 +      (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
 +      (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
 +      Remove decls.
 +      (x_mouse_leave): Declare only if WINDOWSNT.
 +      (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
 +      (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
 +      USE_X_TOOLKIT.
 +
 +      * ftxfont.c: Make symbols static if they're not exported.
 +      (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
 +      HAVE_FREETYPE.
 +      * font.h (ftxfont_driver): Likewise.
 +
 +      * xfns.c: Make symbols static if they're not exported.
 +      (x_last_font_name, x_display_info_for_name):
 +      (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
 +      (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
 +      (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
 +      (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
 +      (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
 +      (last_show_tip_args): Now static.
 +      (xic_defaut_fontset, xic_create_fontsetname): Define only if
 +      defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
 +      (x_screen_planes): Remove; unused.
 +      * dispextern.h (x_screen_planes): Remove decl.
 +
 +      * dispnew.c: Make symbols static if they're not exported.
 +      * dispextern.h (redraw_garbaged_frames, scrolling):
 +      (increment_row_positions): Remove.
 +      * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
 +      (delayed_size_change, glyph_matrix_count, glyph_pool_count):
 +      Now static.
 +      (redraw_garbaged_frames): Remove; unused.
 +
 +      * xfaces.c: Make symbols static if they're not exported.
 +      * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
 +      Remove decls.
 +      * xterm.h (defined_color): Remove decls.
 +      (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
 +      * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
 +      (menu_face_changed_default, defined_color, free_realized_face):
 +      (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
 +      (ascii_face_of_lisp_face): Remove; unused.
 +
 +      * xdisp.c: Make symbols static if they're not exported.
 +      * dispextern.h (scratch_glyph_row, window_box_edges):
 +      (glyph_to_pixel_coords, set_cursor_from_row):
 +      (get_next_display_element, set_iterator_to_next):
 +      (highlight_trailing_whitespace, frame_to_window_pixel_xy):
 +      (show_mouse_face): Remove decls
 +      * frame.h (message_buf_print): Likewise.
 +      * lisp.h (pop_message, set_message, check_point_in_composition):
 +      Likewise.
 +      * xterm.h (set_vertical_scroll_bar): Likewise.
 +      * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
 +      (message_buf_print, scratch_glyph_row, displayed_buffer):
 +      (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
 +      (get_next_display_element, show_mouse_face, window_box_edges):
 +      (frame_to_window_pixel_xy, check_point_in_composition):
 +      (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
 +      (glyph_to_pixel_coords): Remove; unused.
 +
 +      * dired.c (file_name_completion): Now static.
 +
 +      * dbusbind.c (xd_in_read_queued_messages): Now static.
 +
 +      * lisp.h (circular_list_error, FOREACH): Remove; unused.
 +      * data.c (circular_list_error): Remove.
 +
 +      * commands.h (last_point_position, last_point_position_buffer):
 +      (last_point_position_window): Remove decls.
 +      * keyboard.c: Make these variables static.
 +
 +      * coding.h (coding, code_convert_region, encode_coding_gap):
 +      Remove decls.
 +      * coding.c (Vsjis_coding_system, Vbig5_coding_system):
 +      (iso_code_class, detect_coding, code_convert_region): Now static.
 +      (encode_coding_gap): Remove; unused.
 +
 +      * chartab.c (chartab_chars, chartab_bits): Now static.
 +
 +      * charset.h (charset_iso_8859_1): Remove decl.
 +      * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
 +      Now static.
 +
 +      * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
 +      * ccl.c (Vccl_program_table): Now static.
 +      (check_ccl_update): Remove; unused.
 +
 +      * category.c (SET_CATEGORY_SET, set_category_set): Move here.
 +      * category.h: ... from here.
 +      * category.c (check_category_table, set_category_set): Now static.
 +
 +      * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
 +      * lisp.h: Remove these decls.
 +
 +      * buffer.c (buffer_count): Remove unused var.
 +
 +      * bidi.c (bidi_dump_cached_states): Mark as externally visible,
 +      so that it's not optimized away.
 +      (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
 +      * dispextern.h (bidi_dump_cached_states): Remove, since it's
 +      exported only to the debugger.
 +
 +      * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
 +      * atimer.h (run_all_atimers): Remove; not exported.
 +
 +      font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
 +      * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
 +      was inaccessible from Lisp.
 +      (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
 +      * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
 +
 +      alloc.c: Import and export fewer symbols, and remove unused items.
 +      * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
 +      is defined.
 +      (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
 +      it's not optimized away by whole-program optimization.
 +      (message_enable_multibyte, free_misc): Remove.
 +      (catchlist, handlerlist, mark_backtrace):
 +      Declare only if BYTE_MARK_STACK.
 +      (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
 +      * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
 +      (message_enable_multibyte): Remove decl.
 +      (free_misc, interval_free_list, float_block, float_block_index):
 +      (n_float_blocks, float_free_list, cons_block, cons_block_index):
 +      (cons_free_list, last_marked_index):
 +      Now static.
 +      (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
 +      * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
 +      (mark_backtrace): Define only if BYTE_MARK_STACK.
 +      * xdisp.c (message_enable_multibyte): Now static.
 +
 +      Declare Lisp_Object Q* variables to be 'static' if not exported.
 +      This makes it easier for human readers (and static analyzers)
 +      to see whether these variables are used from other modules.
 +      * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
 +      * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
 +      * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
 +      * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
 +      * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
 +      * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
 +      * xmenu.c, xselect.c:
 +      Declare Q* vars static if they are not used in other modules.
 +      * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
 +      * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
 +      Remove decls of unexported vars.
 +      * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
 +
 +      * lisp.h (DEFINE_FUNC): Make sname 'static'.
 +
 +      Make Emacs functions such as Fatom 'static' by default.
 +      This makes it easier for human readers (and static analyzers)
 +      to see whether these functions can be called from other modules.
 +      DEFUN now defines a static function.  To make the function external
 +      so that it can be used in other C modules, use the new macro DEFUE.
 +      * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
 +      (Finit_image_library):
 +      (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
 +      (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
 +      (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
 +      Remove decls, since these functions are now static.
 +      (Funintern, Fget_internal_run_time): New decls, since these functions
 +      were already external.
 +
 +      * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
 +      * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
 +      * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
 +      * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
 +      * keyboard.c, keymap.c, lread.c:
 +      * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
 +      * syntax.c, term.c, terminal.c, textprop.c, undo.c:
 +      * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
 +      Mark functions with DEFUE instead of DEFUN,
 +      if they are used in other modules.
 +      * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
 +      decls for now-static functions.
 +      * buffer.h (Fdelete_overlay): Remove decl.
 +      * callproc.c (Fgetenv_internal): Mark as internal.
 +      * composite.c (Fremove_list_of_text_properties): Remove decl.
 +      (Fcomposition_get_gstring): New forward static decl.
 +      * composite.h (Fcomposite_get_gstring): Remove decl.
 +      * dired.c (Ffile_attributes): New forward static decl.
 +      * doc.c (Fdocumntation_property): New forward static decl.
 +      * eval.c (Ffetch_bytecode): New forward static decl.
 +      (Funintern): Remove extern decl; now in .h file where it belongs.
 +      * fileio.c (Fmake_symbolic_link): New forward static decl.
 +      * image.c (Finit_image_library): New forward static decl.
 +      * insdel.c (Fcombine_after_change_execute): Make forward decl static.
 +      * intervals.h (Fprevious_property_change):
 +      (Fremove_list_of_text_properties): Remove decls.
 +      * keyboard.c (Fthis_command_keys): Remove decl.
 +      (Fcommand_execute): New forward static decl.
 +      * keymap.c (Flookup_key): New forward static decl.
 +      (Fcopy_keymap): Now static.
 +      * keymap.h (Flookup_key): Remove decl.
 +      * process.c (Fget_process): New forward static decl.
 +      (Fprocess_datagram_address): Mark as internal.
 +      * syntax.c (Fsyntax_table_p): New forward static decl.
 +      (skip_chars): Remove duplicate decl.
 +      * textprop.c (Fprevious_property_change): New forward static decl.
 +      * window.c (Fset_window_fringes, Fset_window_scroll_bars):
 +      Now internal.
 +      (Fset_window_margins, Fset_window_vscroll): New forward static decls.
 +      * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
 +
 +      * editfns.c (Fformat): Remove unreachable code.
 +
 +2011-04-14  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
 +      change.  (Bug#8496)
 +
 +2011-04-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
 +      when at ZV.  (Bug#8487)
 +
 +2011-04-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * charset.c (Fclear_charset_maps): Use xfree instead of free.
 +      (Bug#8437)
 +      * keyboard.c (parse_tool_bar_item): Likewise.
 +      * sound.c (sound_cleanup, alsa_close): Likewise.
 +      * termcap.c (tgetent): Likewise.
 +      * xfns.c (x_default_font_parameter): Likewise.
 +      * xsettings.c (read_and_apply_settings): Likewise.
 +
 +      * alloc.c (overrun_check_malloc, overrun_check_realloc)
 +      (overrun_check_free): Protoize.
 +
 +2011-04-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * sysdep.c (emacs_read, emacs_write): Check for negative sizes
 +      since callers should never pass a negative size.
 +      Change the signature to match that of plain 'read' and 'write'; see
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
 +      * lisp.h: Update prototypes of emacs_write and emacs_read.
 +
 +2011-04-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (redisplay_window): Don't try to determine the character
 +      position of the scroll margin if the window start point w->startp
 +      is outside the buffer's accessible region.  (Bug#8468)
 +
 +2011-04-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix write-region and its subroutines for buffers > 2GB.
 +      * fileio.c (a_write, e_write): Modify declaration of arguments and
 +      local variables to support buffers larger than 2GB.
 +      (Fcopy_file): Use EMACS_INT for return value of emacs_read.
 +
 +      * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
 +      argument, local variables, and return value.
 +
 +      * lisp.h: Update prototypes of emacs_write and emacs_read.
 +
 +      * sound.c (vox_write): Use ssize_t for return value of emacs_write.
 +
 +2011-04-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
 +
 +      Fix more problems found by GCC 4.6.0's static checks.
 +
 +      * xdisp.c (vmessage): Use a better test for character truncation.
 +
 +      * charset.c (load_charset_map): <, not <=, for optimization,
 +      and to avoid potential problems with integer overflow.
 +      * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
 +      * casetab.c (set_identity, shuffle): Likewise.
 +      * editfns.c (Fformat): Likewise.
 +      * syntax.c (skip_chars): Likewise.
 +
 +      * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
 +      This also lets GCC 4.6.0 generate slightly better loop code.
 +
 +      * callint.c (Fcall_interactively): <, not <=, for optimization.
 +      (Fcall_interactively): Count the number of arguments produced,
 +      not the number of arguments given.  This is simpler and lets GCC
 +      4.6.0 generate slightly better code.
 +
 +      * ftfont.c: Distingish more carefully between FcChar8 and char.
 +      The previous code passed unsigned char * to a functions like
 +      strlen and xstrcasecmp that expect char *, which does not
 +      conform to the C standard.
 +      (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
 +      arguments to FcPatternGetString, and explicitly cast FcChar8 * to
 +      char * when the C standard requires it.
  
 -      * eval.c (Fcommandp): Add parens to clarify.
 +      * keyboard.c (read_char): Remove unused var.
  
 -      * minibuf.c (Fall_completions): Use enum for type of table.
 +      * eval.c: Port to Windows vsnprintf (Bug#8435).
 +      Include <limits.h>.
 +      (SIZE_MAX): Define if the headers do not.
 +      (verror): Do not give up if vsnprintf returns a negative count.
 +      Instead, grow the buffer.  This ports to Windows vsnprintf, which
 +      does not conform to C99.  Problem reported by Eli Zaretskii.
 +      Also, simplify the allocation scheme, by avoiding the need for
 +      calling realloc, and removing the ALLOCATED variable.
  
 -      * emacs.c (USAGE2): Improve text.
 +      * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
  
 -2007-08-15  Philippe Waroquiers  <philippe.waroquiers@eurocontrol.int>
 +      Remove invocations of doprnt, as Emacs now uses vsnprintf.
 +      But keep the doprint source code for now, as we might revamp it
 +      and use it again (Bug#8435).
 +      * lisp.h (doprnt): Remove.
 +      * Makefile.in (base_obj): Remove doprnt.o.
 +      * deps.mk (doprnt.o): Remove.
  
 -      * term.c (tty_default_color_capabilities): Declare static
 -      variables in file scope, to avoid HPUX compiler problem.
 +      error: Print 32- and 64-bit integers portably (Bug#8435).
 +      Without this change, on typical 64-bit hosts error ("...%d...", N)
 +      was used to print both 32- and 64-bit integers N, which relied on
 +      undefined behavior.
 +      * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
 +      New macro.
 +      * lisp.h (error, verror): Mark as printf-like functions.
 +      * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
 +      Report overflow in size calculations when allocating printf buffer.
 +      Do not truncate output string at its first null byte.
 +      * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
 +      Truncate the output at a character boundary, since vsnprintf does not
 +      do that.
 +      * charset.c (check_iso_charset_parameter): Convert internal
 +      character to string before calling 'error', since %c now has the
 +      printf meaning.
 +      * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
 +      overflow when computing char to be passed to 'error'.  Do not
 +      pass Lisp_Object to 'error'; pass the integer instead.
 +      * nsfns.m (Fns_do_applescript): Use int, not long, since it's
 +      formatted with plain %d.
  
 -2007-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +      * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
  
 -      * gtkutil.c (update_frame_tool_bar): Use -1 as index
 -      to gtk_toolbar_insert.
 +      * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
  
 -2007-08-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
  
 -      * fileio.c (Finsert_file_contents): Yet Another Int/Lisp_Object Mixup.
 +      * xterm.c (x_catch_errors): Remove duplicate declaration.
  
 -      * 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.
 +      * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
  
 -2007-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * xdisp.c, lisp.h (message_nolog): Remove; unused.
  
 -      * xterm.c (x_draw_image_glyph_string): Adjust stipple origin when
 -      filling pixmap with stippled background.
 +2011-04-10  Jim Meyering  <meyering@redhat.com>
  
 -2007-08-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
 +      * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
 +      return ssize_t not "int", and use size_t as the buffer length.
 +      (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
 +      * gnutls.h: Update declarations.
 +      * process.c (read_process_output): Use ssize_t, to match.
 +      (send_process): Likewise.
  
 -      * macterm.c [TARGET_API_MAC_CARBON] (mac_handle_window_event):
 -      Don't use invisible frame as parent window for repositioning.
 +2011-04-09  Chong Yidong  <cyd@stupidchicken.com>
  
 -2007-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
  
 -      * 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.
 +2011-04-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
 +      Use unsigned char, to match FcChar8 type definition.
  
 -2007-08-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * xterm.c (handle_one_xevent):
 +      * xmenu.c (create_and_show_popup_menu):
 +      * xselect.c (x_decline_selection_request)
 +      (x_reply_selection_request): Avoid type-punned deref of X events.
  
 -      * gmalloc.c (posix_memalign): New function.
 +2011-04-09  Eli Zaretskii  <eliz@gnu.org>
  
 -      * 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.
 +      Fix some uses of `int' instead of EMACS_INT.
 +      * search.c (string_match_1, fast_string_match)
 +      (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
 +      (scan_buffer, find_next_newline_no_quit)
 +      (find_before_next_newline, search_command, Freplace_match)
 +      (Fmatch_data): Make some `int' variables be EMACS_INT.
  
 -2007-08-08  Glenn Morris  <rgm@gnu.org>
 +      * xdisp.c (display_count_lines): 3rd argument and return value now
 +      EMACS_INT.  All callers changed.
 +      (pint2hrstr): Last argument is now EMACS_INT.
  
 -      * Replace `iff' in doc-strings and comments.
 +      * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
 +      (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
 +      (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
 +      (decode_coding_utf_16, decode_coding_emacs_mule)
 +      (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
 +      (decode_coding_ccl, decode_coding_charset)
 +      <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
 +      (decode_coding_iso_2022, decode_coding_emacs_mule)
 +      (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
 +      <char_offset, last_offset>: Declare EMACS_INT.
 +      (encode_coding_utf_8, encode_coding_utf_16)
 +      (encode_coding_emacs_mule, encode_invocation_designation)
 +      (encode_designation_at_bol, encode_coding_iso_2022)
 +      (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
 +      (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
 +      Declare EMACS_INT.
 +      (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
 +      (encode_invocation_designation): Last argument P_NCHARS is now
 +      EMACS_INT.
 +      (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
 +      (produce_chars): from_nchars and to_nchars are now EMACS_INT.
  
 -2007-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +      * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
 +      All users changed.
  
 -      * xdisp.c (move_it_by_lines): Remove incorrect optimization.
 +      * ccl.c (Fccl_execute_on_string): Declare some variables
 +      EMACS_INT.
  
 -2007-08-07  Martin Rudalics  <rudalics@gmx.at>
 +2011-04-08  Samuel Thibault  <sthibault@debian.org>  (tiny change)
  
 -      * 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.
 +      * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
  
 -2007-08-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2011-03-19  Christoph Scholtes  <cschol2112@googlemail.com>
  
 -      * emacs.c (main)
 -      [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
 -      Call malloc_enable_thread on interactive startup.
 +      * process.c (Fformat_network_address): Doc fix.
  
 -      * 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.
 +2011-04-08  T.V. Raman  <tv.raman.tv@gmail.com>  (tiny change)
  
 -2007-08-06  Chong Yidong  <cyd@stupidchicken.com>
 +      * xml.c (parse_region): Avoid creating spurious whiespace nodes.
  
 -      * xdisp.c (redisplay_window): When restoring original buffer
 -      position, make sure it is still valid.
 +2011-04-08  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * image.c (png_load): Ignore png-supplied background color.
 +      * keyboard.c (read_char): Call Lisp function help-form-show,
 +      instead of using internal_with_output_to_temp_buffer.
 +      (Qhelp_form_show): New var.
 +      (syms_of_keyboard): Use DEFSYM macro.
  
 -2007-08-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * print.c (internal_with_output_to_temp_buffer): Function deleted.
  
 -      * mac.c [TARGET_API_MAC_CARBON] (cfdate_to_lisp): Obtain microsec value.
 -      Use kCFAbsoluteTimeIntervalSince1970.
 +      * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
  
 -      * 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.
 +2011-04-06  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * 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.
 +      * process.c (Flist_processes): Remove to Lisp.
 +      (list_processes_1): Delete.
  
 -2007-08-04  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-04-06  Eli Zaretskii  <eliz@gnu.org>
  
 -      * gtkutil.c (xg_tool_bar_callback): Generate two TOOL_BAR_EVENT:s,
 -      add comment explaining why.
 +      * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
  
 -2007-08-03  Richard Stallman  <rms@gnu.org>
 +      * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
  
 -      * fileio.c (Fvisited_file_modtime): Use make_time.
 +2011-04-06  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2007-08-01  Ryo Yoshitake  <ryo@shiftmode.net>  (tiny change)
 +      Fix more problems found by GCC 4.6.0's static checks.
  
 -      * mac.c (init_mac_osx_environment): Adjust load-path on self-contained
 -      build.
 +      * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
  
 -2007-07-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
  
 -      * gtkutil.c (xg_tool_bar_callback): Generate a single TOOL_BAR_EVENT.
 +      * lisp.h (message, message_nolog, fatal): Mark as printf-like.
  
 -2007-07-30  Katsumi Yamaoka  <yamaoka@jpl.org>
 +      * xdisp.c (vmessage): Mark as a printf-like function.
  
 -      * puresize.h (BASE_PURESIZE): Increase to 1130000.
 +      * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
  
 -2007-07-30  Richard Stallman  <rms@gnu.org>
 +      * sound.c (sound_warning): Don't crash if arg contains a printf format.
  
 -      * lread.c (readevalloop, read1): Treat NBSP as whitespace.
 +      * image.c (tiff_error_handler, tiff_warning_handler): Mark as
 +      printf-like functions.
 +      (tiff_load): Add casts to remove these marks before passing them
 +      to system-supplied API.
  
 -2007-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +      * eval.c (Fsignal): Remove excess argument to 'fatal'.
  
 -      * gmalloc.c (__malloc_initialize): Remove pthread_once.  Not needed.
 +      * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
 +      This avoids several warnings with gcc -Wstrict-overflow.
 +      (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
 +      directly, rather than having caller test rule sign.  This avoids
 +      some unnecessary tests.
 +      * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
 +      (COMPOSITION_ENCODE_RULE): Arguments now must be valid.  This
 +      affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
  
 -2007-07-28  Nick Roberts  <nickrob@snap.net.nz>
 +      * xfont.c (xfont_text_extents): Remove var that was set but not used.
 +      (xfont_open): Avoid unnecessary tests.
  
 -      * xdisp.c (decode_mode_spec): Use '@' instead of 'R' to test for
 -      remote default-directory.
 +      * composite.c (composition_gstring_put_cache): Use unsigned integer.
  
 -      * buffer.c (mode-line-format): Update doc string.
 +      * composite.h, composite.c (composition_gstring_put_cache):
 +      Use EMACS_INT, not int, for length.
  
 -2007-07-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * composite.h (COMPOSITION_DECODE_REFS): New macro,
 +      breaking out part of COMPOSITION_DECODE_RULE.
 +      (COMPOSITION_DECODE_RULE): Use it.
 +      * composite.c (get_composition_id): Remove unused local vars,
 +      by using the new macro.
  
 -      * 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.
 +      * textprop.c (set_text_properties_1): Change while to do-while,
 +      since the condition is always true at first.
  
 -      * w32term.h (struct scroll_bar): New member fringe_extended_p.
 -      (w32_fill_area): Enclose multiple statements with do ... while (0).
 +      * intervals.c (graft_intervals_into_buffer): Mark var as used.
 +      (interval_deletion_adjustment): Return unsigned value.
 +      All uses changed.
  
 -      * 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.
 +      * process.c (list_processes_1, create_pty, read_process_output):
 +      (exec_sentinel): Remove vars that were set but not used.
 +      (create_pty): Remove unnecessary "volatile"s.
 +      (Fnetwork_interface_info): Avoid possibility of int overflow.
 +      (read_process_output): Do adaptive read buffering even if carryover.
 +      (read_process_output): Simplify nbytes computation if buffered.
  
 -      * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
 -      New member fringe_extended_p.
 +      * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
  
 -2007-07-25  Glenn Morris  <rgm@gnu.org>
 +      * syntax.c (scan_words): Remove var that was set but not used.
 +      (update_syntax_table): Use unsigned instead of int.
  
 -      * Relicense all FSF files to GPLv3 or later.
 +      * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
 +      (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
 +      (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
  
 -      * COPYING: Switch to GPLv3.
 +      * print.c (print_error_message): Avoid int overflow.
  
 -2007-07-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * font.c (font_list_entities): Redo for clarity,
 +      so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
  
 -      * eval.c (Fcommandp): Pay attention to the `interactive-form' property.
 +      * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
 +      (font_score): Avoid potential overflow in diff calculation.
  
 -      * data.c (Finteractive_form): Check for the presence of an
 -      `interactive-form' symbol property more thoroughly.
 +      * fns.c (substring_both): Remove var that is set but not used.
 +      (sxhash): Redo loop for clarity and to avoid wraparound warning.
  
 -      * data.c (Finteractive_form): Use an `interactive-form' property if
 -      present, analogous to the function-documentation property.
 +      * eval.c (funcall_lambda): Rename local to avoid shadowing.
  
 -2007-07-24  Jason Rumney  <jasonr@gnu.org>
 +      * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
 +      Otherwise, GCC 4.6.0 optimizes the loop check away since the check
 +      can always succeed if overflow has undefined behavior.
  
 -      * w32fns.c (x_real_positions): Get real position from OS instead of
 -      calculating it.
 +      * search.c (boyer_moore, wordify): Remove vars set but not used.
 +      (wordify): Omit three unnecessary tests.
  
 -2007-07-23  Jason Rumney  <jasonr@gnu.org>
 +      * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
 +      All callers changed.  This avoids the need for an unused var.
  
 -      * filelock.c (current_lock_owner): Allow for @ sign in username.
 +      * casefiddle.c (casify_region): Remove var that is set but not used.
  
 -2007-07-22  Nick Roberts  <nickrob@snap.net.nz>
 +      * dired.c (file_name_completion): Remove var that is set but not used.
  
 -      * xdisp.c (decode_mode_spec): Add case 'R' for to test for
 -      remote default-directory.
 +      * fileio.c (Finsert_file_contents): Make EOF condition clearer.
  
 -      * buffer.c (mode-line-format): Describe above case in doc string.
 +      * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
 +      (Finsert_file_contents): Remove unnecessary code checking fd.
  
 -2007-07-20  Eli Zaretskii  <eliz@gnu.org>
 +      * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
 +      Check for integer overflow on size calculations.
  
 -      * w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32):
 -      Define if not defined.
 +      * buffer.c (Fprevious_overlay_change): Remove var that is set
 +      but not used.
  
 -2007-07-18  Jason Rumney  <jasonr@gnu.org>
 +      * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
 +      Remove vars that are set but not used.
 +      (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
 +      (timer_check_2): Mark vars as initialized.
  
 -      * w32proc.c (w32_executable_type): Handle 64 bit executables.
 +      * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
  
 -2007-07-18  Richard Stallman  <rms@gnu.org>
 +      * image.c (lookup_image): Remove var that is set but not used.
 +      (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
  
 -      * data.c (Fsetq_default): Doc fix.
 +      * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
 +      that are set but not used.
  
 -      * eval.c (Fsetq): Doc fix.
 +      * xfns.c (make_invisible_cursor): Don't return garbage
 +      if XCreateBitmapFromData fails (Bug#8410).
  
 -2007-07-18  Juanma Barranquero  <lekktu@gmail.com>
 +      * xselect.c (x_get_local_selection, x_handle_property_notify):
 +      Remove vars that are set but not used.
  
 -      * coding.c (Ffind_operation_coding_system):
 -      * eval.c (For, Fand): Doc fixes.
 -      Reported by Johan Bockgård.
 +      * xfns.c (x_create_tip_frame): Remove var that is set but not used.
 +      (make_invisible_cursor): Initialize a possibly-uninitialized variable.
  
 -2007-07-18  Jan Djärv  <jan.h.d@swipnet.se>
 +      * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
 +      Remove var that is set but not used.
 +      (scroll_bar_windows_size): Now size_t, not int.
 +      (x_send_scroll_bar_event): Use size_t, not int, for sizes.
 +      Check for overflow.
  
 -      * xfns.c (Fx_focus_frame): Call x_ewmh_activate_frame.
 +      * xfaces.c (realize_named_face): Remove vars that are set but not used.
 +      (map_tty_color) [!defined MSDOS]: Likewise.
  
 -      * xterm.h: Declare x_ewmh_activate_frame.
 +      * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
  
 -      * xterm.c (x_ewmh_activate_frame): New function.
 -      (XTframe_raise_lower): Move code to x_ewmh_activate_frame.
 +      * coding.c: Remove vars that are set but not used.
 +      (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
 +      All callers changed.
 +      (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
 +      (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
 +      (decode_coding_charset): Remove vars that are set but not used.
  
 -2007-07-17  Martin Rudalics  <rudalics@gmx.at>
 +      * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
 +      that is set but not used.
  
 -      * 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.
 +      * print.c (print_object): Remove var that is set but not used.
  
 -2007-07-17  Glenn Morris  <rgm@gnu.org>
 +      Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
 +      The gnulib version avoids calling malloc in the usual case,
 +      and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
 +      * fileio.c (Ffile_symlink_p): Use emacs_readlink.
 +      * filelock.c (current_lock_owner): Likewise.
 +      * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
 +      * sysdep.c: Include allocator.h, careadlinkat.h.
 +      (emacs_no_realloc_allocator): New static constant.
 +      (emacs_readlink): New function.
 +      * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
 +      ../lib/careadlinkat.h.
  
 -      * 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.
 +2011-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2007-07-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
 +      first non-nil return value).
  
 -      * process.c (Fstart_process, Fmake_network_process)
 -      (read_process_output): Fix up last changes.
 +2011-04-03  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2007-07-16  Eli Zaretskii  <eliz@gnu.org>
 +      * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
 +      if not defined (Bug#8403).
  
 -      * makefile.w32-in (clean): Don't delete *~.
 +2011-04-02  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-07-16  Andreas Schwab  <schwab@suse.de>
 +      * xdisp.c (display_count_lines): Remove parameter `start',
 +      unused since 1998-01-01T02:27:27Z!rms@gnu.org.  All callers changed.
 +      (get_char_face_and_encoding): Remove parameter `multibyte_p',
 +      unused since 2008-05-14T01:40:23Z!handa@m17n.org.  All callers changed.
 +      (fill_stretch_glyph_string): Remove parameters `row' and `area',
 +      unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
 +      and thereabouts.  All callers changed.
 +      (get_per_char_metric): Remove parameter `f', unused since
 +      2008-05-14T01:40:23Z!handa@m17n.org.  All callers changed.
  
 -      * window.c (Fdisplay_buffer): Use NILP.
 -      (Fset_window_scroll_bars): Likewise.
 +2011-04-02  Jim Meyering  <meyering@redhat.com>
  
 -2007-07-15  Martin Rudalics  <rudalics@gmx.at>
 +      do not dereference NULL upon failed strdup
 +      * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
 +      (ns_get_family): Likewise.
 +
 +2011-04-02  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * 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.
 -      (Fwindow_full_width_p): New defun.
 -      (syms_of_window): Defsubr it.
 +      * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
 +
 +2011-04-02  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * window.h: Add EXFUN for Fwindow_full_width_p.
 +      * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
 +      later (Bug#8403).
  
 -2007-07-14  Jason Rumney  <jasonr@gnu.org>
 +2011-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Add lexical binding.
  
 -      * process.c [WINDOWSNT]: Don't undefine AF_INET6.
 +      * window.c (Ftemp_output_buffer_show): New fun.
 +      (Fsave_window_excursion):
 +      * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
  
 -2007-07-14  Richard Stallman  <rms@gnu.org>
 +      * lread.c (lisp_file_lexically_bound_p): New function.
 +      (Fload): Bind Qlexical_binding.
 +      (readevalloop): Remove `evalfun' arg.
 +      Bind Qinternal_interpreter_environment.
 +      (Feval_buffer): Bind Qlexical_binding.
 +      (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
 +      Mark as dynamic.
 +      (syms_of_lread): Declare `lexical-binding'.
  
 -      * 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.
 +      * lisp.h (struct Lisp_Symbol): New field `declared_special'.
  
 -2007-07-14  Juanma Barranquero  <lekktu@gmail.com>
 +      * keyboard.c (eval_dyn): New fun.
 +      (menu_item_eval_property): Use it.
  
 -      * eval.c (Fprogn):
 -      * keyboard.c (Ftrack_mouse):
 -      * print.c (Fwith_output_to_temp_buffer):
 -      * window.c (Fsave_window_excursion): Doc fix.
 +      * image.c (parse_image_spec): Use Ffunctionp.
  
 -2007-07-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * fns.c (concat, mapcar1): Accept byte-code-functions.
  
 -      * eval.c (init_eval_once): Bump max_lisp_eval_depth to 400.
 +      * eval.c (Fsetq): Handle lexical vars.
 +      (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
 +      (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
 +      (FletX, Flet): Obey lexical binding.
 +      (Fcommandp): Handle closures.
 +      (Feval): New `lexical' arg.
 +      (eval_sub): New function extracted from Feval.  Use it almost
 +      everywhere where Feval was used.  Look up vars in lexical env.
 +      Handle closures.
 +      (Ffunctionp): Move from subr.el.
 +      (Ffuncall): Handle closures.
 +      (apply_lambda): Remove `eval_flags'.
 +      (funcall_lambda): Handle closures and new byte-code-functions.
 +      (Fspecial_variable_p): New function.
 +      (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
 +      but without exporting it to Lisp.
  
 -2007-07-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * doc.c (Fdocumentation, store_function_docstring):
 +      * data.c (Finteractive_form): Handle closures.
  
 -      * 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.
 +      * callint.c (Fcall_interactively): Preserve lexical-binding mode for
 +      interactive spec.
  
 -2007-07-12  Richard Stallman  <rms@gnu.org>
 +      * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
 +      New byte-codes.
 +      (exec_byte_code): New function extracted from Fbyte_code to handle new
 +      calling convention for byte-code-functions.  Add new byte-codes.
  
 -      * term.c: Include unistd.h only if HAVE_UNISTD_H.
 +      * buffer.c (defvar_per_buffer): Set new `declared_special' field.
  
 -2007-07-11  Jason Rumney  <jasonr@gnu.org>
 +      * alloc.c (Fmake_symbol): Init new `declared_special' field.
  
 -      * makefile.w32-in (LIBS): Include OLE32.
 +2011-03-31  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
 -      (w32_msg_pump) <WM_DESTROY>: Uninitialize COM.
 +      * xdisp.c (redisplay_internal): Fix prototype.
  
 -2007-07-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-03-31  Eli Zaretskii  <eliz@gnu.org>
  
 -      * 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.
 +      * xdisp.c (SCROLL_LIMIT): New macro.
 +      (try_scrolling): Use it when setting scroll_limit.
 +      Limit scrolling to 100 screen lines.
 +      (redisplay_window): Even when falling back on "recentering",
 +      position point in the window according to scroll-conservatively,
 +      scroll-margin, and scroll-*-aggressively variables.  (Bug#6671)
  
 -      * alloc.c (emacs_blocked_free): Remove unused var `bytes_used_now'.
 +      (try_scrolling): When point is above the window, allow searching
 +      as far as scroll_max, or one screenful, to compute vertical
 +      distance from PT to the scroll margin position.  This prevents
 +      try_scrolling from unnecessarily failing when
 +      scroll-conservatively is set to a value slightly larger than the
 +      window height.  Clean up the case of PT below the margin at bottom
 +      of window: scroll_max can no longer be INT_MAX.  When aggressive
 +      scrolling is in use, don't let point enter the opposite scroll
 +      margin as result of the scroll.
 +      (syms_of_xdisp) <scroll-conservatively>: Document the
 +      threshold of 100 lines for never-recentering scrolling.
  
 -      * 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.
 +2011-03-31  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-07-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * dispextern.h (move_it_by_lines):
 +      * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
 +      since 2000-12-29T14:24:09Z!gerd@gnu.org.  All callers changed.
 +      (message_log_check_duplicate): Remove parameters `prev_bol' and
 +      `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org.  All callers changed.
 +      (redisplay_internal): Remove parameter `preserve_echo_area',
 +      unused since 1999-07-21T21:43:52Z!gerd@gnu.org.  All callers changed.
  
 -      * alloc.c (mark_maybe_pointer): Enforce mult-of-8 alignment when using
 -      USE_LSB_TAG.  Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
 +      * indent.c (Fvertical_motion):
 +      * window.c (window_scroll_pixel_based, Frecenter):
 +      Don't pass `need_y_p' to `move_it_by_lines'.
  
 -      * 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.
 +2011-03-30  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * editfns.c (Ftranspose_regions): Use EMACS_INT for positions.
 +      * eval.c (struct backtrace): Don't cheat with negative numbers, but do
 +      steal a few bits to be more compact.
 +      (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
 +      Remove unneeded casts.
  
 -      * 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.
 +      * bytecode.c (Fbyte_code): CAR and CDR can GC.
  
 -      * keymap.h (map_keymap_function_t): More informative prototype.
 +2011-03-30  Zachary Kanfer  <zkanfer@gmail.com>  (tiny change)
  
 -2007-07-10  Guanpeng Xu  <herberteuler@hotmail.com>
 +      * keyboard.c (Fexecute_extended_command): Do log the "suggest key
 +      binding" message (bug#7967).
  
 -      * 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.
 +2011-03-30  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2007-07-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      Fix more problems found by GCC 4.6.0's static checks.
  
 -      * minibuf.c (Fcompleting_read): New value `confirm-only'
 -      for `require-match'.
 +      * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
 +      Remove unused local var.
  
 -2007-06-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * editfns.c (Fmessage_box): Remove unused local var.
  
 -      * fileio.c (Fdo_auto_save): Revert last patch installed unwillingly as
 -      part of the 2007-06-27 change to syms_of_fileio.
 +      * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
 +      (note_mode_line_or_margin_highlight, note_mouse_highlight):
 +      Omit unused local vars.
 +      * window.c (shrink_windows): Omit unused local var.
 +      * menu.c (digest_single_submenu): Omit unused local var.
 +      * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
 +      Omit unused local var.
 +
 +      * keyboard.c (parse_modifiers_uncached, parse_modifiers):
 +      Don't assume string length fits in int.
 +      (keyremap_step, read_key_sequence): Use size_t for sizes.
 +      (read_key_sequence): Don't check last_real_key_start redundantly.
  
 -2007-06-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
 +      instead of alloca (Bug#8344).
  
 -      * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
 -      Check WINDOWP before using XWINDOW.  Consolidate return statements.
 +      * eval.c (Fbacktrace): Don't assume nargs fits in int.
 +      (Fbacktrace_frame): Don't assume nframes fits in int.
  
 -2007-06-27  Richard Stallman  <rms@gnu.org>
 +      * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
  
 -      * fileio.c (syms_of_fileio) <after-insert-file-functions>: Doc fix.
 +      * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
 +      concerns.
  
 -2007-06-27  Juanma Barranquero  <lekktu@gmail.com>
 +      * term.c (produce_glyphless_glyph): Remove unnecessary test.
  
 -      * buffer.c (syms_of_buffer) <selective-display>: Fix typo in docstring.
 +      * cm.c (calccost): Turn while-do into do-while, for clarity.
  
 -2007-06-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * keyboard.c (syms_of_keyboard): Use the same style as later
 +      in this function when indexing through an array.  This also
 +      works around GCC bug 48267.
  
 -      * 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.
 +      * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
  
 -2007-06-26  Kenichi Handa  <handa@m17n.org>
 +      * xselect.c (x_check_property_data): Return correct size (Bug#8335).
  
 -      * coding.c (Ffind_operation_coding_system): Docstring improved.
 -      (syms_of_coding): Docstring of `file-coding-system-alist' improved.
 +      * chartab.c (sub_char_table_ref_and_range): Redo for slight
 +      efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
  
 -2007-06-25  David Kastrup  <dak@gnu.org>
 +      * keyboard.c, keyboard.h (num_input_events): Now size_t.
 +      This avoids undefined behavior on integer overflow, and is a bit
 +      more convenient anyway since it is compared to a size_t variable.
  
 -      * keymap.c (Fcurrent_active_maps): Add `position' argument.
 -      (Fwhere_is_internal): Adjust call to `current-active-maps' to
 -      cater for additional parameter.
 +      Variadic C functions now count arguments with size_t, not int.
 +      This avoids an unnecessary limitation on 64-bit machines, which
 +      caused (substring ...) to crash on large vectors (Bug#8344).
 +      * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
 +      (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
 +      All variadic functions and their callers changed accordingly.
 +      (struct gcpro.nvars): Now size_t, not int.  All uses changed.
 +      * data.c (arith_driver, float_arith_driver): Likewise.
 +      * editfns.c (general_insert_function): Likewise.
 +      * eval.c (struct backtrace.nargs, interactive_p)
 +      (internal_condition_case_n, run_hook_with_args, apply_lambda)
 +      (funcall_lambda, mark_backtrace): Likewise.
 +      * fns.c (concat): Likewise.
 +      * frame.c (x_set_frame_parameters): Likewise.
 +      * fns.c (get_key_arg): Now accepts and returns size_t, and returns
 +      0 if not found, not -1.  All callers changed.
  
 -      * keymap.h: Adjust number of parameters to `current-active-maps'.
 +      * alloc.c (garbage_collect): Don't assume stack size fits in int.
 +      (stack_copy_size): Now size_t, not int.
 +      (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
  
 -      * doc.c (Fsubstitute_command_keys): Adjust call of
 -      `current-active-maps'.
 +2011-03-28  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-06-25  David Kastrup  <dak@gnu.org>
 +      * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
 +      unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
 +      All callers changed.
  
 -      * callint.c (Fcall_interactively): Make the parsing of interactive
 -      specs somewhat more readable.
 +      * lisp.h (multibyte_char_to_unibyte):
 +      * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
 +      unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
 +      * character.h (CHAR_TO_BYTE8):
 +      * cmds.c (internal_self_insert):
 +      * editfns.c (general_insert_function):
 +      * keymap.c (push_key_description):
 +      * search.c (Freplace_match):
 +      * xdisp.c (message_dolog, set_message_1): All callers changed.
  
 -2007-06-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2011-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * 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.
 +      * keyboard.c (safe_run_hook_funcall): New function.
 +      (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
 +      don't set the hook to nil, but remove the offending function instead.
 +      (Qcommand_hook_internal): Remove, unused.
 +      (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
 +      Vcommand_hook_internal.
  
 -2007-06-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * eval.c (enum run_hooks_condition): Remove.
 +      (funcall_nil, funcall_not): New functions.
 +      (run_hook_with_args): Call each function through a `funcall' argument.
 +      Remove `cond' argument, now redundant.
 +      (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
 +      (Frun_hook_with_args_until_failure): Adjust accordingly.
 +      (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
  
 -      * macgui.h (USE_CG_DRAWING): Don't require USE_ATSUI.
 -      (USE_MAC_TOOLBAR): Require USE_CG_DRAWING.
 +2011-03-28  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * 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.
 +      * dispextern.h (string_buffer_position): Remove declaration.
  
 -2007-06-21  Jason Rumney  <jasonr@gnu.org>
 +      * print.c (strout): Remove parameter `multibyte', unused since
 +      1999-08-21T19:30:21Z!gerd@gnu.org.  All callers changed.
  
 -      * image.c (convert_mono_to_color_image): Swap fore and background.
 +      * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
 +      never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
 +      All callers changed.
  
 -2007-06-20  Jason Rumney  <jasonr@gnu.org>
 +      * w32.c (_wsa_errlist): Use braces for struct initializers.
  
 -      * w32bdf.c (w32_BDF_to_x_font): Unmap memory when finished.
 -      (w32_free_bdf_font): Unmap memory not handle.
 +      * xdisp.c (string_buffer_position_lim): Remove parameter `w',
 +      never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
 +      All callers changed.
 +      (string_buffer_position): Likewise.  Also, make static (it's never
 +      used outside xdisp.c).
 +      (cursor_row_p): Remove parameter `w', unused since
 +      2000-10-17T16:08:57Z!gerd@gnu.org.  All callers changed.
 +      (decode_mode_spec): Remove parameter `precision', introduced during
 +      Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
 +      All callers changed.
  
 -2007-06-20  Sam Steingold  <sds@gnu.org>
 +2011-03-27  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * gmalloc.c (__morecore): Fix the declaration to comply with the
 -      definition.
 +      * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
  
 -2007-06-20  Juanma Barranquero  <lekktu@gmail.com>
 +2011-03-27  Anders Lindgren  <andlind@gmail.com>
  
 -      * w32term.c (w32_delete_display): Remove leftover declaration.
 -      (w32_define_cursor, w32_initialize): Make static.
 +      * nsterm.m (ns_menu_bar_is_hidden): New variable.
 +      (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
 +      (ns_update_auto_hide_menu_bar): New functions.
 +      (ns_update_begin): Call ns_update_auto_hide_menu_bar.
 +      (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
 +      ns_constrain_all_frames.
 +      (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
 +      (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
  
 -      * w32.c (_wsa_errlist): Fix typo in error message.
 -      (init_environment): Ignore any environment variable from the
 -      registry having a null value.
 +2011-03-27  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2007-06-20  Glenn Morris  <rgm@gnu.org>
 +      * nsmenu.m (runDialogAt): Remove argument to timer_check.
  
 -      * Makefile.in (LIBGIF): Default to -lgif.
 +2011-03-27  Glenn Morris  <rgm@gnu.org>
  
 -2007-06-17  Jason Rumney  <jasonr@gnu.org>
 +      * syssignal.h: Replace RETSIGTYPE with void.
 +      * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
 +      * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
 +      Replace SIGTYPE with void everywhere.
 +      * s/usg5-4-common.h (SIGTYPE): Remove definition.
 +      * s/template.h (SIGTYPE): Remove commented out definition.
  
 -      * w32menu.c (add_menu_item): Don't use multibyte string functions on
 -      unicode strings.
 +2011-03-26  Eli Zaretskii  <eliz@gnu.org>
  
 -2007-06-16  Juanma Barranquero  <lekktu@gmail.com>
 +      * xdisp.c (redisplay_window): Don't check buffer's clip_changed
 +      flag as a prerequisite for invoking try_scrolling.  (Bug#6671)
  
 -      * xdisp.c (syms_of_xdisp) <auto-resize-tool-bars>:
 -      Fix typo in docstring.
 +2011-03-26  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-06-16  Eli Zaretskii  <eliz@gnu.org>
 +      * w32.c (read_unc_volume): Use parameter `henum', instead of
 +      global variable `wget_enum_handle'.
  
 -      * w32menu.c (add_menu_item): Escape `&' characters in menu items
 -      and their keybindings.
 +      * keymap.c (describe_vector): Remove parameters `indices' and
 +      `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
 +      (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
  
 -2007-06-15  Chong Yidong  <cyd@stupidchicken.com>
 +      * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
  
 -      * composite.c (update_compositions): Fix last fix.
 +      * keyboard.c (timer_check): Remove parameter `do_it_now',
 +      unused since 1996-04-12T06:01:29Z!rms@gnu.org.
 +      (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
 +      unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
  
 -2007-06-14  Jason Rumney  <jasonr@gnu.org>
 +      * keyboard.c (read_char):
 +      * w32menu.c (w32_menu_display_help):
 +      * xmenu.c (show_help_event, menu_help_callback):
 +      Adjust calls to `show_help_echo'.
  
 -      * 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.
 +      * gtkutil.c (xg_maybe_add_timer):
 +      * keyboard.c (readable_events):
 +      * process.c (wait_reading_process_output):
 +      * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
  
 -      * editfns.c (Fget_internal_run_time) [WINDOWSNT]: Use it.
 +      * insdel.c (adjust_markers_gap_motion):
 +      Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
 +      (gap_left, gap_right): Don't call it.
  
 -2007-06-14  Kenichi Handa  <handa@etlken.m17n.org>
 +2011-03-25  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * composite.c (update_compositions): Check the validness of
 -      compositions.
 +      * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
 +      incurred during fontification.
  
 -2007-06-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2011-03-25  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * frame.h (struct frame) [MAC_OS]: New member external_tool_bar.
 -      (FRAME_EXTERNAL_TOOL_BAR) [MAC_OS]: Use it.
 +      * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
 +      (DEFVAR_PER_BUFFER): Don't pass 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.
 +      * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
 +      (scrolling_window): Don't pass it.
  
 -      * macgui.h (USE_MAC_TOOLBAR): New define.
 +2011-03-25  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
 -      Return immediately unless popup is activated.
 +      * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
  
 -      * 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.
 +      * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
 +      and `suffix'.
 +      (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
 +      of variables specific to SELinux and computation of `encoded_absname'.
  
 -      * 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.
 +      * image.c (XPutPixel): Remove unused variable `height'.
  
 -      * xdisp.c (update_tool_bar, redisplay_tool_bar, redisplay_window)
 -      [USE_MAC_TOOLBAR]: Sync with GTK+ tool bar display.
 +      * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
  
 -2007-06-14  Chong Yidong  <cyd@stupidchicken.com>
 +      * unexw32.c (get_section_info): Remove unused variable `section'.
  
 -      * image.c (search_image_cache): Remove unused variable.
 +      * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
 +      (system_process_attributes): Remove unused variable `sess'.
 +      (sys_read): Remove unused variable `err'.
  
 -2007-06-13  Chong Yidong  <cyd@stupidchicken.com>
 +      * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
 +      (w32_wnd_proc): Remove unused variable `isdead'.
 +      (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
 +      (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
 +      (x_create_tip_frame): Remove unused variable `tem'.
  
 -      * xfns.c, xmenu.c: Link to xaw3d if available.
 +      * w32inevt.c (w32_console_read_socket):
 +      Remove unused variable `no_events'.
  
 -2007-06-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * w32term.c (x_draw_composite_glyph_string_foreground):
 +      Remove unused variable `width'.
  
 -      * dispextern.h (struct image) [HAVE_WINDOW_SYSTEM]: New members
 -      frame_foreground and frame_background.
 +2011-03-24  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * image.c (lookup_image): Save frame foreground and background colors.
 -      (search_image_cache): Check if saved and current frame colors match.
 +      * w32term.c (x_set_glyph_string_clipping):
 +      Don't pass uninitialized region to CombineRgn.
  
 -2007-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-03-23  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * regex.c (regex_compile): Remove the `regnum' counter.
 -      Use bufp->re_nsub instead.  Add support for \(?N:RE\).
 +      * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
 +      (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
 +      (Fx_close_connection): Remove unused variable `i'.
  
 -2007-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * w32font.c (w32font_draw): Return number of glyphs.
 +      (w32font_open_internal): Remove unused variable `i'.
 +      (w32font_driver): Add missing initializer.
  
 -      * term.c: Include intervals.h to declare Fget_text_property.
 +      * w32menu.c (utf8to16): Remove unused variable `utf16'.
 +      (fill_in_menu): Remove unused variable `items_added'.
  
 -2007-06-10  Jason Rumney  <jasonr@gnu.org>
 +      * w32term.c (last_mouse_press_frame): Remove static global variable.
 +      (w32_clip_to_row): Remove unused variable `f'.
 +      (x_delete_terminal): Remove unused variable `i'.
  
 -      * w32fns.c (Fx_file_dialog): Take size from struct not pointer.
 +      * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
 +      (NOTHING): Remove unused static global variable.
 +      (uniscribe_check_otf): Remove unused variable `table'.
 +      (uniscribe_font_driver): Add missing initializers.
  
 -2007-06-08  Juanma Barranquero  <lekktu@gmail.com>
 +2011-03-23  Julien Danjou  <julien@danjou.info>
  
 +      * term.c (Fsuspend_tty, Fresume_tty):
 +      * minibuf.c (read_minibuf, run_exit_minibuf_hook):
 +      * window.c (temp_output_buffer_show):
 +      * insdel.c (signal_before_change):
 +      * frame.c (Fhandle_switch_frame):
 +      * fileio.c (Fdo_auto_save):
 +      * emacs.c (Fkill_emacs):
 +      * editfns.c (save_excursion_restore):
 +      * cmds.c (internal_self_insert):
        * 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.
 +      * buffer.c (Fkill_all_local_variables):
 +      * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
 +      Use Frun_hooks.
 +      (command_loop_1): Use Frun_hooks.  Call safe_run_hooks
 +      unconditionnaly since it does the check itself.
 +
 +2011-03-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix more problems found by GCC 4.5.2's static checks.
 +
 +      * coding.c (encode_coding_raw_text): Avoid unnecessary test
 +      the first time through the loop, since we know p0 < p1 then.
 +      This also avoids a gcc -Wstrict-overflow warning.
 +
 +      * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
 +      leading to a memory leak, possible in functions like
 +      load_charset_map_from_file that can allocate an unbounded number
 +      of objects (Bug#8318).
 +
 +      * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
 +      that could (at least in theory) be that large.
 +
 +      * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
 +      This is less likely to overflow, and avoids undefined behavior if
 +      overflow does occur.  All callers changed.  Use strtoul to scan
 +      for the unsigned long integer.
 +      (pint2hrstr): Simplify and tune code slightly.
 +      This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
 +
 +      * scroll.c (do_scrolling): Work around GCC bug 48228.
 +      See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
 +
 +      * frame.c (Fmodify_frame_parameters): Simplify loop counter.
 +      This also avoids a warning with gcc -Wstrict-overflow.
 +      (validate_x_resource_name): Simplify count usage.
 +      This also avoids a warning with gcc -Wstrict-overflow.
 +
 +      * fileio.c (Fcopy_file): Report error if fchown or fchmod
 +      fail (Bug#8306).
 +
 +      * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
 +
 +      * process.c (Fmake_network_process): Use socklen_t, not int,
 +      where POSIX says socklen_t is required in portable programs.
 +      This fixes a porting bug on hosts like 64-bit HP-UX, where
 +      socklen_t is wider than int (Bug#8277).
 +      (Fmake_network_process, server_accept_connection):
 +      (wait_reading_process_output, read_process_output):
 +      Likewise.
  
 -2007-05-23  Johannes Weiner  <hannes@saeurebad.de>  (tiny change)
 +      * process.c: Rename or move locals to avoid shadowing.
 +      (list_processes_1, Fmake_network_process):
 +      (read_process_output_error_handler, exec_sentinel_error_handler):
 +      Rename or move locals.
 +      (Fmake_network_process): Define label "retry_connect" only if needed.
 +      (Fnetwork_interface_info): Fix pointer signedness.
 +      (process_send_signal): Add cast to avoid pointer signedness problem.
 +      (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
 +      (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
  
 -      * keyboard.c (make_lispy_movement): Condition on HAVE_GPM too.
 +      Make tparam.h and terminfo.c consistent.
 +      * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
 +      Include tparam.h instead, since it declares them.
 +      * cm.h (PC): Remove extern decl; tparam.h now does this.
 +      * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
 +      * terminfo.c: Include tparam.h, to check interfaces.
 +      (tparm): Make 1st arg a const pointer in decl.  Put it at top level.
 +      (tparam): Adjust signature to match interface in tparam.h;
 +      this removes some undefined behavior.  Check that outstring and len
 +      are zero, which they always are with Emacs.
 +      * tparam.h (PC, BC, UP): New extern decls.
  
 -2007-05-22  Richard Stallman  <rms@gnu.org>
 +      * xftfont.c (xftfont_shape): Now static, and defined only if needed.
 +      (xftfont_open): Rename locals to avoid shadowing.
  
 -      * xterm.c (x_connection_closed): Remove NO_RETURN.
 +      * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
 +      (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
 +      (OTF_TAG_SYM): Omit macro if not needed.
 +      (ftfont_list): Remove unused local.
 +      (get_adstyle_property, ftfont_pattern_entity):
 +      (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
 +      Rename locals to avoid shadowing.
  
 -2007-05-22  Martin Rudalics  <rudalics@gmx.at>
 +      * xfont.c (xfont_list_family): Mark var as initialized.
  
 -      * syntax.c (scan_words): Fix arg to UPDATE_SYNTAX_TABLE_BACKWARD.
 +      * xml.c (make_dom): Now static.
  
 -2007-05-21  Chong Yidong  <cyd@stupidchicken.com>
 +      * composite.c (composition_compute_stop_pos): Rename local to
 +      avoid shadowing.
 +      (composition_reseat_it): Remove unused locals.
 +      (find_automatic_composition, composition_adjust_point): Likewise.
 +      (composition_update_it): Mark var as initialized.
 +      (find_automatic_composition): Mark vars as initialized,
 +      with a FIXME (Bug#8290).
  
 -      * image.c (uncache_image): New function.
 -      (Fimage_refresh): New function.
 +      character.h: Rename locals to avoid shadowing.
 +      * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
 +      (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
 +      (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
 +      (BUF_DEC_POS): Be more systematic about renaming local temporaries
 +      to avoid shadowing.
  
 -2007-05-20  Jan Djärv  <jan.h.d@swipnet.se>
 +      * textprop.c (property_change_between_p): Remove; unused.
  
 -      * Makefile.in: Move GPM check outside HAVE_X_WINDOWS.
 +      * intervals.c (interval_start_pos): Now static.
  
 -2007-05-20  Nick Roberts  <nickrob@snap.net.nz>
 +      * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
  
 -      * config.in, keyboard.c, Makefile.in, sysdep.c, term.c,
 -      * termhooks.h: Use HAVE_GPM instead of HAVE_GPM_H.
 +      * atimer.c (start_atimer, append_atimer_lists, set_alarm):
 +      Rename locals to avoid shadowing.
  
 -2007-05-20  Nick Roberts  <nickrob@snap.net.nz>
 +      * sound.c (wav_play, au_play, Fplay_sound_internal):
 +      Fix pointer signedness.
 +      (alsa_choose_format): Remove unused local var.
 +      (wav_play): Initialize a variable to 0, to prevent undefined
 +      behavior (Bug#8278).
  
 -      * keyboard.c (make_lispy_event): Make case GPM_CLICK_EVENT
 -      conditional on [HAVE_GPM_H].
 +      * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
  
 -2007-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
  
 -      * syntax.c (skip_chars): Update syntax-table only after we checked that
 -      the new location is valid.
 +      * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
 +      clobbering (Bug#8298).
 +      * sysdep.c (sys_subshell): Likewise.
 +      Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
  
 -2007-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
 +      This should get cleaned up, so that child_setup has the
 +      same signature on all platforms.
  
 -      * macterm.c (x_calc_absolute_position): Add BLOCK_INPUT around
 -      mac_get_window_bounds.
 +      * callproc.c (call_process_cleanup): Now static.
 +      (relocate_fd): Rename locals to avoid shadowing.
  
 -2007-05-20  Nick Roberts  <nickrob@snap.net.nz>
 +2011-03-22  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * Makefile.in (LIBGPM): Allow it to be set from configure.
 -      If set then link Emacs with it.
 +      * xterm.c (x_clear_frame): Remove XClearWindow call.  This appears
 +      not to be necessary, and produces flickering.
  
 -      * config.in: Regenerate.
 +2011-03-20  Glenn Morris  <rgm@gnu.org>
  
 -      * lisp.h (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
 -      New externs.
 +      * config.in: Remove file.
  
 -      * termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT.
 -      Include gpm.h.
 -      (handle_one_term_event, term_gpm): New externs.
 +2011-03-20  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking
 -      and allow it to be interrupted by SIGIO.
 +      * minibuf.c (Vcompleting_read_function): Don't declare, global variables
 +      are now in src/globals.h.
 +      (syms_of_minibuf): Remove spurious & from previous change.
  
 -      * 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.
 +2011-03-20  Leo  <sdl.web@gmail.com>
  
 -      * 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.
 +      * minibuf.c (completing-read-function): New variable.
 +      (completing-read-default): Rename from completing-read.
 +      (completing-read): Call completing-read-function.
  
 -      * 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.
 +2011-03-19  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-05-19  Chong Yidong  <cyd@stupidchicken.com>
 +      * xfaces.c (Fx_load_color_file):
 +      Read color file from absolute filename (bug#8250).
  
 -      * xdisp.c (redisplay_window): If first window line is a
 -      continuation line, recompute the new window start instead of
 -      recentering.
 +2011-03-19  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-05-18  Glenn Morris  <rgm@gnu.org>
 +      * makefile.w32-in: Update dependencies.
  
 -      * m/alpha.h (ORDINARY_LINK): No longer define on OpenBSD.
 -      Suggested by Alfred M. Szmidt <ams@gnu.org>.
 +2011-03-17  Eli Zaretskii  <eliz@gnu.org>
  
 -2007-05-17  Glenn Morris  <rgm@gnu.org>
 +      * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
  
 -      * m/macppc.h (ORDINARY_LINK): No longer define on OpenBSD.
 +2011-03-17  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2007-05-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      Fix more problems found by GCC 4.5.2's static checks.
  
 -      * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
 -      dead key repeat and up events.
 +      * process.c (make_serial_process_unwind, send_process_trap):
 +      (sigchld_handler): Now static.
  
 -2007-05-14  Chong Yidong  <cyd@stupidchicken.com>
 +      * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
 +      That way, the code declares only the vars that it needs.
 +      * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
 +      * s/cygwin.h (PTY_ITERATION): Likewise.
 +      * s/darwin.h (PTY_ITERATION): Likewise.
 +      * s/gnu-linux.h (PTY_ITERATION): Likewise.
  
 -      * image.c (pbm_load): Check image size for monochrome pbm.
 +      * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
 +      * process.c (allocate_pty): Don't declare stb unless it's needed.
  
 -2007-05-13  Chong Yidong  <cyd@stupidchicken.com>
 +      * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
 +      (CONSTANTLIM): Remove; unused.
 +      (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
 +      Define only if needed.
  
 -      * xterm.c (XTread_socket): Revert last change.
 +      * unexelf.c (unexec): Name an expression,
 +      to avoid gcc -Wbad-function-cast warning.
 +      Use a different way to cause a compilation error if anyone uses
 +      n rather than nn, a way that does not involve shadowing.
 +      (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
  
 -2007-05-12  Chong Yidong  <cyd@stupidchicken.com>
 +      * deps.mk (unexalpha.o): Remove; unused.
  
 -      * image.c (pbm_load): Correctly check image size for greyscale pbm.
 +      New file unexec.h, the (simple) interface for unexec (Bug#8267).
 +      * unexec.h: New file.
 +      * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
 +      (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
 +      Depend on unexec.h.
 +      * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
 +      * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
 +      * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
 +      Change as necessary to match prototype in unexec.h.
  
 -      * xterm.c (XTread_socket): Yet Another Uncaught X Error Crash (YAUXEC).
 +      * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
 +      shadowing.
 +      (back_comment, skip_chars): Mark vars as initialized.
 +
 +      * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
 +      Rename locals to avoid shadowing.
 +
 +      * lread.c (read1): Rewrite so as not to use empty "else".
 +      (Fload, readevalloop, read1): Rename locals to avoid shadowing.
 +
 +      * print.c (Fredirect_debugging_output): Fix pointer signedess.
 +
 +      * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
 +      warning when compiling print.c.
 +
 +      * font.c (font_unparse_fcname): Abort in an "impossible" situation
 +      instead of using an uninitialized var.
 +      (font_sort_entities): Mark var as initialized.
 +
 +      * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
 +
 +      * font.c (font_unparse_xlfd): Don't mix pointers to variables with
 +      pointers to constants.
 +      (font_parse_fcname): Remove unused vars.
 +      (font_delete_unmatched): Now static.
 +      (font_get_spec): Remove; unused.
 +      (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
 +      (font_update_drivers, Ffont_get_glyphs, font_add_log):
 +      Rename or move locals to avoid shadowing.
 +
 +      * fns.c (require_nesting_list, require_unwind): Now static.
 +      (Ffillarray): Rename locals to avoid shadowing.
 +
 +      * floatfns.c (domain_error2): Define only if needed.
 +      (Ffrexp, Fldexp): Rename locals to avoid shadowing.
 +
 +      * alloc.c (mark_backtrace): Move decl from here ...
 +      * lisp.h: ... to here, so that it can be checked.
 +
 +      * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
 +      (Fdefvar): Rewrite so as not to use empty "else".
 +      (lisp_indirect_variable): Name an expression,
 +      to avoid gcc -Wbad-function-cast warning.
 +      (Fdefvar): Rename locals to avoid shadowing.
 +
 +      * callint.c (quotify_arg, quotify_args): Now static.
 +      (Fcall_interactively): Rename locals to avoid shadowing.
 +      Use const pointer when appropriate.
 +
 +      * lisp.h (get_system_name, get_operating_system_release):
 +      Move decls here, to check interfaces.
 +      * process.c (get_operating_system_release): Move decl to lisp.h.
 +      * xrdb.c (get_system_name): Likewise.
 +      * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
 +      (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
 +      some of which prompt warnings from gcc -Wbad-function-cast.
 +      (Fformat_time_string, Fencode_time, Finsert_char):
 +      (Ftranslate_region_internal, Fformat):
 +      Rename or remove local vars to avoid shadowing.
 +      (Ftranslate_region_internal): Mark var as initialized.
 +
 +      * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
 +      avoid shadowing.
 +
 +      * lisp.h (eassert): Check that the argument compiles, even if
 +      ENABLE_CHECKING is not defined.
 +
 +      * data.c (Findirect_variable): Name an expression, to avoid
 +      gcc -Wbad-function-cast warning.
 +      (default_value, arithcompare, arith_driver, arith_error): Now static.
 +      (store_symval_forwarding): Rename local to avoid shadowing.
 +      (Fmake_variable_buffer_local, Fmake_local_variable):
 +      Mark variables as initialized.
 +      (do_blv_forwarding, do_symval_forwarding): Remove; unused.
 +
 +      * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
 +      (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
 +      Rename locals to avoid shadowing.
 +      (mark_stack): Move local variables into the #ifdef region where
 +      they're used.
 +      (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
 +      ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
 +      needed otherwise.
 +      (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
 +      (GC_STRING_CHARS): Remove; not used.
 +      (Fmemory_limit): Cast sbrk's returned value to char *.
 +
 +      * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
 +      avoids undefined behavior in theory.
 +
 +      * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
 +
 +      Use functions, not macros, for up- and down-casing (Bug#8254).
 +      * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
 +      (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove.  All callers changed
 +      to use the following functions instead of these macros.
 +      (downcase): Adjust to lack of DOWNCASE_TABLE.  Return int, not
 +      EMACS_INT, since callers assume the returned value fits in int.
 +      (upcase1): Likewise, for UPCASE_TABLE.
 +      (uppercasep, lowercasep, upcase): New static inline functions.
 +      * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
 +      the race-condition problem in the old DOWNCASE.
 +
 +      * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
 +      Rename locals to avoid shadowing.
 +      (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
 +      (regex_compile, re_search_2, re_match_2_internal):
 +      Remove unused local vars.
 +      (FREE_VAR): Rewrite so as not to use empty "else",
 +      which gcc can warn about.
 +      (regex_compile, re_match_2_internal): Mark locals as initialized.
 +      (RETALLOC_IF): Define only if needed.
 +      (WORDCHAR_P): Likewise.  This one is never needed, but is used
 +      only in a comment talking about a compiler bug, so put inside
 +      the #if 0 of that comment.
 +      (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
 +      (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
 +      Remove; unused.
 +
 +      * search.c (boyer_moore): Rename locals to avoid shadowing.
 +      * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
 +      (PREV_CHAR_BOUNDARY): Likewise.
 +
 +      * search.c (simple_search): Remove unused var.
 +
 +      * dired.c (compile_pattern): Move decl from here ...
 +      * lisp.h: ... to here, so that it can be checked.
 +      (struct re_registers): New forward decl.
 +
 +      * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
 +
 +      * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
 +      All uses changed.
 +      (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
 +      Rename locals to avoid shadowing.
 +      (Fvertical_motion): Mark locals as initialized.
 +
 +      * casefiddle.c (casify_object, casify_region): Now static.
 +      (casify_region): Mark local as initialized.
 +
 +      * cmds.c (internal_self_insert): Rename local to avoid shadowing.
 +
 +      * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
 +      New macros, so that the caller can use some names other than
 +      gcpro1, gcpro2, etc.
 +      (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
 +      of the new macros.
 +      (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
 +      argument, for consistency with GCPRO2_VAR, etc: it is now the
 +      prefix of the variable, not the variable itself.  All uses
 +      changed.
 +      * dired.c (directory_files_internal, file_name_completion):
 +      Rename locals to avoid shadowing.
 +
 +      Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
 +      An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
 +      dired.c's scmp function, had undefined behavior.
 +      * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
 +      (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
 +      * buffer.h: ... to here, because these macros use current_buffer,
 +      and the new implementation with inline functions needs to have
 +      current_buffer in scope now, rather than later when the macros
 +      are used.
 +      (downcase, upcase1): New static inline functions.
 +      (DOWNCASE, UPCASE1): Reimplement using these functions.
 +      This avoids undefined behavior in expressions like
 +      DOWNCASE (x) == DOWNCASE (y), which previously suffered
 +      from race conditions in accessing the global variables
 +      case_temp1 and case_temp2.
 +      * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
 +      * lisp.h (case_temp1, case_temp2): Remove their decls.
 +      * character.h (ASCII_CHAR_P): Move from here ...
 +      * lisp.h: ... to here, so that the inline functions mentioned
 +      above can use them.
 +
 +      * dired.c (directory_files_internal_unwind): Now static.
 +
 +      * fileio.c (file_name_as_directory, directory_file_name):
 +      (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
 +      Now static.
 +      (file_name_as_directory): Use const pointers when appropriate.
 +      (Fexpand_file_name): Likewise.  In particular, newdir might
 +      point at constant storage, so make it a const pointer.
 +      (Fmake_directory_internal, Fread_file_name): Remove unused vars.
 +      (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
 +      signedness issues.
 +      (Fset_file_times, Finsert_file_contents, auto_save_error):
 +      Rename locals to avoid shadowing.
 +
 +      * minibuf.c (choose_minibuf_frame_1): Now static.
 +      (Ftry_completion, Fall_completions): Rename or remove locals
 +      to avoid shadowing.
 +
 +      * marker.c (bytepos_to_charpos): Remove; unused.
 +
 +      * lisp.h (verify_bytepos, count_markers): New decls,
 +      so that gcc does not warn that these functions aren't declared.
 +
 +      * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
 +      (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
 +      (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
 +      (copy_text): Remove unused local var.
 +
 +      * filelock.c (within_one_second): Now static.
 +      (lock_file_1): Rename local to avoid shadowing.
 +
 +      * buffer.c (fix_overlays_before): Mark locals as initialized.
 +      (fix_start_end_in_overlays): Likewise.  This function should be
 +      simplified by using pointers-to-pointers, but that's a different
 +      matter.
 +      (switch_to_buffer_1): Now static.
 +      (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
 +      (report_overlay_modification): Rename locals to avoid shadowing.
 +
 +      * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
 +      Fix pointer signedness issue.
 +      (sys_subshell): Mark local as volatile if checking for lint,
 +      to suppress a gcc -Wclobbered warning that does not seem to be right.
 +      (MAXPATHLEN): Define only if needed.
 +
 +      * process.c (serial_open, serial_configure): Move decls from here ...
 +      * systty.h: ... to here, so that they can be checked.
 +
 +      * fns.c (get_random, seed_random): Move extern decls from here ...
 +      * lisp.h: ... to here, so that they can be checked.
 +
 +      * sysdep.c (reset_io): Now static.
 +      (wait_for_termination_signal): Remove; unused.
 +
 +      * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
 +      (copy_keymap_item, append_key, push_text_char_description):
 +      Now static.
 +      (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
 +      (DENSE_TABLE_SIZE): Remove; unused.
 +      (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
 +      (describe_map_tree):
 +      Rename locals to avoid shadowing.
 +
 +      * keyboard.c: Declare functions static if they are not used elsewhere.
 +      (echo_char, echo_dash, cmd_error, top_level_2):
 +      (poll_for_input, handle_async_input): Now static.
 +      (read_char, kbd_buffer_get_event, make_lispy_position):
 +      (make_lispy_event, make_lispy_movement, apply_modifiers):
 +      (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
 +      (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
 +      (Fread_key_sequence_vector): Rename locals to avoid shadowing.
 +      (read_key_sequence, read_char): Mark locals as initialized.
 +      (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
 +
 +      * keyboard.h (make_ctrl_char): New decl.
 +      (mark_kboards): Move decl here ...
 +      * alloc.c (mark_kboards): ... from here.
 +
 +      * lisp.h (force_auto_save_soon): New decl.
 +
 +      * emacs.c (init_cmdargs): Rename local to avoid shadowing.
 +      (DEFINE_DUMMY_FUNCTION): New macro.
 +      (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
 +      Use it.
 +      (main): Add casts to avoid warnings
 +      if GCC considers string literals to be constants.
 +
 +      * lisp.h (fatal_error_signal): Add decl, since it's exported.
 +
 +      * dbusbind.c: Pointer signedness fixes.
 +      (xd_signature, xd_append_arg, xd_initialize):
 +      (Fdbus_call_method, Fdbus_call_method_asynchronously):
 +      (Fdbus_method_return_internal, Fdbus_method_error_internal):
 +      (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
 +      (Fdbus_register_signal): Use SSDATA when the context wants char *.
 +
 +      * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
 +      if GCC considers string literals to be constants.
 +      (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
 +
 +2011-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
 +      (print_preprocess, print_object): New macro to fix last change.
 +
 +      * print.c (print_preprocess): Don't forget font objects.
 +
 +2011-03-16  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs.c (USAGE3): Doc fixes.
 +
 +2011-03-15  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * coding.c (detect_coding_iso_2022): Reorganize code to clarify
 +      structure.
  
 -      * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object
 -      mixup (YAILOM).
 +2011-03-14  Juanma Barranquero  <lekktu@gmail.com>
  
 -2007-05-07  Andreas Schwab  <schwab@suse.de>
 +      * lisp.h (VWindow_system, Qfile_name_history):
 +      * keyboard.h (lispy_function_keys) [WINDOWSNT]:
 +      * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
 +      (w32_system_caret_x, w32_system_caret_y): Declare extern.
  
 -      * keymap.c (Flookup_key): Fix typo in last change.
 +      * w32select.c: Don't #include "keyboard.h".
 +      (run_protected): Add extern declaration for waiting_for_input.
  
 -2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * w32.c (Qlocal, noninteractive1, inhibit_window_system):
 +      * w32console.c (detect_input_pending, read_input_pending)
 +      (encode_terminal_code):
 +      * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
 +      (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
 +      (w32_system_caret_y, Qfile_name_history):
 +      * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
 +      * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
 +      * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
 +      (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
 +      * w32proc.c (Qlocal, report_file_error):
 +      * w32term.c (Vwindow_system, updating_frame):
 +      * w32uniscribe.c (initialized, uniscribe_font_driver):
 +      Remove unneeded extern declarations.
  
 -      * keymap.c (Fdefine_key, Flookup_key): Only do the 0x80->meta_modifier
 -      mapping for unibyte strings.
 +2011-03-14  Chong Yidong  <cyd@stupidchicken.com>
  
 -2007-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
  
 -      * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
 -      (Fx_popup_dialog) [MAC_OSX]: Likewise.
 +2011-03-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -2007-04-29  Richard Stallman  <rms@gnu.org>
 +      * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
 +      (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
 +      These macros can no longer be used for assignment.
  
 -      * insdel.c (replace_range): For undo, record insertion first.
 +      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
 +      Assign struct members directly, instead of using BUF_BEGV etc.
 +      (record_buffer_markers, fetch_buffer_markers): New functions for
 +      recording and fetching special buffer markers.
 +      (set_buffer_internal_1, set_buffer_temp): Use them.
  
 -2007-04-29  Andreas Schwab  <schwab@suse.de>
 +      * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
  
 -      * lisp.h (VECSIZE): Use OFFSETOF.
 +      * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
  
 -2007-04-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
 +      (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
  
 -      * xdisp.c (try_window_reusing_current_matrix): Fix number of
 -      disabled lines.
 +      * xdisp.c (hscroll_window_tree):
 +      (reconsider_clip_changes): Use PT instead of BUF_PT.
  
 -2007-04-28  Richard Stallman  <rms@gnu.org>
 +2011-03-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
 +      $(EMACS_ROOT)/lib/intprops.h.
 +
 +2011-03-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix more problems found by GCC 4.5.2's static checks.
 +
 +      * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
 +      to unsigned char * to avoid compiler diagnostic.
 +      (xg_free_frame_widgets): Make it clear that a local variable is
 +      needed only if USE_GTK_TOOLTIP.
 +      (gdk_window_get_screen): Make it clear that this macro is needed
 +      only if USE_GTK_TOOLTIP.
 +      (int_gtk_range_get_value): New function, which avoids a diagnostic
 +      from gcc -Wbad-function-cast.
 +      (xg_set_toolkit_scroll_bar_thumb): Use it.
 +      (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
 +      diagnostic from gcc -Wbad-function-cast.
 +      (get_utf8_string, xg_get_file_with_chooser):
 +      Rename locals to avoid shadowing.
 +      (create_dialog): Move locals to avoid shadowing.
 +
 +      * xgselect.c (xg_select): Remove unused var.
 +
 +      * image.c (four_corners_best): Mark locals as initialized.
 +      (gif_load): Initialize transparent_p to zero (Bug#8238).
 +      Mark another local as initialized.
 +      (my_png_error, my_error_exit): Mark with NO_RETURN.
 +
 +      * image.c (clear_image_cache): Now static.
 +      (DIM, HAVE_STDLIB_H_1): Remove unused macros.
 +      (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
 +      (x_edge_detection): Remove unnecessary cast that
 +      gcc -Wbad-function-cast diagnoses.
 +      (gif_load): Fix pointer signedness.
 +      (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
 +      (jpeg_load, gif_load): Rename locals to avoid shadowing.
 +
 +2011-03-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve quality of tests for time stamp overflow.
 +      For example, without this patch (encode-time 0 0 0 1 1
 +      1152921504606846976) returns the obviously-bogus value (-948597
 +      62170) on my RHEL 5.5 x86-64 host.  With the patch, it correctly
 +      reports time overflow.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
 +      * deps.mk (editfns.o): Depend on ../lib/intprops.h.
 +      * editfns.c: Include limits.h and intprops.h.
 +      (TIME_T_MIN, TIME_T_MAX): New macros.
 +      (time_overflow): Move earlier, to before first use.
 +      (hi_time, lo_time): New functions, for an accurate test for
 +      out-of-range times.
 +      (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
 +      (Fget_internal_run_time): Don't assume time_t fits in int.
 +      (make_time): Use list2 instead of Fcons twice.
 +      (Fdecode_time): More accurate test for out-of-range times.
 +      (check_tm_member): New function.
 +      (Fencode_time): Use it, to test for out-of-range times.
 +      (lisp_time_argument): Don't rely on undefined left-shift and
 +      right-shift behavior when checking for time stamp overflow.
 +
 +      * editfns.c (time_overflow): New function, refactoring common code.
 +      (Fformat_time_string, Fdecode_time, Fencode_time):
 +      (Fcurrent_time_string): Use it.
 +
 +      Move 'make_time' to be next to its inverse 'lisp_time_argument'.
 +      * dired.c (make_time): Move to ...
 +      * editfns.c (make_time): ... here.
 +      * systime.h: Note the move.
 +
 +2011-03-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * lread.c (read_escape): In a string, \s is always space.
 +      * fringe.c (update_window_fringes): Remove unused variables.
  
 -2007-04-27  Jan Djärv  <jan.h.d@swipnet.se>
 +      * unexmacosx.c (copy_data_segment): Also copy __got section.
 +      (Bug#8223)
  
 -      * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
 +2011-03-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * termcap.c [MSDOS]: Include "msdos.h".
 +      (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
 +      Constify `char *' arguments and their references according to
 +      prototypes in tparam.h.
 +
 +      * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
 +
 +      * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
 +      Adapt all references accordingly.
 +
 +      * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
 +
 +2011-03-11  Tom Tromey  <tromey@redhat.com>
 +
 +      * buffer.c (syms_of_buffer): Remove obsolete comment.
 +
 +2011-03-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * termhooks.h (encode_terminal_code): Declare prototype.
 +
 +      * msdos.c (encode_terminal_code): Don't declare prototype.
 +
 +      * term.c (encode_terminal_code): Now external again, used by
 +      w32console.c and msdos.c.
 +
 +      * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
 +      Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
 +
 +2011-03-11  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix some minor problems found by GCC 4.5.2's static checks.
 +
 +      * fringe.c (update_window_fringes): Mark locals as initialized
 +      (Bug#8227).
 +      (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
 +
 +      * alloc.c (mark_fringe_data): Move decl from here ...
 +      * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
 +      to check its interface.
 +      (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
 +
 +      * fontset.c (free_realized_fontset): Now static.
 +      (Fset_fontset_font): Rename local to avoid shadowing.
 +      (fontset_font): Mark local as initialized.
 +      (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
 +
 +      * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
 +
 +      * xselect.c (x_disown_buffer_selections): Remove; not used.
 +      (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
 +      (x_own_selection, Fx_disown_selection_internal): Rename locals
 +      to avoid shadowing.
 +      (x_handle_dnd_message): Remove local to avoid shadowing.
 +
 +      * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
 +      so that the caller can use some name other than gcpro1.
 +      (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
 +      * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
 +      (Fx_backspace_delete_keys_p):
 +      Use them to avoid shadowing, and rename vars to avoid shadowing.
 +      (x_decode_color, x_set_name, x_window): Now static.
 +      (Fx_create_frame): Add braces to silence GCC warning.
 +      (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
 +      (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
 +      Remove unused locals.
 +      (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
 +      (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
 +      Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
 +      macros.
 +
 +      * xterm.h (x_mouse_leave): New decl.
 +
 +      * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
 +      Remove unused functions.
 +      (x_shift_glyphs_for_insert, XTflash, XTring_bell):
 +      (x_calc_absolute_position): Now static.
 +      (XTread_socket): Don't define label "out" unless it's used.
 +      Don't declare local "event" unless it's used.
 +      (x_iconify_frame, x_free_frame_resources): Don't declare locals
 +      unless they are used.
 +      (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
 +      (x_fatal_error_signal): Remove; not used.
 +      (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
 +      (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
 +      (x_error_catcher, x_connection_closed, x_error_handler):
 +      (x_error_quitter, xembed_send_message, x_iconify_frame):
 +      (my_log_handler): Rename locals to avoid shadowing.
 +      (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
 +      (x_connection_closed): Tell GCC not to suggest NO_RETURN.
 +
 +      * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
 +      Rename or move locals to avoid shadowing.
 +      (tty_defined_color, merge_face_heights): Now static.
 +      (free_realized_faces_for_fontset): Remove; not used.
 +      (Fx_list_fonts): Mark variable that gcc -Wuninitialized
 +      does not deduce is never used uninitialized.
 +      (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
 +      (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
 +
 +      * terminal.c (store_terminal_param): Now static.
 +
 +      * xmenu.c (menu_highlight_callback): Now static.
 +      (set_frame_menubar): Remove unused local.
 +      (xmenu_show): Rename parameter to avoid shadowing.
 +      (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
 +      since they might point to immutable storage.
 +      (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
 +      since it's unused otherwise.
 +
 +      * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
 +      Add a FIXME, since the code still doesn't look right.  (Bug#8215)
 +      (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
 +      avoids a gcc -Wuninitialized diagnostic.
 +      (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
 +      (note_mouse_highlight): Mark variables that gcc -Wuninitialized
 +      does not deduce are never used uninitialized.
 +
 +      * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
 +
 +      * xdisp.c (redisplay_window): Rename local to avoid shadowing.
 +      * window.c (window_loop, size_window):
 +      (run_window_configuration_change_hook, enlarge_window): Likewise.
 +
 +      * window.c (display_buffer): Now static.
 +      (size_window): Mark variables that gcc -Wuninitialized
 +      does not deduce are never used uninitialized.
 +      * window.h (check_all_windows): New decl, to forestall
 +      gcc -Wmissing-prototypes diagnostic.
 +      * dispextern.h (bidi_dump_cached_states): Likewise.
 +
 +      * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
 +      shadowing.
 +      * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
 +      Include <limits.h>.
 +      (Fsort_charsets): Redo min/max calculation to shorten the code a bit
 +      and to avoid gcc -Wuninitialized warning.
 +      (load_charset_map): Mark variables that gcc -Wuninitialized
 +      does not deduce are never used uninitialized.
 +      (load_charset): Abort instead of using uninitialized var (Bug#8229).
 +
 +      * coding.c (coding_set_source, coding_set_destination):
 +      Use "else { /* comment */ }" rather than "else /* comment */;"
 +      for clarity, and to avoid gcc -Wempty-body warning.
 +      (Fdefine_coding_system_internal): Don't redeclare 'i' inside
 +      a block, when the outer 'i' will do.
 +      (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
 +      (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
 +      (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
 +      (decode_coding_raw_text, decode_coding_charset, get_translation_table):
 +      (Fdecode_sjis_char, Fdefine_coding_system_internal):
 +      Rename locals to avoid shadowing.
 +      * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
 +      * coding.c (emacs_mule_char, encode_invocation_designation):
 +      Now static, since they're not used elsewhere.
 +      (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
 +      (decode_coding_object, encode_coding_object, detect_coding_system):
 +      (decode_coding_emacs_mule): Mark variables that gcc
 +      -Wuninitialized does not deduce are never used uninitialized.
 +      (detect_coding_iso_2022): Initialize a local variable that might
 +      be used uninitialized.  Leave a FIXME because it's not clear that
 +      this initialization is needed.  (Bug#8211)
 +      (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
 +      (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
 +      (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
 +      (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
 +      Remove unused macros.
 +
 +      * category.c (hash_get_category_set): Remove unused local var.
 +      (copy_category_table): Now static, since it's not used elsewhere.
 +      * character.c (string_count_byte8): Likewise.
 +
 +      * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
 +      (Fregister_code_conversion_map): Rename locals to avoid shadowing.
 +
 +      * chartab.c (copy_sub_char_table): Now static, since it's not used
 +      elsewhere.
 +      (sub_char_table_ref_and_range, char_table_ref_and_range):
 +      Rename locals to avoid shadowing.
 +      (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
 +
 +      * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
 +      (BIDI_BOB): Remove unused macro.
 +
 +      * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
 +      deduce are never used uninitialized.
 +      * term.c (encode_terminal_code): Likewise.
 +
 +      * term.c (encode_terminal_code): Now static.  Remove unused local.
 +
 +      * tparam.h: New file.
 +      * term.c, tparam.h: Include it.
 +      * deps.mk (term.o, tparam.o): Depend on tparam.h.
 +      * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
 +      Move these decls to tparam.h, and make them agree with what
 +      is actually in tparam.c.  The previous trick of using incompatible
 +      decls in different modules does not conform to the C standard.
 +      All callers of tparam changed to use tparam's actual API.
 +      * tparam.c (tparam1, tparam, tgoto):
 +      Use const pointers where appropriate.
 +
 +      * cm.c (calccost, cmgoto): Use const pointers where appropriate.
 +      * cm.h (struct cm): Likewise.
 +      * dispextern.h (do_line_insertion_deletion_costs): Likewise.
 +      * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
 +      * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
 +      (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
 +      (turn_on_face, init_tty): Likewise.
 +      * termchar.h (struct tty_display_info): Likewise.
 +
 +      * term.c (term_mouse_position): Rename local to avoid shadowing.
 +
 +      * alloc.c (mark_ttys): Move decl from here ...
 +      * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
 +
 +2011-03-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
 +
 +2011-03-09  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * search.c (compile_pattern_1): Remove argument regp, unused since
 +      revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
 +      (compile_pattern): Don't pass it.
 +
 +2011-03-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (DEFAULT_GDK_DISPLAY): New define.
 +      (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
 +      for ! HAVE_GTK3.
 +      (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
 +
 +      * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
 +
 +      * gtkutil.c: Include gtkx.h if HAVE_GTK3.  If ! HAVE_GTK3, define
 +      gdk_window_get_screen, gdk_window_get_geometry,
 +      gdk_x11_window_lookup_for_display and GDK_KEY_g.
 +      (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
 +      (xg_get_pixbuf_from_pixmap): New function.
 +      (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
 +      to Pixmap, take frame as parameter, remove GdkColormap parameter.
 +      Call xg_get_pixbuf_from_pixmap instead of
 +      gdk_pixbuf_get_from_drawable.
 +      (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
 +      xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
 +      (xg_check_special_colors): Use GtkStyleContext and its functions
 +      for HAVE_GTK3.
 +      (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
 +      (xg_prepare_tooltip, create_dialog, menubar_map_cb)
 +      (xg_update_frame_menubar, xg_tool_bar_detach_callback)
 +      (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
 +      Call gtk_widget_get_preferred_size.
 +      (xg_frame_resized): gdk_window_get_geometry only takes 5
 +      parameters.
 +      (xg_win_to_widget, xg_event_is_for_menubar):
 +      Call gdk_x11_window_lookup_for_display.
 +      (xg_set_widget_bg): New function.
 +      (delete_cb): New function.
 +      (xg_create_frame_widgets): Connect delete-event to delete_cb.
 +      Call xg_set_widget_bg.  Only set backgrund pixmap for ! HAVE_GTK3
 +      (xg_set_background_color): Call xg_set_widget_bg.
 +      (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
 +      (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
 +      Only call gtk_range_set_update_policy if ! HAVE_GTK3.
 +      (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
 +      if ! HAVE_GTK3.
 +      (update_frame_tool_bar): Call gtk_widget_hide.
 +      (xg_initialize): Use GDK_KEY_g.
 +
 +      * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
 +      if ! HAVE_GTK3
 +      (x_session_initialize): Call gdk_x11_set_sm_client_id.
 +
 +      * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
 +      (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
 +      Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
 +
 +2011-03-08  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * gtkutil.c (xg_update_menubar, create_menus): Create empty
 -      submenu for menu bar items.
 +      * w32xfns.c (select_palette): Check success of RealizePalette against
 +      GDI_ERROR, not zero.
  
 -See ChangeLog.10 for earlier changes.
 +See ChangeLog.11 for earlier changes.
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; add-log-time-zone-rule: t
  ;; End:
  
 -    Copyright (C) 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  
    You should have received a copy of the GNU General Public License
    along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 -
 -;; arch-tag: dfb6ad96-1550-4905-9e53-d2059ee84c40
diff --combined src/dispnew.c
@@@ -1,5 -1,7 +1,5 @@@
  /* Updating of data structures for redisplay.
 -   Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
 -                 1997, 1998, 1999, 2000, 2001, 2002, 2003,
 -                 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +   Copyright (C) 1985-1988, 1993-1995, 1997-2011 Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
@@@ -21,7 -23,10 +21,7 @@@ along with GNU Emacs.  If not, see <htt
  #include <stdio.h>
  #include <ctype.h>
  #include <setjmp.h>
 -
 -#ifdef HAVE_UNISTD_H
  #include <unistd.h>
 -#endif
  
  #include "lisp.h"
  #include "termchar.h"
@@@ -42,6 -47,9 +42,6 @@@
  #include "blockinput.h"
  #include "process.h"
  
 -/* I don't know why DEC Alpha OSF1 fail to compile this file if we
 -   include the following file.  */
 -/* #include "systty.h" */
  #include "syssignal.h"
  
  #ifdef HAVE_X_WINDOWS
  #include "systime.h"
  #include <errno.h>
  
 -/* To get the prototype for `sleep'.  */
 -
 -#ifdef HAVE_UNISTD_H
 -#include <unistd.h>
 -#endif
 -
  /* Get number of chars of output now in the buffer of a stdio stream.
     This ought to be built in in stdio, but it isn't.  Some s- files
     override this because their stdio internals differ.  */
@@@ -103,73 -117,81 +103,73 @@@ struct di
  \f
  /* Function prototypes.  */
  
 -static struct glyph_matrix *save_current_matrix P_ ((struct frame *));
 -static void restore_current_matrix P_ ((struct frame *, struct glyph_matrix *));
 -static int showing_window_margins_p P_ ((struct window *));
 -static void fake_current_matrices P_ ((Lisp_Object));
 -static void redraw_overlapping_rows P_ ((struct window *, int));
 -static void redraw_overlapped_rows P_ ((struct window *, int));
 -static int count_blanks P_ ((struct glyph *, int));
 -static int count_match P_ ((struct glyph *, struct glyph *,
 -                          struct glyph *, struct glyph *));
 -static unsigned line_draw_cost P_ ((struct glyph_matrix *, int));
 -static void update_frame_line P_ ((struct frame *, int));
 +static struct glyph_matrix *save_current_matrix (struct frame *);
 +static void restore_current_matrix (struct frame *, struct glyph_matrix *);
 +static int showing_window_margins_p (struct window *);
 +static void fake_current_matrices (Lisp_Object);
 +static void redraw_overlapping_rows (struct window *, int);
 +static void redraw_overlapped_rows (struct window *, int);
 +static int count_blanks (struct glyph *, int);
 +static int count_match (struct glyph *, struct glyph *,
 +                        struct glyph *, struct glyph *);
 +static unsigned line_draw_cost (struct glyph_matrix *, int);
 +static void update_frame_line (struct frame *, int);
  static struct dim allocate_matrices_for_frame_redisplay
 -     P_ ((Lisp_Object, int, int, int, int *));
 -static void allocate_matrices_for_window_redisplay P_ ((struct window *));
 -static int realloc_glyph_pool P_ ((struct glyph_pool *, struct dim));
 -static void adjust_frame_glyphs P_ ((struct frame *));
 -struct glyph_matrix *new_glyph_matrix P_ ((struct glyph_pool *));
 -static void free_glyph_matrix P_ ((struct glyph_matrix *));
 -static void adjust_glyph_matrix P_ ((struct window *, struct glyph_matrix *,
 -                                   int, int, struct dim));
 -static void change_frame_size_1 P_ ((struct frame *, int, int, int, int, int));
 -static void swap_glyph_pointers P_ ((struct glyph_row *, struct glyph_row *));
 +     (Lisp_Object, int, int, int, int *);
 +static int required_matrix_height (struct window *);
 +static int required_matrix_width (struct window *);
 +static void allocate_matrices_for_window_redisplay (struct window *);
 +static int realloc_glyph_pool (struct glyph_pool *, struct dim);
 +static void adjust_frame_glyphs (struct frame *);
 +static struct glyph_matrix *new_glyph_matrix (struct glyph_pool *);
 +static void free_glyph_matrix (struct glyph_matrix *);
 +static void adjust_glyph_matrix (struct window *, struct glyph_matrix *,
 +                                 int, int, struct dim);
 +static void change_frame_size_1 (struct frame *, int, int, int, int, int);
 +static void increment_row_positions (struct glyph_row *, EMACS_INT, EMACS_INT);
 +static void swap_glyph_pointers (struct glyph_row *, struct glyph_row *);
  #if GLYPH_DEBUG
 -static int glyph_row_slice_p P_ ((struct glyph_row *, struct glyph_row *));
 +static int glyph_row_slice_p (struct glyph_row *, struct glyph_row *);
  #endif
 -static void fill_up_frame_row_with_spaces P_ ((struct glyph_row *, int));
 -static void build_frame_matrix_from_window_tree P_ ((struct glyph_matrix *,
 -                                                   struct window *));
 -static void build_frame_matrix_from_leaf_window P_ ((struct glyph_matrix *,
 -                                                   struct window *));
 -static struct glyph_pool *new_glyph_pool P_ ((void));
 -static void free_glyph_pool P_ ((struct glyph_pool *));
 -static void adjust_frame_glyphs_initially P_ ((void));
 -static void adjust_frame_message_buffer P_ ((struct frame *));
 -static void adjust_decode_mode_spec_buffer P_ ((struct frame *));
 -static void fill_up_glyph_row_with_spaces P_ ((struct glyph_row *));
 -static void build_frame_matrix P_ ((struct frame *));
 -void clear_current_matrices P_ ((struct frame *));
 -void scroll_glyph_matrix_range P_ ((struct glyph_matrix *, int, int,
 -                                  int, int));
 -static void clear_window_matrices P_ ((struct window *, int));
 -static void fill_up_glyph_row_area_with_spaces P_ ((struct glyph_row *, int));
 -static int scrolling_window P_ ((struct window *, int));
 -static int update_window_line P_ ((struct window *, int, int *));
 -static void update_marginal_area P_ ((struct window *, int, int));
 -static int update_text_area P_ ((struct window *, int));
 -static void make_current P_ ((struct glyph_matrix *, struct glyph_matrix *,
 -                            int));
 -static void mirror_make_current P_ ((struct window *, int));
 -void check_window_matrix_pointers P_ ((struct window *));
 +static void fill_up_frame_row_with_spaces (struct glyph_row *, int);
 +static void build_frame_matrix_from_window_tree (struct glyph_matrix *,
 +                                                 struct window *);
 +static void build_frame_matrix_from_leaf_window (struct glyph_matrix *,
 +                                                 struct window *);
 +static struct glyph_pool *new_glyph_pool (void);
 +static void free_glyph_pool (struct glyph_pool *);
 +static void adjust_frame_glyphs_initially (void);
 +static void adjust_frame_message_buffer (struct frame *);
 +static void adjust_decode_mode_spec_buffer (struct frame *);
 +static void fill_up_glyph_row_with_spaces (struct glyph_row *);
 +static void build_frame_matrix (struct frame *);
 +void clear_current_matrices (struct frame *);
 +void scroll_glyph_matrix_range (struct glyph_matrix *, int, int,
 +                                int, int);
 +static void clear_window_matrices (struct window *, int);
 +static void fill_up_glyph_row_area_with_spaces (struct glyph_row *, int);
 +static int scrolling_window (struct window *, int);
 +static int update_window_line (struct window *, int, int *);
 +static void update_marginal_area (struct window *, int, int);
 +static int update_text_area (struct window *, int);
 +static void make_current (struct glyph_matrix *, struct glyph_matrix *,
 +                          int);
 +static void mirror_make_current (struct window *, int);
 +void check_window_matrix_pointers (struct window *);
  #if GLYPH_DEBUG
 -static void check_matrix_pointers P_ ((struct glyph_matrix *,
 -                                     struct glyph_matrix *));
 +static void check_matrix_pointers (struct glyph_matrix *,
 +                                   struct glyph_matrix *);
  #endif
 -static void mirror_line_dance P_ ((struct window *, int, int, int *, char *));
 -static int update_window_tree P_ ((struct window *, int));
 -static int update_window P_ ((struct window *, int));
 -static int update_frame_1 P_ ((struct frame *, int, int));
 -static void set_window_cursor_after_update P_ ((struct window *));
 -static int row_equal_p P_ ((struct window *, struct glyph_row *,
 -                          struct glyph_row *, int));
 -static void adjust_frame_glyphs_for_window_redisplay P_ ((struct frame *));
 -static void adjust_frame_glyphs_for_frame_redisplay P_ ((struct frame *));
 -static void reverse_rows P_ ((struct glyph_matrix *, int, int));
 -static int margin_glyphs_to_reserve P_ ((struct window *, int, Lisp_Object));
 -static void sync_window_with_frame_matrix_rows P_ ((struct window *));
 -struct window *frame_row_to_window P_ ((struct window *, int));
 +static void mirror_line_dance (struct window *, int, int, int *, char *);
 +static int update_window_tree (struct window *, int);
 +static int update_window (struct window *, int);
 +static int update_frame_1 (struct frame *, int, int);
 +static int scrolling (struct frame *);
 +static void set_window_cursor_after_update (struct window *);
 +static void adjust_frame_glyphs_for_window_redisplay (struct frame *);
 +static void adjust_frame_glyphs_for_frame_redisplay (struct frame *);
  
  \f
 -/* Non-zero means don't pause redisplay for pending input.  (This is
 -   for debugging and for a future implementation of EDT-like
 -   scrolling.  */
 -
 -int redisplay_dont_pause;
 -
  /* Define PERIODIC_PREEMPTION_CHECKING to 1, if micro-second timers
     are supported, so we can check for input during redisplay at
     regular intervals.  */
  
  #if PERIODIC_PREEMPTION_CHECKING
  
 -/* If a number (float), check for user input every N seconds.  */
 -
 -Lisp_Object Vredisplay_preemption_period;
 -
  /* Redisplay preemption timers.  */
  
  static EMACS_TIME preemption_period;
@@@ -197,6 -223,49 +197,6 @@@ int frame_garbaged
  
  int display_completed;
  
 -/* Lisp variable visible-bell; enables use of screen-flash instead of
 -   audible bell.  */
 -
 -int visible_bell;
 -
 -/* Invert the color of the whole frame, at a low level.  */
 -
 -int inverse_video;
 -
 -/* Line speed of the terminal.  */
 -
 -EMACS_INT baud_rate;
 -
 -/* Either nil or a symbol naming the window system under which Emacs
 -   creates the first frame.  */
 -
 -Lisp_Object Vinitial_window_system;
 -
 -/* Version number of X windows: 10, 11 or nil.  */
 -
 -Lisp_Object Vwindow_system_version;
 -
 -/* Vector of glyph definitions.  Indexed by glyph number, the contents
 -   are a string which is how to output the glyph.
 -
 -   If Vglyph_table is nil, a glyph is output by using its low 8 bits
 -   as a character code.
 -
 -   This is an obsolete feature that is no longer used.  The variable
 -   is retained for compatibility.  */
 -
 -Lisp_Object Vglyph_table;
 -
 -/* Display table to use for vectors that don't specify their own.  */
 -
 -Lisp_Object Vstandard_display_table;
 -
 -/* Nonzero means reading single-character input with prompt so put
 -   cursor on mini-buffer after the prompt.  Positive means at end of
 -   text in echo area; negative means at beginning of line.  */
 -
 -int cursor_in_echo_area;
 -
  Lisp_Object Qdisplay_table, Qredisplay_dont_pause;
  
  \f
@@@ -214,7 -283,7 +214,7 @@@ struct frame *last_nonminibuf_frame
  
  /* 1 means SIGWINCH happened when not safe.  */
  
 -int delayed_size_change;
 +static int delayed_size_change;
  
  /* 1 means glyph initialization has been completed at startup.  */
  
@@@ -233,11 -302,17 +233,11 @@@ int updated_area
  
  struct glyph space_glyph;
  
 -/* Non-zero means update has been performed directly, so that there's
 -   no need for redisplay_internal to do much work.  Set by
 -   direct_output_for_insert.  */
 -
 -int redisplay_performed_directly_p;
 -
  /* Counts of allocated structures.  These counts serve to diagnose
     memory leaks and double frees.  */
  
 -int glyph_matrix_count;
 -int glyph_pool_count;
 +static int glyph_matrix_count;
 +static int glyph_pool_count;
  
  /* If non-null, the frame whose frame matrices are manipulated.  If
     null, window matrices are worked on.  */
@@@ -259,8 -334,8 +259,8 @@@ int fonts_changed_p
  
  #if GLYPH_DEBUG
  
 -static int window_to_frame_vpos P_ ((struct window *, int));
 -static int window_to_frame_hpos P_ ((struct window *, int));
 +static int window_to_frame_vpos (struct window *, int);
 +static int window_to_frame_hpos (struct window *, int);
  #define WINDOW_TO_FRAME_VPOS(W, VPOS) window_to_frame_vpos ((W), (VPOS))
  #define WINDOW_TO_FRAME_HPOS(W, HPOS) window_to_frame_hpos ((W), (HPOS))
  
@@@ -289,8 -364,8 +289,8 @@@ static int history_idx
  
  static unsigned history_tick;
  
 -static void add_frame_display_history P_ ((struct frame *, int));
 -static void add_window_display_history P_ ((struct window *, char *, int));
 +static void add_frame_display_history (struct frame *, int);
 +static void add_window_display_history (struct window *, char *, int);
  \f
  /* Add to the redisplay history how window W has been displayed.
     MSG is a trace containing the information how W's glyph matrix
     has been interrupted for pending input.  */
  
  static void
 -add_window_display_history (w, msg, paused_p)
 -     struct window *w;
 -     char *msg;
 -     int paused_p;
 +add_window_display_history (struct window *w, char *msg, int paused_p)
  {
    char *buf;
  
           w,
           ((BUFFERP (w->buffer)
             && STRINGP (XBUFFER (w->buffer)->name))
 -          ? (char *) SDATA (XBUFFER (w->buffer)->name)
 +          ? SSDATA (XBUFFER (w->buffer)->name)
            : "???"),
           paused_p ? " ***paused***" : "");
    strcat (buf, msg);
     pending input.  */
  
  static void
 -add_frame_display_history (f, paused_p)
 -     struct frame *f;
 -     int paused_p;
 +add_frame_display_history (struct frame *f, int paused_p)
  {
    char *buf;
  
  DEFUN ("dump-redisplay-history", Fdump_redisplay_history,
         Sdump_redisplay_history, 0, 0, "",
         doc: /* Dump redisplay history to stderr.  */)
 -     ()
 +  (void)
  {
    int i;
  
  #endif /* GLYPH_DEBUG == 0 */
  
  
 -/* Like bcopy except never gets confused by overlap.  Let this be the
 -   first function defined in this file, or change emacs.c where the
 -   address of this function is used.  */
 +#if defined PROFILING && !HAVE___EXECUTABLE_START
 +/* FIXME: only used to find text start for profiling.  */
  
  void
 -safe_bcopy (from, to, size)
 -     const char *from;
 -     char *to;
 -     int size;
 +safe_bcopy (const char *from, char *to, int size)
  {
 -  if (size <= 0 || from == to)
 -    return;
 -
 -  /* If the source and destination don't overlap, then bcopy can
 -     handle it.  If they do overlap, but the destination is lower in
 -     memory than the source, we'll assume bcopy can handle that.  */
 -  if (to < from || from + size <= to)
 -    bcopy (from, to, size);
 -
 -  /* Otherwise, we'll copy from the end.  */
 -  else
 -    {
 -      register const char *endf = from + size;
 -      register char *endt = to + size;
 -
 -      /* If TO - FROM is large, then we should break the copy into
 -       nonoverlapping chunks of TO - FROM bytes each.  However, if
 -       TO - FROM is small, then the bcopy function call overhead
 -       makes this not worth it.  The crossover point could be about
 -       anywhere.  Since I don't think the obvious copy loop is too
 -       bad, I'm trying to err in its favor.  */
 -      if (to - from < 64)
 -      {
 -        do
 -          *--endt = *--endf;
 -        while (endf != from);
 -      }
 -      else
 -      {
 -        for (;;)
 -          {
 -            endt -= (to - from);
 -            endf -= (to - from);
 -
 -            if (endt < to)
 -              break;
 -
 -            bcopy (endf, endt, to - from);
 -          }
 -
 -        /* If SIZE wasn't a multiple of TO - FROM, there will be a
 -           little left over.  The amount left over is (endt + (to -
 -           from)) - to, which is endt - from.  */
 -        bcopy (from, to, endt - from);
 -      }
 -    }
 +  abort ();
  }
 -
 -
 +#endif
  \f
  /***********************************************************************
                            Glyph Matrices
     member `pool' of the glyph matrix structure returned is set to
     POOL, the structure is otherwise zeroed.  */
  
 -struct glyph_matrix *
 -new_glyph_matrix (pool)
 -     struct glyph_pool *pool;
 +static struct glyph_matrix *
 +new_glyph_matrix (struct glyph_pool *pool)
  {
    struct glyph_matrix *result;
  
    /* Allocate and clear.  */
    result = (struct glyph_matrix *) xmalloc (sizeof *result);
 -  bzero (result, sizeof *result);
 +  memset (result, 0, sizeof *result);
  
    /* Increment number of allocated matrices.  This count is used
       to detect memory leaks.  */
     matrix also frees the glyph memory in this case.  */
  
  static void
 -free_glyph_matrix (matrix)
 -     struct glyph_matrix *matrix;
 +free_glyph_matrix (struct glyph_matrix *matrix)
  {
    if (matrix)
      {
     or a float.  */
  
  static int
 -margin_glyphs_to_reserve (w, total_glyphs, margin)
 -     struct window *w;
 -     int total_glyphs;
 -     Lisp_Object margin;
 +margin_glyphs_to_reserve (struct window *w, int total_glyphs, Lisp_Object margin)
  {
    int n;
  
     leads to screen flickering.  */
  
  static void
 -adjust_glyph_matrix (w, matrix, x, y, dim)
 -     struct window *w;
 -     struct glyph_matrix *matrix;
 -     int x, y;
 -     struct dim dim;
 +adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y, struct dim dim)
  {
    int i;
    int new_rows;
        int size = dim.height * sizeof (struct glyph_row);
        new_rows = dim.height - matrix->rows_allocated;
        matrix->rows = (struct glyph_row *) xrealloc (matrix->rows, size);
 -      bzero (matrix->rows + matrix->rows_allocated,
 -           new_rows * sizeof *matrix->rows);
 +      memset (matrix->rows + matrix->rows_allocated, 0,
 +            new_rows * sizeof *matrix->rows);
        matrix->rows_allocated = dim.height;
      }
    else
     below).  */
  
  static void
 -reverse_rows (matrix, start, end)
 -     struct glyph_matrix *matrix;
 -     int start, end;
 +reverse_rows (struct glyph_matrix *matrix, int start, int end)
  {
    int i, j;
  
     rotating right.  */
  
  void
 -rotate_matrix (matrix, first, last, by)
 -     struct glyph_matrix *matrix;
 -     int first, last, by;
 +rotate_matrix (struct glyph_matrix *matrix, int first, int last, int by)
  {
    if (by < 0)
      {
     DELTA_BYTES.  */
  
  void
 -increment_matrix_positions (matrix, start, end, delta, delta_bytes)
 -     struct glyph_matrix *matrix;
 -     int start, end, delta, delta_bytes;
 +increment_matrix_positions (struct glyph_matrix *matrix, int start, int end,
 +                          EMACS_INT delta, EMACS_INT delta_bytes)
  {
    /* Check that START and END are reasonable values.  */
    xassert (start >= 0 && start <= matrix->nrows);
     ENABLED_P is non-zero, enabled_p flags in rows will be set to 1.  */
  
  void
 -enable_glyph_matrix_rows (matrix, start, end, enabled_p)
 -     struct glyph_matrix *matrix;
 -     int start, end;
 -     int enabled_p;
 +enable_glyph_matrix_rows (struct glyph_matrix *matrix, int start, int end, int enabled_p)
  {
    xassert (start <= end);
    xassert (start >= 0 && start < matrix->nrows);
     currently present is the flag MATRIX->no_scrolling_p.  */
  
  void
 -clear_glyph_matrix (matrix)
 -     struct glyph_matrix *matrix;
 +clear_glyph_matrix (struct glyph_matrix *matrix)
  {
    if (matrix)
      {
     and recompute their visible height.  */
  
  void
 -shift_glyph_matrix (w, matrix, start, end, dy)
 -     struct window *w;
 -     struct glyph_matrix *matrix;
 -     int start, end, dy;
 +shift_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int start, int end, int dy)
  {
    int min_y, max_y;
  
     current matrix.  */
  
  void
 -clear_current_matrices (f)
 -     register struct frame *f;
 +clear_current_matrices (register struct frame *f)
  {
    /* Clear frame current matrix, if we have one.  */
    if (f->current_matrix)
  /* Clear out all display lines of F for a coming redisplay.  */
  
  void
 -clear_desired_matrices (f)
 -     register struct frame *f;
 +clear_desired_matrices (register struct frame *f)
  {
    if (f->desired_matrix)
      clear_glyph_matrix (f->desired_matrix);
     non-zero clear desired matrices, otherwise clear current matrices.  */
  
  static void
 -clear_window_matrices (w, desired_p)
 -     struct window *w;
 -     int desired_p;
 +clear_window_matrices (struct window *w, int desired_p)
  {
    while (w)
      {
  static struct glyph_row null_row;
  
  void
 -clear_glyph_row (row)
 -     struct glyph_row *row;
 +clear_glyph_row (struct glyph_row *row)
  {
    struct glyph *p[1 + LAST_AREA];
  
         returned by xmalloc.  If flickering happens again, activate
         the code below.  If the flickering is gone with that, chances
         are that the flickering has the same reason as here.  */
 -  bzero (p[0], (char *) p[LAST_AREA] - (char *) p[0]);
 +  memset (p[0], 0, (char *) p[LAST_AREA] - (char *) p[0]);
  #endif
  }
  
     in window W starting at y-position Y.  */
  
  void
 -blank_row (w, row, y)
 -     struct window *w;
 -     struct glyph_row *row;
 -     int y;
 +blank_row (struct window *w, struct glyph_row *row, int y)
  {
    int min_y, max_y;
  
     the used count of the text area is zero.  Such rows display line
     ends.  */
  
 -void
 -increment_row_positions (row, delta, delta_bytes)
 -     struct glyph_row *row;
 -     int delta, delta_bytes;
 +static void
 +increment_row_positions (struct glyph_row *row,
 +                       EMACS_INT delta, EMACS_INT delta_bytes)
  {
    int area, i;
  
    MATRIX_ROW_START_BYTEPOS (row) += delta_bytes;
    MATRIX_ROW_END_CHARPOS (row) += delta;
    MATRIX_ROW_END_BYTEPOS (row) += delta_bytes;
 +  CHARPOS (row->start.pos) += delta;
 +  BYTEPOS (row->start.pos) += delta_bytes;
 +  CHARPOS (row->end.pos) += delta;
 +  BYTEPOS (row->end.pos) += delta_bytes;
  
    if (!row->enabled_p)
      return;
@@@ -1100,7 -1256,8 +1100,7 @@@ swap_glyphs_in_rows (a, b
  /* Exchange pointers to glyph memory between glyph rows A and B.  */
  
  static INLINE void
 -swap_glyph_pointers (a, b)
 -     struct glyph_row *a, *b;
 +swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b)
  {
    int i;
    for (i = 0; i < LAST_AREA + 1; ++i)
  /* Copy glyph row structure FROM to glyph row structure TO, except
     that glyph pointers in the structures are left unchanged.  */
  
 -INLINE void
 -copy_row_except_pointers (to, from)
 -     struct glyph_row *to, *from;
 +static INLINE void
 +copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from)
  {
    struct glyph *pointers[1 + LAST_AREA];
  
    /* Save glyph pointers of TO.  */
 -  bcopy (to->glyphs, pointers, sizeof to->glyphs);
 +  memcpy (pointers, to->glyphs, sizeof to->glyphs);
  
    /* Do a structure assignment.  */
    *to = *from;
  
    /* Restore original pointers of TO.  */
 -  bcopy (pointers, to->glyphs, sizeof to->glyphs);
 -}
 -
 -
 -/* Copy contents of glyph row FROM to glyph row TO.  Glyph pointers in
 -   TO and FROM are left unchanged.  Glyph contents are copied from the
 -   glyph memory of FROM to the glyph memory of TO.  Increment buffer
 -   positions in row TO by DELTA/ DELTA_BYTES.  */
 -
 -void
 -copy_glyph_row_contents (to, from, delta, delta_bytes)
 -     struct glyph_row *to, *from;
 -     int delta, delta_bytes;
 -{
 -  int area;
 -
 -  /* This is like a structure assignment TO = FROM, except that
 -     glyph pointers in the rows are left unchanged.  */
 -  copy_row_except_pointers (to, from);
 -
 -  /* Copy glyphs from FROM to TO.  */
 -  for (area = 0; area < LAST_AREA; ++area)
 -    if (from->used[area])
 -      bcopy (from->glyphs[area], to->glyphs[area],
 -           from->used[area] * sizeof (struct glyph));
 -
 -  /* Increment buffer positions in TO by DELTA.  */
 -  increment_row_positions (to, delta, delta_bytes);
 +  memcpy (to->glyphs, pointers, sizeof to->glyphs);
  }
  
  
     a memory leak.  */
  
  static INLINE void
 -assign_row (to, from)
 -     struct glyph_row *to, *from;
 +assign_row (struct glyph_row *to, struct glyph_row *from)
  {
    swap_glyph_pointers (to, from);
    copy_row_except_pointers (to, from);
  #if GLYPH_DEBUG
  
  static int
 -glyph_row_slice_p (window_row, frame_row)
 -     struct glyph_row *window_row, *frame_row;
 +glyph_row_slice_p (struct glyph_row *window_row, struct glyph_row *frame_row)
  {
    struct glyph *window_glyph_start = window_row->glyphs[0];
    struct glyph *frame_glyph_start = frame_row->glyphs[0];
     in WINDOW_MATRIX is found satisfying the condition.  */
  
  static struct glyph_row *
 -find_glyph_row_slice (window_matrix, frame_matrix, row)
 -     struct glyph_matrix *window_matrix, *frame_matrix;
 -     int row;
 +find_glyph_row_slice (struct glyph_matrix *window_matrix,
 +                    struct glyph_matrix *frame_matrix, int row)
  {
    int i;
  
     call to this function really clears it.  */
  
  void
 -prepare_desired_row (row)
 -     struct glyph_row *row;
 +prepare_desired_row (struct glyph_row *row)
  {
    if (!row->enabled_p)
      {
 +      unsigned rp = row->reversed_p;
 +
        clear_glyph_row (row);
        row->enabled_p = 1;
 +      row->reversed_p = rp;
      }
  }
  
  
  /* Return a hash code for glyph row ROW.  */
  
 -int
 -line_hash_code (row)
 -     struct glyph_row *row;
 +static int
 +line_hash_code (struct glyph_row *row)
  {
    int hash = 0;
  
     zero, leading and trailing spaces are ignored.  */
  
  static unsigned int
 -line_draw_cost (matrix, vpos)
 -     struct glyph_matrix *matrix;
 -     int vpos;
 +line_draw_cost (struct glyph_matrix *matrix, int vpos)
  {
    struct glyph_row *row = matrix->rows + vpos;
    struct glyph *beg = row->glyphs[TEXT_AREA];
  
  
  /* Test two glyph rows A and B for equality.  Value is non-zero if A
 -   and B have equal contents.  W is the window to which the glyphs
 -   rows A and B belong.  It is needed here to test for partial row
 -   visibility.  MOUSE_FACE_P non-zero means compare the mouse_face_p
 -   flags of A and B, too.  */
 +   and B have equal contents.  MOUSE_FACE_P non-zero means compare the
 +   mouse_face_p flags of A and B, too.  */
  
  static INLINE int
 -row_equal_p (w, a, b, mouse_face_p)
 -     struct window *w;
 -     struct glyph_row *a, *b;
 -     int mouse_face_p;
 +row_equal_p (struct glyph_row *a, struct glyph_row *b, int mouse_face_p)
  {
    if (a == b)
      return 1;
          || a->overlapped_p != b->overlapped_p
          || (MATRIX_ROW_CONTINUATION_LINE_P (a)
              != MATRIX_ROW_CONTINUATION_LINE_P (b))
 +        || a->reversed_p != b->reversed_p
          /* Different partially visible characters on left margin.  */
          || a->x != b->x
          /* Different height.  */
     incremented for each pool allocated.  */
  
  static struct glyph_pool *
 -new_glyph_pool ()
 +new_glyph_pool (void)
  {
    struct glyph_pool *result;
  
    /* Allocate a new glyph_pool and clear it.  */
    result = (struct glyph_pool *) xmalloc (sizeof *result);
 -  bzero (result, sizeof *result);
 +  memset (result, 0, sizeof *result);
  
    /* For memory leak and double deletion checking.  */
    ++glyph_pool_count;
     was passed to free_glyph_pool.  */
  
  static void
 -free_glyph_pool (pool)
 -     struct glyph_pool *pool;
 +free_glyph_pool (struct glyph_pool *pool)
  {
    if (pool)
      {
     re-adjusting window glyph matrices necessary.  */
  
  static int
 -realloc_glyph_pool (pool, matrix_dim)
 -     struct glyph_pool *pool;
 -     struct dim matrix_dim;
 +realloc_glyph_pool (struct glyph_pool *pool, struct dim matrix_dim)
  {
    int needed;
    int changed_p;
        int size = needed * sizeof (struct glyph);
  
        if (pool->glyphs)
 -      pool->glyphs = (struct glyph *) xrealloc (pool->glyphs, size);
 +      {
 +        pool->glyphs = (struct glyph *) xrealloc (pool->glyphs, size);
 +        memset (pool->glyphs + pool->nglyphs, 0,
 +                size - pool->nglyphs * sizeof (struct glyph));
 +      }
        else
        {
          pool->glyphs = (struct glyph *) xmalloc (size);
 -        bzero (pool->glyphs, size);
 +        memset (pool->glyphs, 0, size);
        }
  
        pool->nglyphs = needed;
  */
  
  void
 -flush_stdout ()
 +flush_stdout (void)
  {
    fflush (stdout);
  }
     MATRIX.  */
  
  void
 -check_matrix_pointer_lossage (matrix)
 -     struct glyph_matrix *matrix;
 +check_matrix_pointer_lossage (struct glyph_matrix *matrix)
  {
    int i, j;
  
  /* Get a pointer to glyph row ROW in MATRIX, with bounds checks.  */
  
  struct glyph_row *
 -matrix_row (matrix, row)
 -     struct glyph_matrix *matrix;
 -     int row;
 +matrix_row (struct glyph_matrix *matrix, int row)
  {
    xassert (matrix && matrix->rows);
    xassert (row >= 0 && row < matrix->nrows);
     window W.  */
  
  static void
 -check_matrix_invariants (w)
 -     struct window *w;
 +check_matrix_invariants (struct window *w)
  {
    struct glyph_matrix *matrix = w->current_matrix;
    int yb = window_text_bottom_y (w);
        /* Check that character and byte positions are in sync.  */
        xassert (MATRIX_ROW_START_BYTEPOS (row)
               == CHAR_TO_BYTE (MATRIX_ROW_START_CHARPOS (row)));
 +      xassert (BYTEPOS (row->start.pos)
 +             == CHAR_TO_BYTE (CHARPOS (row->start.pos)));
  
        /* CHAR_TO_BYTE aborts when invoked for a position > Z.  We can
         have such a position temporarily in case of a minibuffer
         displaying something like `[Sole completion]' at its end.  */
        if (MATRIX_ROW_END_CHARPOS (row) < BUF_ZV (current_buffer))
 -      xassert (MATRIX_ROW_END_BYTEPOS (row)
 -               == CHAR_TO_BYTE (MATRIX_ROW_END_CHARPOS (row)));
 +      {
 +        xassert (MATRIX_ROW_END_BYTEPOS (row)
 +                 == CHAR_TO_BYTE (MATRIX_ROW_END_CHARPOS (row)));
 +        xassert (BYTEPOS (row->end.pos)
 +                 == CHAR_TO_BYTE (CHARPOS (row->end.pos)));
 +      }
  
        /* Check that end position of `row' is equal to start position
         of next row.  */
                   == MATRIX_ROW_START_CHARPOS (next));
          xassert (MATRIX_ROW_END_BYTEPOS (row)
                   == MATRIX_ROW_START_BYTEPOS (next));
 +        xassert (CHARPOS (row->end.pos) == CHARPOS (next->start.pos));
 +        xassert (BYTEPOS (row->end.pos) == BYTEPOS (next->start.pos));
        }
        row = next;
      }
  #define CHANGED_LEAF_MATRIX   (1 << 1)
  
  static struct dim
 -allocate_matrices_for_frame_redisplay (window, x, y, dim_only_p,
 -                                     window_change_flags)
 -     Lisp_Object window;
 -     int x, y;
 -     int dim_only_p;
 -     int *window_change_flags;
 +allocate_matrices_for_frame_redisplay (Lisp_Object window, int x, int y,
 +                                     int dim_only_p, int *window_change_flags)
  {
    struct frame *f = XFRAME (WINDOW_FRAME (XWINDOW (window)));
    int x0 = x, y0 = y;
  
  /* Return the required height of glyph matrices for window W.  */
  
 -int
 -required_matrix_height (w)
 -     struct window *w;
 +static int
 +required_matrix_height (struct window *w)
  {
  #ifdef HAVE_WINDOW_SYSTEM
    struct frame *f = XFRAME (w->frame);
  
  /* Return the required width of glyph matrices for window W.  */
  
 -int
 -required_matrix_width (w)
 -     struct window *w;
 +static int
 +required_matrix_width (struct window *w)
  {
  #ifdef HAVE_WINDOW_SYSTEM
    struct frame *f = XFRAME (w->frame);
     window whose matrices must be allocated/reallocated.  */
  
  static void
 -allocate_matrices_for_window_redisplay (w)
 -     struct window *w;
 +allocate_matrices_for_window_redisplay (struct window *w)
  {
    while (w)
      {
     changes, or its window configuration changes.  */
  
  void
 -adjust_glyphs (f)
 -     struct frame *f;
 +adjust_glyphs (struct frame *f)
  {
    /* Block input so that expose events and other events that access
       glyph matrices are not processed while we are changing them.  */
     windows to estimated values.  */
  
  static void
 -adjust_frame_glyphs_initially ()
 +adjust_frame_glyphs_initially (void)
  {
    struct frame *sf = SELECTED_FRAME ();
    struct window *root = XWINDOW (sf->root_window);
  /* Allocate/reallocate glyph matrices of a single frame F.  */
  
  static void
 -adjust_frame_glyphs (f)
 -     struct frame *f;
 +adjust_frame_glyphs (struct frame *f)
  {
    if (FRAME_WINDOW_P (f))
      adjust_frame_glyphs_for_window_redisplay (f);
  /* Return 1 if any window in the tree has nonzero window margins.  See
     the hack at the end of adjust_frame_glyphs_for_frame_redisplay.  */
  static int
 -showing_window_margins_p (w)
 -     struct window *w;
 +showing_window_margins_p (struct window *w)
  {
    while (w)
      {
     windows from the frame's current matrix.  */
  
  static void
 -fake_current_matrices (window)
 -     Lisp_Object window;
 +fake_current_matrices (Lisp_Object window)
  {
    struct window *w;
  
     a glyph matrix holding the contents of F's current frame matrix.  */
  
  static struct glyph_matrix *
 -save_current_matrix (f)
 -     struct frame *f;
 +save_current_matrix (struct frame *f)
  {
    int i;
    struct glyph_matrix *saved;
  
    saved = (struct glyph_matrix *) xmalloc (sizeof *saved);
 -  bzero (saved, sizeof *saved);
 +  memset (saved, 0, sizeof *saved);
    saved->nrows = f->current_matrix->nrows;
    saved->rows = (struct glyph_row *) xmalloc (saved->nrows
                                              * sizeof *saved->rows);
 -  bzero (saved->rows, saved->nrows * sizeof *saved->rows);
 +  memset (saved->rows, 0, saved->nrows * sizeof *saved->rows);
  
    for (i = 0; i < saved->nrows; ++i)
      {
        struct glyph_row *to = saved->rows + i;
        size_t nbytes = from->used[TEXT_AREA] * sizeof (struct glyph);
        to->glyphs[TEXT_AREA] = (struct glyph *) xmalloc (nbytes);
 -      bcopy (from->glyphs[TEXT_AREA], to->glyphs[TEXT_AREA], nbytes);
 +      memcpy (to->glyphs[TEXT_AREA], from->glyphs[TEXT_AREA], nbytes);
        to->used[TEXT_AREA] = from->used[TEXT_AREA];
      }
  
     and free memory associated with SAVED.  */
  
  static void
 -restore_current_matrix (f, saved)
 -     struct frame *f;
 -     struct glyph_matrix *saved;
 +restore_current_matrix (struct frame *f, struct glyph_matrix *saved)
  {
    int i;
  
        struct glyph_row *from = saved->rows + i;
        struct glyph_row *to = f->current_matrix->rows + i;
        size_t nbytes = from->used[TEXT_AREA] * sizeof (struct glyph);
 -      bcopy (from->glyphs[TEXT_AREA], to->glyphs[TEXT_AREA], nbytes);
 +      memcpy (to->glyphs[TEXT_AREA], from->glyphs[TEXT_AREA], nbytes);
        to->used[TEXT_AREA] = from->used[TEXT_AREA];
        xfree (from->glyphs[TEXT_AREA]);
      }
     frame-based redisplay.  */
  
  static void
 -adjust_frame_glyphs_for_frame_redisplay (f)
 -     struct frame *f;
 +adjust_frame_glyphs_for_frame_redisplay (struct frame *f)
  {
    struct dim matrix_dim;
    int pool_changed_p;
     window-based redisplay.  */
  
  static void
 -adjust_frame_glyphs_for_window_redisplay (f)
 -     struct frame *f;
 +adjust_frame_glyphs_for_window_redisplay (struct frame *f)
  {
 -  struct window *w;
 -
    xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f));
  
    /* Allocate/reallocate window matrices.  */
  #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
    {
      /* Allocate a dummy window if not already done.  */
 +    struct window *w;
      if (NILP (f->menu_bar_window))
        {
        f->menu_bar_window = make_window ();
  #endif /* HAVE_X_WINDOWS */
  
  #ifndef USE_GTK
 -  /* Allocate/ reallocate matrices of the tool bar window.  If we
 -     don't have a tool bar window yet, make one.  */
 -  if (NILP (f->tool_bar_window))
 -    {
 -      f->tool_bar_window = make_window ();
 +  {
 +    /* Allocate/ reallocate matrices of the tool bar window.  If we
 +       don't have a tool bar window yet, make one.  */
 +    struct window *w;
 +    if (NILP (f->tool_bar_window))
 +      {
 +      f->tool_bar_window = make_window ();
 +      w = XWINDOW (f->tool_bar_window);
 +      XSETFRAME (w->frame, f);
 +      w->pseudo_window_p = 1;
 +      }
 +    else
        w = XWINDOW (f->tool_bar_window);
 -      XSETFRAME (w->frame, f);
 -      w->pseudo_window_p = 1;
 -    }
 -  else
 -    w = XWINDOW (f->tool_bar_window);
  
 -  XSETFASTINT (w->top_line, FRAME_MENU_BAR_LINES (f));
 -  XSETFASTINT (w->left_col, 0);
 -  XSETFASTINT (w->total_lines, FRAME_TOOL_BAR_LINES (f));
 -  XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f));
 -  allocate_matrices_for_window_redisplay (w);
 +    XSETFASTINT (w->top_line, FRAME_MENU_BAR_LINES (f));
 +    XSETFASTINT (w->left_col, 0);
 +    XSETFASTINT (w->total_lines, FRAME_TOOL_BAR_LINES (f));
 +    XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f));
 +    allocate_matrices_for_window_redisplay (w);
 +  }
  #endif
  }
  
     eventually without causing trouble).  */
  
  static void
 -adjust_frame_message_buffer (f)
 -     struct frame *f;
 +adjust_frame_message_buffer (struct frame *f)
  {
    int size = FRAME_MESSAGE_BUF_SIZE (f) + 1;
  
  /* Re-allocate buffer for decode_mode_spec on frame F.  */
  
  static void
 -adjust_decode_mode_spec_buffer (f)
 -     struct frame *f;
 +adjust_decode_mode_spec_buffer (struct frame *f)
  {
    f->decode_mode_spec_buffer
      = (char *) xrealloc (f->decode_mode_spec_buffer,
     the function is called when F is destroyed.  */
  
  void
 -free_glyphs (f)
 -     struct frame *f;
 +free_glyphs (struct frame *f)
  {
    if (f && f->glyphs_initialized_p)
      {
     the same tree more than once.  */
  
  void
 -free_window_matrices (w)
 -     struct window *w;
 +free_window_matrices (struct window *w)
  {
    while (w)
      {
     explicitly and check that nothing is left allocated.  */
  
  void
 -check_glyph_memory ()
 +check_glyph_memory (void)
  {
    Lisp_Object tail, frame;
  
     sure not to touch them in this function.  */
  
  static void
 -build_frame_matrix (f)
 -     struct frame *f;
 +build_frame_matrix (struct frame *f)
  {
    int i;
  
     matrices.  W is the root of a window tree.  */
  
  static void
 -build_frame_matrix_from_window_tree (matrix, w)
 -     struct glyph_matrix *matrix;
 -     struct window *w;
 +build_frame_matrix_from_window_tree (struct glyph_matrix *matrix, struct window *w)
  {
    while (w)
      {
     preserve_other_columns in the old redisplay.  */
  
  static void
 -build_frame_matrix_from_leaf_window (frame_matrix, w)
 -     struct glyph_matrix *frame_matrix;
 -     struct window *w;
 +build_frame_matrix_from_leaf_window (struct glyph_matrix *frame_matrix, struct window *w)
  {
    struct glyph_matrix *window_matrix;
    int window_y, frame_y;
        if (current_row_p)
        {
          /* Copy window row to frame row.  */
 -        bcopy (window_row->glyphs[0],
 -               frame_row->glyphs[TEXT_AREA] + window_matrix->matrix_x,
 -               window_matrix->matrix_w * sizeof (struct glyph));
 +        memcpy (frame_row->glyphs[TEXT_AREA] + window_matrix->matrix_x,
 +                window_row->glyphs[0],
 +                window_matrix->matrix_w * sizeof (struct glyph));
        }
        else
        {
     for instance, vertical separators, truncation markers, etc.  */
  
  void
 -spec_glyph_lookup_face (w, glyph)
 -     struct window *w;
 -     GLYPH *glyph;
 +spec_glyph_lookup_face (struct window *w, GLYPH *glyph)
  {
    int lface_id = GLYPH_FACE (*glyph);
    /* Convert the glyph's specified face to a realized (cache) face.  */
     To be called for frame-based redisplay, only.  */
  
  static void
 -fill_up_glyph_row_with_spaces (row)
 -     struct glyph_row *row;
 +fill_up_glyph_row_with_spaces (struct glyph_row *row)
  {
    fill_up_glyph_row_area_with_spaces (row, LEFT_MARGIN_AREA);
    fill_up_glyph_row_area_with_spaces (row, TEXT_AREA);
     frame-based redisplay only.  */
  
  static void
 -fill_up_glyph_row_area_with_spaces (row, area)
 -     struct glyph_row *row;
 -     int area;
 +fill_up_glyph_row_area_with_spaces (struct glyph_row *row, int area)
  {
    if (row->glyphs[area] < row->glyphs[area + 1])
      {
     reached.  In frame matrices only one area, TEXT_AREA, is used.  */
  
  static void
 -fill_up_frame_row_with_spaces (row, upto)
 -     struct glyph_row *row;
 -     int upto;
 +fill_up_frame_row_with_spaces (struct glyph_row *row, int upto)
  {
    int i = row->used[TEXT_AREA];
    struct glyph *glyph = row->glyphs[TEXT_AREA];
     working on frame matrices or not.  */
  
  static INLINE void
 -set_frame_matrix_frame (f)
 -     struct frame *f;
 +set_frame_matrix_frame (struct frame *f)
  {
    frame_matrix_frame = f;
  }
     operations in window matrices of frame_matrix_frame.  */
  
  static INLINE void
 -make_current (desired_matrix, current_matrix, row)
 -     struct glyph_matrix *desired_matrix, *current_matrix;
 -     int row;
 +make_current (struct glyph_matrix *desired_matrix, struct glyph_matrix *current_matrix, int row)
  {
    struct glyph_row *current_row = MATRIX_ROW (current_matrix, row);
    struct glyph_row *desired_row = MATRIX_ROW (desired_matrix, row);
     matrices of leaf windows in the window tree rooted at W.  */
  
  static void
 -mirror_make_current (w, frame_row)
 -     struct window *w;
 -     int frame_row;
 +mirror_make_current (struct window *w, int frame_row)
  {
    while (w)
      {
              else
                swap_glyph_pointers (desired_row, current_row);
              current_row->enabled_p = 1;
 +
 +            /* Set the Y coordinate of the mode/header line's row.
 +               It is needed in draw_row_with_mouse_face to find the
 +               screen coordinates.  (Window-based redisplay sets
 +               this in update_window, but no one seems to do that
 +               for frame-based redisplay.)  */
 +            if (current_row->mode_line_p)
 +              current_row->y = row;
            }
        }
  
     This function is called from do_scrolling and do_direct_scrolling.  */
  
  void
 -mirrored_line_dance (matrix, unchanged_at_top, nlines, copy_from,
 -                   retained_p)
 -     struct glyph_matrix *matrix;
 -     int unchanged_at_top, nlines;
 -     int *copy_from;
 -     char *retained_p;
 +mirrored_line_dance (struct glyph_matrix *matrix, int unchanged_at_top, int nlines,
 +                   int *copy_from, char *retained_p)
  {
    /* A copy of original rows.  */
    struct glyph_row *old_rows;
  
    /* Make a copy of the original rows.  */
    old_rows = (struct glyph_row *) alloca (nlines * sizeof *old_rows);
 -  bcopy (new_rows, old_rows, nlines * sizeof *old_rows);
 +  memcpy (old_rows, new_rows, nlines * sizeof *old_rows);
  
    /* Assign new rows, maybe clear lines.  */
    for (i = 0; i < nlines; ++i)
     the current frame matrix.  */
  
  static void
 -sync_window_with_frame_matrix_rows (w)
 -     struct window *w;
 +sync_window_with_frame_matrix_rows (struct window *w)
  {
    struct frame *f = XFRAME (w->frame);
    struct glyph_row *window_row, *window_row_end, *frame_row;
  /* Return the window in the window tree rooted in W containing frame
     row ROW.  Value is null if none is found.  */
  
 -struct window *
 -frame_row_to_window (w, row)
 -     struct window *w;
 -     int row;
 +static struct window *
 +frame_row_to_window (struct window *w, int row)
  {
    struct window *found = NULL;
  
     which is empty.  */
  
  static void
 -mirror_line_dance (w, unchanged_at_top, nlines, copy_from, retained_p)
 -     struct window *w;
 -     int unchanged_at_top, nlines;
 -     int *copy_from;
 -     char *retained_p;
 +mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy_from, char *retained_p)
  {
    while (w)
      {
  
          /* Make a copy of the original rows of matrix m.  */
          old_rows = (struct glyph_row *) alloca (m->nrows * sizeof *old_rows);
 -        bcopy (m->rows, old_rows, m->nrows * sizeof *old_rows);
 +        memcpy (old_rows, m->rows, m->nrows * sizeof *old_rows);
  
          for (i = 0; i < nlines; ++i)
            {
     glyph pointers.  */
  
  void
 -check_window_matrix_pointers (w)
 -     struct window *w;
 +check_window_matrix_pointers (struct window *w)
  {
    while (w)
      {
     corresponding frame row.  If it isn't, abort.  */
  
  static void
 -check_matrix_pointers (window_matrix, frame_matrix)
 -     struct glyph_matrix *window_matrix, *frame_matrix;
 +check_matrix_pointers (struct glyph_matrix *window_matrix,
 +                     struct glyph_matrix *frame_matrix)
  {
    /* Row number in WINDOW_MATRIX.  */
    int i = 0;
     vertical position relative to W's frame.  */
  
  static int
 -window_to_frame_vpos (w, vpos)
 -     struct window *w;
 -     int vpos;
 +window_to_frame_vpos (struct window *w, int vpos)
  {
    struct frame *f = XFRAME (w->frame);
  
     a horizontal position relative to W's frame.  */
  
  static int
 -window_to_frame_hpos (w, hpos)
 -     struct window *w;
 -     int hpos;
 +window_to_frame_hpos (struct window *w, int hpos)
  {
    xassert (!FRAME_WINDOW_P (XFRAME (w->frame)));
    hpos += WINDOW_LEFT_EDGE_COL (w);
  
  DEFUN ("redraw-frame", Fredraw_frame, Sredraw_frame, 1, 1, 0,
         doc: /* Clear frame FRAME and output again what is supposed to appear on it.  */)
 -     (frame)
 -     Lisp_Object frame;
 +  (Lisp_Object frame)
  {
    struct frame *f;
  
     function redraw-frame.  */
  
  void
 -redraw_frame (f)
 -     struct frame *f;
 +redraw_frame (struct frame *f)
  {
    Lisp_Object frame;
    XSETFRAME (frame, f);
  
  DEFUN ("redraw-display", Fredraw_display, Sredraw_display, 0, 0, "",
         doc: /* Clear and redisplay all visible frames.  */)
 -     ()
 +  (void)
  {
    Lisp_Object tail, frame;
  
  }
  
  
 -/* This is used when frame_garbaged is set.  Call Fredraw_frame on all
 -   visible frames marked as garbaged.  */
 -
 -void
 -redraw_garbaged_frames ()
 -{
 -  Lisp_Object tail, frame;
 -
 -  FOR_EACH_FRAME (tail, frame)
 -    if (FRAME_VISIBLE_P (XFRAME (frame))
 -      && FRAME_GARBAGED_P (XFRAME (frame)))
 -      Fredraw_frame (frame);
 -}
 -
 -
 -\f
 -/***********************************************************************
 -                        Direct Operations
 - ***********************************************************************/
 -
 -/* Try to update display and current glyph matrix directly.
 -
 -   This function is called after a character G has been inserted into
 -   current_buffer.  It tries to update the current glyph matrix and
 -   perform appropriate screen output to reflect the insertion.  If it
 -   succeeds, the global flag redisplay_performed_directly_p will be
 -   set to 1, and thereby prevent the more costly general redisplay
 -   from running (see redisplay_internal).
 -
 -   This function is not called for `hairy' character insertions.
 -   In particular, it is not called when after or before change
 -   functions exist, like they are used by font-lock.  See keyboard.c
 -   for details where this function is called.  */
 -
 -int
 -direct_output_for_insert (g)
 -     int g;
 -{
 -  register struct frame *f = SELECTED_FRAME ();
 -  struct window *w = XWINDOW (selected_window);
 -  struct it it, it2;
 -  struct glyph_row *glyph_row;
 -  struct glyph *glyphs, *glyph, *end;
 -  int n;
 -  /* Non-null means that redisplay of W is based on window matrices.  */
 -  int window_redisplay_p = FRAME_WINDOW_P (f);
 -  /* Non-null means we are in overwrite mode.  */
 -  int overwrite_p = !NILP (current_buffer->overwrite_mode);
 -  int added_width;
 -  struct text_pos pos;
 -  int delta, delta_bytes;
 -
 -  /* Not done directly.  */
 -  redisplay_performed_directly_p = 0;
 -
 -  /* Quickly give up for some common cases.  */
 -  if (cursor_in_echo_area
 -      /* Give up if fonts have changed.  */
 -      || fonts_changed_p
 -      /* Give up if face attributes have been changed.  */
 -      || face_change_count
 -      /* Give up if cursor position not really known.  */
 -      || !display_completed
 -      /* Give up if buffer appears in two places.  */
 -      || buffer_shared > 1
 -      /* Give up if currently displaying a message instead of the
 -       minibuffer contents.  */
 -      || (EQ (selected_window, minibuf_window)
 -        && EQ (minibuf_window, echo_area_window))
 -      /* Give up for hscrolled mini-buffer because display of the prompt
 -       is handled specially there (see display_line).  */
 -      || (MINI_WINDOW_P (w) && XFASTINT (w->hscroll))
 -      /* Give up if overwriting in the middle of a line.  */
 -      || (overwrite_p
 -        && PT != ZV
 -        && FETCH_BYTE (PT) != '\n')
 -      /* Give up for tabs and line ends.  */
 -      || g == '\t'
 -      || g == '\n'
 -      || g == '\r'
 -      || (g == ' ' && !NILP (current_buffer->word_wrap))
 -      /* Give up if unable to display the cursor in the window.  */
 -      || w->cursor.vpos < 0
 -      /* Give up if we are showing a message or just cleared the message
 -       because we might need to resize the echo area window.  */
 -      || !NILP (echo_area_buffer[0])
 -      || !NILP (echo_area_buffer[1])
 -      || (glyph_row = MATRIX_ROW (w->current_matrix, w->cursor.vpos),
 -        /* Can't do it in a continued line because continuation
 -           lines would change.  */
 -        (glyph_row->continued_p
 -         || glyph_row->exact_window_width_line_p
 -         /* Can't use this method if the line overlaps others or is
 -            overlapped by others because these other lines would
 -            have to be redisplayed.  */
 -         || glyph_row->overlapping_p
 -         || glyph_row->overlapped_p))
 -      /* Can't do it for partial width windows on terminal frames
 -       because we can't clear to eol in such a window.  */
 -      || (!window_redisplay_p && !WINDOW_FULL_WIDTH_P (w)))
 -    return 0;
 -
 -  /* If we can't insert glyphs, we can use this method only
 -     at the end of a line.  */
 -  if (!FRAME_CHAR_INS_DEL_OK (f))
 -    if (PT != ZV && FETCH_BYTE (PT_BYTE) != '\n')
 -      return 0;
 -
 -  /* Set up a display iterator structure for W.  Glyphs will be
 -     produced in scratch_glyph_row.  Current position is W's cursor
 -     position.  */
 -  clear_glyph_row (&scratch_glyph_row);
 -  SET_TEXT_POS (pos, PT, PT_BYTE);
 -  DEC_TEXT_POS (pos, !NILP (current_buffer->enable_multibyte_characters));
 -  init_iterator (&it, w, CHARPOS (pos), BYTEPOS (pos), &scratch_glyph_row,
 -               DEFAULT_FACE_ID);
 -
 -  glyph_row = MATRIX_ROW (w->current_matrix, w->cursor.vpos);
 -  if (glyph_row->mouse_face_p)
 -    return 0;
 -
 -  /* Give up if highlighting trailing whitespace and we have trailing
 -     whitespace in glyph_row.  We would have to remove the trailing
 -     whitespace face in that case.  */
 -  if (!NILP (Vshow_trailing_whitespace)
 -      && glyph_row->used[TEXT_AREA])
 -    {
 -      struct glyph *last;
 -
 -      last = glyph_row->glyphs[TEXT_AREA] + glyph_row->used[TEXT_AREA] - 1;
 -      if (last->type == STRETCH_GLYPH
 -        || (last->type == CHAR_GLYPH
 -            && last->u.ch == ' '))
 -      return 0;
 -    }
 -
 -  /* Give up if there are overlay strings at pos.  This would fail
 -     if the overlay string has newlines in it.  */
 -  if (STRINGP (it.string))
 -    return 0;
 -
 -  it.hpos = w->cursor.hpos;
 -  it.vpos = w->cursor.vpos;
 -  it.current_x = w->cursor.x + it.first_visible_x;
 -  it.current_y = w->cursor.y;
 -  it.end_charpos = PT;
 -  it.stop_charpos = min (PT, it.stop_charpos);
 -  it.stop_charpos = max (IT_CHARPOS (it), it.stop_charpos);
 -
 -  /* More than one display element may be returned for PT - 1 if
 -     (i) it's a control character which is translated into `\003' or
 -     `^C', or (ii) it has a display table entry, or (iii) it's a
 -     combination of both.  */
 -  delta = delta_bytes = 0;
 -  while (get_next_display_element (&it))
 -    {
 -      PRODUCE_GLYPHS (&it);
 -
 -      /* Give up if glyph doesn't fit completely on the line.  */
 -      if (it.current_x >= it.last_visible_x)
 -      return 0;
 -
 -      /* Give up if new glyph has different ascent or descent than
 -       the original row, or if it is not a character glyph.  */
 -      if (glyph_row->ascent != it.ascent
 -        || glyph_row->height != it.ascent + it.descent
 -        || glyph_row->phys_ascent != it.phys_ascent
 -        || glyph_row->phys_height != it.phys_ascent + it.phys_descent
 -        || it.what != IT_CHARACTER)
 -      return 0;
 -
 -      delta += 1;
 -      delta_bytes += it.len;
 -      set_iterator_to_next (&it, 1);
 -    }
 -
 -  /* Give up if we hit the right edge of the window.  We would have
 -     to insert truncation or continuation glyphs.  */
 -  added_width = it.current_x - (w->cursor.x + it.first_visible_x);
 -  if (glyph_row->pixel_width + added_width >= it.last_visible_x)
 -    return 0;
 -
 -  /* Give up if there is a \t following in the line.  */
 -  it2 = it;
 -  it2.end_charpos = ZV;
 -  it2.stop_charpos = min (it2.stop_charpos, ZV);
 -  while (get_next_display_element (&it2)
 -       && !ITERATOR_AT_END_OF_LINE_P (&it2))
 -    {
 -      if (it2.c == '\t')
 -      return 0;
 -      set_iterator_to_next (&it2, 1);
 -    }
 -
 -  /* Number of new glyphs produced.  */
 -  n = it.glyph_row->used[TEXT_AREA];
 -
 -  /* Start and end of glyphs in original row.  */
 -  glyphs = glyph_row->glyphs[TEXT_AREA] + w->cursor.hpos;
 -  end = glyph_row->glyphs[1 + TEXT_AREA];
 -
 -  /* Make room for new glyphs, then insert them.  */
 -  xassert (end - glyphs - n >= 0);
 -  safe_bcopy ((char *) glyphs, (char *) (glyphs + n),
 -            (end - glyphs - n) * sizeof (*end));
 -  bcopy (it.glyph_row->glyphs[TEXT_AREA], glyphs, n * sizeof *glyphs);
 -  glyph_row->used[TEXT_AREA] = min (glyph_row->used[TEXT_AREA] + n,
 -                                  end - glyph_row->glyphs[TEXT_AREA]);
 -
 -  /* Compute new line width.  */
 -  glyph = glyph_row->glyphs[TEXT_AREA];
 -  end = glyph + glyph_row->used[TEXT_AREA];
 -  glyph_row->pixel_width = glyph_row->x;
 -  while (glyph < end)
 -    {
 -      glyph_row->pixel_width += glyph->pixel_width;
 -      ++glyph;
 -    }
 -
 -  /* Increment buffer positions for glyphs following the newly
 -     inserted ones.  */
 -  for (glyph = glyphs + n; glyph < end; ++glyph)
 -    if (glyph->charpos > 0 && BUFFERP (glyph->object))
 -      glyph->charpos += delta;
 -
 -  if (MATRIX_ROW_END_CHARPOS (glyph_row) > 0)
 -    {
 -      MATRIX_ROW_END_CHARPOS (glyph_row) += delta;
 -      MATRIX_ROW_END_BYTEPOS (glyph_row) += delta_bytes;
 -    }
 -
 -  /* Adjust positions in lines following the one we are in.  */
 -  increment_matrix_positions (w->current_matrix,
 -                            w->cursor.vpos + 1,
 -                            w->current_matrix->nrows,
 -                            delta, delta_bytes);
 -
 -  glyph_row->contains_overlapping_glyphs_p
 -    |= it.glyph_row->contains_overlapping_glyphs_p;
 -
 -  glyph_row->displays_text_p = 1;
 -  w->window_end_vpos = make_number (max (w->cursor.vpos,
 -                                       XFASTINT (w->window_end_vpos)));
 -
 -  if (!NILP (Vshow_trailing_whitespace))
 -    highlight_trailing_whitespace (it.f, glyph_row);
 -
 -  /* Write glyphs.  If at end of row, we can simply call write_glyphs.
 -     In the middle, we have to insert glyphs.  Note that this is now
 -     implemented for X frames.  The implementation uses updated_window
 -     and updated_row.  */
 -  updated_row = glyph_row;
 -  updated_area = TEXT_AREA;
 -  update_begin (f);
 -  if (FRAME_RIF (f))
 -    {
 -      FRAME_RIF (f)->update_window_begin_hook (w);
 -
 -      if (glyphs == end - n
 -        /* In front of a space added by append_space.  */
 -        || (glyphs == end - n - 1
 -            && (end - n)->charpos <= 0))
 -      FRAME_RIF (f)->write_glyphs (glyphs, n);
 -      else
 -      FRAME_RIF (f)->insert_glyphs (glyphs, n);
 -    }
 -  else
 -    {
 -      if (glyphs == end - n)
 -      write_glyphs (f, glyphs, n);
 -      else
 -      insert_glyphs (f, glyphs, n);
 -    }
 -
 -  w->cursor.hpos += n;
 -  w->cursor.x = it.current_x - it.first_visible_x;
 -  xassert (w->cursor.hpos >= 0
 -         && w->cursor.hpos < w->desired_matrix->matrix_w);
 -
 -  /* How to set the cursor differs depending on whether we are
 -     using a frame matrix or a window matrix.   Note that when
 -     a frame matrix is used, cursor_to expects frame coordinates,
 -     and the X and Y parameters are not used.  */
 -  if (window_redisplay_p)
 -    FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos,
 -                              w->cursor.y, w->cursor.x);
 -  else
 -    {
 -      int x, y;
 -      x = (WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos)
 -         + (INTEGERP (w->left_margin_cols)
 -            ? XFASTINT (w->left_margin_cols)
 -            : 0));
 -      y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
 -      cursor_to (f, y, x);
 -    }
 -
 -#ifdef HAVE_WINDOW_SYSTEM
 -  update_window_fringes (w, 0);
 -#endif
 -
 -  if (FRAME_RIF (f))
 -    FRAME_RIF (f)->update_window_end_hook (w, 1, 0);
 -  update_end (f);
 -  updated_row = NULL;
 -  if (FRAME_TERMCAP_P (f))
 -    fflush (FRAME_TTY (f)->output);
 -
 -  TRACE ((stderr, "direct output for insert\n"));
 -  mark_window_display_accurate (it.window, 1);
 -  redisplay_performed_directly_p = 1;
 -  return 1;
 -}
 -
 -
 -/* Perform a direct display update for moving PT by N positions
 -   left or right.  N < 0 means a movement backwards.  This function
 -   is currently only called for N == 1 or N == -1.  */
 -
 -int
 -direct_output_forward_char (n)
 -     int n;
 -{
 -  struct frame *f = SELECTED_FRAME ();
 -  struct window *w = XWINDOW (selected_window);
 -  struct glyph_row *row;
 -
 -  /* Give up if point moved out of or into a composition.  */
 -  if (check_point_in_composition (current_buffer, XINT (w->last_point),
 -                                current_buffer, PT))
 -    return 0;
 -
 -  /* Give up if face attributes have been changed.  */
 -  if (face_change_count)
 -    return 0;
 -
 -  /* Give up if current matrix is not up to date or we are
 -     displaying a message.  */
 -  if (!display_completed || cursor_in_echo_area)
 -    return 0;
 -
 -  /* Give up if the buffer's direction is reversed.  */
 -  if (!NILP (XBUFFER (w->buffer)->direction_reversed))
 -    return 0;
 -
 -  /* Can't use direct output if highlighting a region.  */
 -  if (!NILP (Vtransient_mark_mode) && !NILP (current_buffer->mark_active))
 -    return 0;
 -
 -  /* Can't use direct output if highlighting trailing whitespace.  */
 -  if (!NILP (Vshow_trailing_whitespace))
 -    return 0;
 -
 -  /* Give up if we are showing a message or just cleared the message
 -     because we might need to resize the echo area window.  */
 -  if (!NILP (echo_area_buffer[0]) || !NILP (echo_area_buffer[1]))
 -    return 0;
 -
 -  /* Give up if currently displaying a message instead of the
 -     minibuffer contents.  */
 -  if (XWINDOW (minibuf_window) == w
 -      && EQ (minibuf_window, echo_area_window))
 -    return 0;
 -
 -  /* Give up if we don't know where the cursor is.  */
 -  if (w->cursor.vpos < 0)
 -    return 0;
 -
 -  row = MATRIX_ROW (w->current_matrix, w->cursor.vpos);
 -
 -  /* Give up if PT is outside of the last known cursor row.  */
 -  if (PT <= MATRIX_ROW_START_CHARPOS (row)
 -      || PT >= MATRIX_ROW_END_CHARPOS (row))
 -    return 0;
 -
 -  set_cursor_from_row (w, row, w->current_matrix, 0, 0, 0, 0);
 -
 -  w->last_cursor = w->cursor;
 -  XSETFASTINT (w->last_point, PT);
 -
 -  xassert (w->cursor.hpos >= 0
 -         && w->cursor.hpos < w->desired_matrix->matrix_w);
 -
 -  if (FRAME_WINDOW_P (f))
 -    FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos,
 -                              w->cursor.y, w->cursor.x);
 -  else
 -    {
 -      int x, y;
 -      x = (WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos)
 -         + (INTEGERP (w->left_margin_cols)
 -            ? XFASTINT (w->left_margin_cols)
 -            : 0));
 -      y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
 -      cursor_to (f, y, x);
 -    }
 -
 -  if (FRAME_TERMCAP_P (f))
 -    fflush (FRAME_TTY (f)->output);
 -  redisplay_performed_directly_p = 1;
 -  return 1;
 -}
 -
 -
  \f
  /***********************************************************************
                             Frame Update
     Value is non-zero if redisplay was stopped due to pending input.  */
  
  int
 -update_frame (f, force_p, inhibit_hairy_id_p)
 -     struct frame *f;
 -     int force_p;
 -     int inhibit_hairy_id_p;
 +update_frame (struct frame *f, int force_p, int inhibit_hairy_id_p)
  {
    /* 1 means display has been paused because of pending input.  */
    int paused_p;
  #endif
      }
  
 +#if PERIODIC_PREEMPTION_CHECKING
   do_pause:
 +#endif
    /* Reset flags indicating that a window should be updated.  */
    set_window_update_flags (root_window, 0);
  
     don't stop updating when input is pending.  */
  
  static int
 -update_window_tree (w, force_p)
 -     struct window *w;
 -     int force_p;
 +update_window_tree (struct window *w, int force_p)
  {
    int paused_p = 0;
  
     FORCE_P is non-zero, don't stop updating if input is pending.  */
  
  void
 -update_single_window (w, force_p)
 -     struct window *w;
 -     int force_p;
 +update_single_window (struct window *w, int force_p)
  {
    if (w->must_be_updated_p)
      {
     overlapped by other rows.  YB is bottom-most y-position in W.  */
  
  static void
 -redraw_overlapped_rows (w, yb)
 -     struct window *w;
 -     int yb;
 +redraw_overlapped_rows (struct window *w, int yb)
  {
    int i;
    struct frame *f = XFRAME (WINDOW_FRAME (w));
     others.  YB is bottom-most y-position in W.  */
  
  static void
 -redraw_overlapping_rows (w, yb)
 -     struct window *w;
 -     int yb;
 +redraw_overlapping_rows (struct window *w, int yb)
  {
    int i, bottom_y;
    struct glyph_row *row;
  #endif /* HAVE_WINDOW_SYSTEM */
  
  
 -#ifdef GLYPH_DEBUG
 +#if defined GLYPH_DEBUG && 0
  
  /* Check that no row in the current matrix of window W is enabled
     which is below what's displayed in the window.  */
  
 -void
 -check_current_matrix_flags (w)
 -     struct window *w;
 +static void
 +check_current_matrix_flags (struct window *w)
  {
    int last_seen_p = 0;
    int i, yb = window_text_bottom_y (w);
     not stop when detecting pending input.  */
  
  static int
 -update_window (w, force_p)
 -     struct window *w;
 -     int force_p;
 +update_window (struct window *w, int force_p)
  {
    struct glyph_matrix *desired_matrix = w->desired_matrix;
    int paused_p;
  #if !PERIODIC_PREEMPTION_CHECKING
    int preempt_count = baud_rate / 2400 + 1;
  #endif
 -  extern int input_pending;
 -  extern Lisp_Object do_mouse_tracking;
    struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
  #if GLYPH_DEBUG
    /* Check that W's frame doesn't have glyph matrices.  */
        struct glyph_row *row, *end;
        struct glyph_row *mode_line_row;
        struct glyph_row *header_line_row;
 -      int yb, changed_p = 0, mouse_face_overwritten_p = 0, n_updated;
 +      int yb, changed_p = 0, mouse_face_overwritten_p = 0;
 +#if ! PERIODIC_PREEMPTION_CHECKING
 +      int n_updated = 0;
 +#endif
  
        rif->update_window_begin_hook (w);
        yb = window_text_bottom_y (w);
        }
  
        /* Update the rest of the lines.  */
 -      for (n_updated = 0; row < end && (force_p || !input_pending); ++row)
 +      for (; row < end && (force_p || !input_pending); ++row)
        if (row->enabled_p)
          {
            int vpos = MATRIX_ROW_VPOS (row, desired_matrix);
     AREA can be either LEFT_MARGIN_AREA or RIGHT_MARGIN_AREA.  */
  
  static void
 -update_marginal_area (w, area, vpos)
 -     struct window *w;
 -     int area, vpos;
 +update_marginal_area (struct window *w, int area, int vpos)
  {
    struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
    struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
     Value is non-zero if display has changed.  */
  
  static int
 -update_text_area (w, vpos)
 -     struct window *w;
 -     int vpos;
 +update_text_area (struct window *w, int vpos)
  {
    struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos);
    struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
        {
          /* Otherwise clear to the end of the old row.  Everything
             after that position should be clear already.  */
 -        int x;
 +        int xlim;
  
          if (i >= desired_row->used[TEXT_AREA])
            rif->cursor_to (vpos, i, desired_row->y,
             doesn't work with lbearing/rbearing), so we must do it
             this way.  */
          if (vpos == w->phys_cursor.vpos
 -            && w->phys_cursor.hpos >= desired_row->used[TEXT_AREA])
 +            && (desired_row->reversed_p
 +                ? (w->phys_cursor.hpos < 0)
 +                : (w->phys_cursor.hpos >= desired_row->used[TEXT_AREA])))
            {
              w->phys_cursor_on_p = 0;
 -            x = -1;
 +            xlim = -1;
            }
          else
 -          x = current_row->pixel_width;
 -        rif->clear_end_of_line (x);
 +          xlim = current_row->pixel_width;
 +        rif->clear_end_of_line (xlim);
          changed_p = 1;
        }
      }
     changed.  */
  
  static int
 -update_window_line (w, vpos, mouse_face_overwritten_p)
 -     struct window *w;
 -     int vpos, *mouse_face_overwritten_p;
 +update_window_line (struct window *w, int vpos, int *mouse_face_overwritten_p)
  {
    struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos);
    struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
     be called from update_window.  */
  
  static void
 -set_window_cursor_after_update (w)
 -     struct window *w;
 +set_window_cursor_after_update (struct window *w)
  {
    struct frame *f = XFRAME (w->frame);
    struct redisplay_interface *rif = FRAME_RIF (f);
      }
  
    /* Window cursor can be out of sync for horizontally split windows.  */
 -  hpos = max (0, hpos);
 +  hpos = max (-1, hpos); /* -1 is for when cursor is on the left fringe */
    hpos = min (w->current_matrix->matrix_w - 1, hpos);
    vpos = max (0, vpos);
    vpos = min (w->current_matrix->nrows - 1, vpos);
     tree rooted at W.  */
  
  void
 -set_window_update_flags (w, on_p)
 -     struct window *w;
 -     int on_p;
 +set_window_update_flags (struct window *w, int on_p)
  {
    while (w)
      {
@@@ -4239,16 -4894,19 +4239,16 @@@ static int runs_size
  
  static struct run **runs;
  
 -/* Add glyph row ROW to the scrolling hash table during the scrolling
 -   of window W.  */
 +/* Add glyph row ROW to the scrolling hash table.  */
  
  static INLINE struct row_entry *
 -add_row_entry (w, row)
 -     struct window *w;
 -     struct glyph_row *row;
 +add_row_entry (struct glyph_row *row)
  {
    struct row_entry *entry;
    int i = row->hash % row_table_size;
  
    entry = row_table[i];
 -  while (entry && !row_equal_p (w, entry->row, row, 1))
 +  while (entry && !row_equal_p (entry->row, row, 1))
      entry = entry->next;
  
    if (entry == NULL)
     1  if we did scroll.  */
  
  static int
 -scrolling_window (w, header_line_p)
 -     struct window *w;
 -     int header_line_p;
 +scrolling_window (struct window *w, int header_line_p)
  {
    struct glyph_matrix *desired_matrix = w->desired_matrix;
    struct glyph_matrix *current_matrix = w->current_matrix;
          && c->y == d->y
          && MATRIX_ROW_BOTTOM_Y (c) <= yb
          && MATRIX_ROW_BOTTOM_Y (d) <= yb
 -        && row_equal_p (w, c, d, 1))
 +        && row_equal_p (c, d, 1))
        {
          assign_row (c, d);
          d->enabled_p = 0;
  
    first_old = first_new = i;
  
-   /* Set last_new to the index + 1 of the last enabled row in the
-      desired matrix.  */
+   /* Set last_new to the index + 1 of the row that reaches the
+      bottom boundary in the desired matrix.  Give up if we find a
+      disabled row before we reach the bottom boundary.  */
    i = first_new + 1;
-   while (i < desired_matrix->nrows - 1
-        && MATRIX_ROW (desired_matrix, i)->enabled_p
-        && MATRIX_ROW_BOTTOM_Y (MATRIX_ROW (desired_matrix, i)) <= yb)
-     ++i;
+   while (i < desired_matrix->nrows - 1)
+     {
+       int bottom;
  
-   if (!MATRIX_ROW (desired_matrix, i)->enabled_p)
-     return 0;
+       if (!MATRIX_ROW (desired_matrix, i)->enabled_p)
+       return 0;
+       bottom = MATRIX_ROW_BOTTOM_Y (MATRIX_ROW (desired_matrix, i));
+       if (bottom <= yb)
+       ++i;
+       if (bottom >= yb)
+       break;
+     }
  
    last_new = i;
  
-   /* Set last_old to the index + 1 of the last enabled row in the
-      current matrix.  We don't look at the enabled flag here because
-      we plan to reuse part of the display even if other parts are
-      disabled.  */
+   /* Set last_old to the index + 1 of the row that reaches the bottom
+      boundary in the current matrix.  We don't look at the enabled
+      flag here because we plan to reuse part of the display even if
+      other parts are disabled.  */
    i = first_old + 1;
    while (i < current_matrix->nrows - 1)
      {
         && (MATRIX_ROW (current_matrix, i - 1)->y
             == MATRIX_ROW (desired_matrix, j - 1)->y)
         && !MATRIX_ROW (desired_matrix, j - 1)->redraw_fringe_bitmaps_p
 -         && row_equal_p (w,
 -                       MATRIX_ROW (desired_matrix, i - 1),
 +         && row_equal_p (MATRIX_ROW (desired_matrix, i - 1),
                           MATRIX_ROW (current_matrix, j - 1), 1))
      --i, --j;
    last_new = i;
        row_table_size = next_almost_prime (3 * n);
        nbytes = row_table_size * sizeof *row_table;
        row_table = (struct row_entry **) xrealloc (row_table, nbytes);
 -      bzero (row_table, nbytes);
 +      memset (row_table, 0, nbytes);
      }
  
    if (n > row_entry_pool_size)
      {
        if (MATRIX_ROW (current_matrix, i)->enabled_p)
        {
 -        entry = add_row_entry (w, MATRIX_ROW (current_matrix, i));
 +        entry = add_row_entry (MATRIX_ROW (current_matrix, i));
          old_lines[i] = entry;
          ++entry->old_uses;
        }
    for (i = first_new; i < last_new; ++i)
      {
        xassert (MATRIX_ROW_ENABLED_P (desired_matrix, i));
 -      entry = add_row_entry (w, MATRIX_ROW (desired_matrix, i));
 +      entry = add_row_entry (MATRIX_ROW (desired_matrix, i));
        ++entry->new_uses;
        entry->new_line_number = i;
        new_lines[i] = entry;
        && old_lines[i]->old_uses == 1
          && old_lines[i]->new_uses == 1)
        {
 -      int j, k;
 +      int p, q;
        int new_line = old_lines[i]->new_line_number;
        struct run *run = run_pool + run_idx++;
  
        run->height = MATRIX_ROW (current_matrix, i)->height;
  
        /* Extend backward.  */
 -      j = i - 1;
 -      k = new_line - 1;
 -      while (j > first_old
 -             && k > first_new
 -             && old_lines[j] == new_lines[k])
 +      p = i - 1;
 +      q = new_line - 1;
 +      while (p > first_old
 +             && q > first_new
 +             && old_lines[p] == new_lines[q])
          {
 -          int h = MATRIX_ROW (current_matrix, j)->height;
 +          int h = MATRIX_ROW (current_matrix, p)->height;
            --run->current_vpos;
            --run->desired_vpos;
            ++run->nrows;
            run->height += h;
            run->desired_y -= h;
            run->current_y -= h;
 -          --j, --k;
 +          --p, --q;
          }
  
        /* Extend forward.  */
 -      j = i + 1;
 -      k = new_line + 1;
 -      while (j < last_old
 -             && k < last_new
 -             && old_lines[j] == new_lines[k])
 +      p = i + 1;
 +      q = new_line + 1;
 +      while (p < last_old
 +             && q < last_new
 +             && old_lines[p] == new_lines[q])
          {
 -          int h = MATRIX_ROW (current_matrix, j)->height;
 +          int h = MATRIX_ROW (current_matrix, p)->height;
            ++run->nrows;
            run->height += h;
 -          ++j, ++k;
 +          ++p, ++q;
          }
  
        /* Insert run into list of all runs.  Order runs by copied
           be copied because they are already in place.  This is done
           because we can avoid calling update_window_line in this
           case.  */
 -      for (j = 0; j < nruns && runs[j]->height > run->height; ++j)
 +      for (p = 0; p < nruns && runs[p]->height > run->height; ++p)
          ;
 -      for (k = nruns; k > j; --k)
 -        runs[k] = runs[k - 1];
 -      runs[j] = run;
 +      for (q = nruns; q > p; --q)
 +        runs[q] = runs[q - 1];
 +      runs[p] = run;
        ++nruns;
  
        i += run->nrows;
    for (i = 0; i < row_entry_idx; ++i)
      row_table[row_entry_pool[i].bucket] = NULL;
  
 -  /* Value is > 0 to indicate that we scrolled the display.  */
 -  return nruns;
 +  /* Value is 1 to indicate that we scrolled the display.  */
 +  return 0 < nruns;
  }
  
  
     Value is non-zero if update was stopped due to pending input.  */
  
  static int
 -update_frame_1 (f, force_p, inhibit_id_p)
 -     struct frame *f;
 -     int force_p;
 -     int inhibit_id_p;
 +update_frame_1 (struct frame *f, int force_p, int inhibit_id_p)
  {
    /* Frame matrices to work on.  */
    struct glyph_matrix *current_matrix = f->current_matrix;
    struct glyph_matrix *desired_matrix = f->desired_matrix;
    int i;
 -  int pause;
 +  int pause_p;
    int preempt_count = baud_rate / 2400 + 1;
 -  extern int input_pending;
  
    xassert (current_matrix && desired_matrix);
  
  #if !PERIODIC_PREEMPTION_CHECKING
    if (!force_p && detect_input_pending_ignore_squeezables ())
      {
 -      pause = 1;
 +      pause_p = 1;
        goto do_pause;
      }
  #endif
        }
      }
  
 -  pause = (i < FRAME_LINES (f) - 1) ? i : 0;
 +  pause_p = (i < FRAME_LINES (f) - 1) ? i : 0;
  
    /* Now just clean up termcap drivers and set cursor, etc.  */
 -  if (!pause)
 +  if (!pause_p)
      {
        if ((cursor_in_echo_area
           /* If we are showing a message instead of the mini-buffer,
        }
      }
  
 +#if !PERIODIC_PREEMPTION_CHECKING
   do_pause:
 +#endif
  
    clear_desired_matrices (f);
 -  return pause;
 +  return pause_p;
  }
  
  
  /* Do line insertions/deletions on frame F for frame-based redisplay.  */
  
 -int
 -scrolling (frame)
 -     struct frame *frame;
 +static int
 +scrolling (struct frame *frame)
  {
    int unchanged_at_top, unchanged_at_bottom;
    int window_size;
     which is LEN glyphs long.  */
  
  static int
 -count_blanks (r, len)
 -     struct glyph *r;
 -     int len;
 +count_blanks (struct glyph *r, int len)
  {
    int i;
  
     of STR2.  Value is the number of equal glyphs equal at the start.  */
  
  static int
 -count_match (str1, end1, str2, end2)
 -     struct glyph *str1, *end1, *str2, *end2;
 +count_match (struct glyph *str1, struct glyph *end1, struct glyph *str2, struct glyph *end2)
  {
    struct glyph *p1 = str1;
    struct glyph *p2 = str2;
  
  /* Char insertion/deletion cost vector, from term.c */
  
 -extern int *char_ins_del_vector;
  #define char_ins_del_cost(f) (&char_ins_del_vector[FRAME_TOTAL_COLS((f))])
  
  
  /* Perform a frame-based update on line VPOS in frame FRAME.  */
  
  static void
 -update_frame_line (f, vpos)
 -     struct frame *f;
 -     int vpos;
 +update_frame_line (struct frame *f, int vpos)
  {
    struct glyph *obody, *nbody, *op1, *op2, *np1, *nend;
    int tem;
   ***********************************************************************/
  
  /* Determine what's under window-relative pixel position (*X, *Y).
 -   Return the object (string or buffer) that's there.
 +   Return the OBJECT (string or buffer) that's there.
     Return in *POS the position in that object.
 -   Adjust *X and *Y to character positions.  */
 +   Adjust *X and *Y to character positions.
 +   Return in *DX and *DY the pixel coordinates of the click,
 +   relative to the top left corner of OBJECT, or relative to
 +   the top left corner of the character glyph at (*X, *Y)
 +   if OBJECT is nil.
 +   Return WIDTH and HEIGHT of the object at (*X, *Y), or zero
 +   if the coordinates point to an empty area of the display.  */
  
  Lisp_Object
 -buffer_posn_from_coords (w, x, y, pos, object, dx, dy, width, height)
 -     struct window *w;
 -     int *x, *y;
 -     struct display_pos *pos;
 -     Lisp_Object *object;
 -     int *dx, *dy;
 -     int *width, *height;
 +buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *pos, Lisp_Object *object, int *dx, int *dy, int *width, int *height)
  {
    struct it it;
    Lisp_Object old_current_buffer = Fcurrent_buffer ();
  #ifdef HAVE_WINDOW_SYSTEM
    struct image *img = 0;
  #endif
 -  int x0, x1;
 +  int x0, x1, to_x;
  
    /* We used to set current_buffer directly here, but that does the
       wrong thing with `face-remapping-alist' (bug#2044).  */
    BYTEPOS (startp) = min (ZV_BYTE, max (BEGV_BYTE, BYTEPOS (startp)));
    start_display (&it, w, startp);
  
 -  x0 = *x - WINDOW_LEFT_MARGIN_WIDTH (w);
 -  move_it_to (&it, -1, x0 + it.first_visible_x, *y, -1,
 -            MOVE_TO_X | MOVE_TO_Y);
 +  x0 = *x;
 +
 +  /* First, move to the beginning of the row corresponding to *Y.  We
 +     need to be in that row to get the correct value of base paragraph
 +     direction for the text at (*X, *Y).  */
 +  move_it_to (&it, -1, 0, *y, -1, MOVE_TO_X | MOVE_TO_Y);
 +
 +  /* TO_X is the pixel position that the iterator will compute for the
 +     glyph at *X.  We add it.first_visible_x because iterator
 +     positions include the hscroll.  */
 +  to_x = x0 + it.first_visible_x;
 +  if (it.bidi_it.paragraph_dir == R2L)
 +    /* For lines in an R2L paragraph, we need to mirror TO_X wrt the
 +       text area.  This is because the iterator, even in R2L
 +       paragraphs, delivers glyphs as if they started at the left
 +       margin of the window.  (When we actually produce glyphs for
 +       display, we reverse their order in PRODUCE_GLYPHS, but the
 +       iterator doesn't know about that.)  The following line adjusts
 +       the pixel position to the iterator geometry, which is what
 +       move_it_* routines use.  (The -1 is because in a window whose
 +       text-area width is W, the rightmost pixel position is W-1, and
 +       it should be mirrored into zero pixel position.)  */
 +    to_x = window_box_width (w, TEXT_AREA) - to_x - 1;
 +
 +  /* Now move horizontally in the row to the glyph under *X.  Second
 +     argument is ZV to prevent move_it_in_display_line from matching
 +     based on buffer positions.  */
 +  move_it_in_display_line (&it, ZV, to_x, MOVE_TO_X);
  
    Fset_buffer (old_current_buffer);
  
    if (STRINGP (it.string))
      string = it.string;
    *pos = it.current;
 +  if (it.what == IT_COMPOSITION
 +      && it.cmp_it.nchars > 1
 +      && it.cmp_it.reversed_p)
 +    {
 +      /* The current display element is a grapheme cluster in a
 +       composition.  In that case, we need the position of the first
 +       character of the cluster.  But, as it.cmp_it.reversed_p is 1,
 +       it.current points to the last character of the cluster, thus
 +       we must move back to the first character of the same
 +       cluster.  */
 +      CHARPOS (pos->pos) -= it.cmp_it.nchars - 1;
 +      if (STRINGP (it.string))
 +      BYTEPOS (pos->pos) = string_char_to_byte (string, CHARPOS (pos->pos));
 +      else
 +      BYTEPOS (pos->pos) = CHAR_TO_BYTE (CHARPOS (pos->pos));
 +    }
  
  #ifdef HAVE_WINDOW_SYSTEM
    if (it.what == IT_IMAGE)
          if (img)
            {
              *dy -= row->ascent - glyph->ascent;
 -            *dx += glyph->slice.x;
 -            *dy += glyph->slice.y;
 +            *dx += glyph->slice.img.x;
 +            *dy += glyph->slice.img.y;
              /* Image slices positions are still relative to the entire image */
              *width = img->width;
              *height = img->height;
     *CHARPOS is set to the position in the string returned.  */
  
  Lisp_Object
 -mode_line_string (w, part, x, y, charpos, object, dx, dy, width, height)
 -     struct window *w;
 -     enum window_part part;
 -     int *x, *y;
 -     int *charpos;
 -     Lisp_Object *object;
 -     int *dx, *dy;
 -     int *width, *height;
 +mode_line_string (struct window *w, enum window_part part,
 +                int *x, int *y, EMACS_INT *charpos, Lisp_Object *object,
 +                int *dx, int *dy, int *width, int *height)
  {
    struct glyph_row *row;
    struct glyph *glyph, *end;
     the string returned.  */
  
  Lisp_Object
 -marginal_area_string (w, part, x, y, charpos, object, dx, dy, width, height)
 -     struct window *w;
 -     enum window_part part;
 -     int *x, *y;
 -     int *charpos;
 -     Lisp_Object *object;
 -     int *dx, *dy;
 -     int *width, *height;
 +marginal_area_string (struct window *w, enum window_part part,
 +                    int *x, int *y, EMACS_INT *charpos, Lisp_Object *object,
 +                    int *dx, int *dy, int *width, int *height)
  {
    struct glyph_row *row = w->current_matrix->rows;
    struct glyph *glyph, *end;
              if (img != NULL)
                *object = img->spec;
              y0 -= row->ascent - glyph->ascent;
 -            x0 += glyph->slice.x;
 -            y0 += glyph->slice.y;
 +            x0 += glyph->slice.img.x;
 +            y0 += glyph->slice.img.y;
            }
  #endif
        }
  
  #ifdef SIGWINCH
  
 -SIGTYPE
 -window_change_signal (signalnum) /* If we don't have an argument, */
 -     int signalnum;           /* some compilers complain in signal calls.  */
 +static void
 +window_change_signal (int signalnum) /* If we don't have an argument, */
 +                              /* some compilers complain in signal calls.  */
  {
    int width, height;
 -#ifndef USE_CRT_DLL
 -  extern int errno;
 -#endif
    int old_errno = errno;
  
    struct tty_display_info *tty;
     safe to change frame sizes  while a redisplay is in progress.  */
  
  void
 -do_pending_window_change (safe)
 -     int safe;
 +do_pending_window_change (int safe)
  {
    /* If window_change_signal should have run before, run it now.  */
    if (redisplaying_p && !safe)
     safe to change frame sizes while a redisplay is in progress.  */
  
  void
 -change_frame_size (f, newheight, newwidth, pretend, delay, safe)
 -     register struct frame *f;
 -     int newheight, newwidth, pretend, delay, safe;
 +change_frame_size (register struct frame *f, int newheight, int newwidth, int pretend, int delay, int safe)
  {
    Lisp_Object tail, frame;
  
  }
  
  static void
 -change_frame_size_1 (f, newheight, newwidth, pretend, delay, safe)
 -     register struct frame *f;
 -     int newheight, newwidth, pretend, delay, safe;
 +change_frame_size_1 (register struct frame *f, int newheight, int newwidth, int pretend, int delay, int safe)
  {
    int new_frame_total_cols;
    int count = SPECPDL_INDEX ();
@@@ -5790,7 -6443,8 +5796,7 @@@ DEFUN ("open-termscript", Fopen_termscr
         1, 1, "FOpen termscript file: ",
         doc: /* Start writing all terminal output to FILE as well as the terminal.
  FILE = nil means just close any termscript file currently open.  */)
 -     (file)
 -     Lisp_Object file;
 +  (Lisp_Object file)
  {
    struct tty_display_info *tty;
  
    if (! NILP (file))
      {
        file = Fexpand_file_name (file, Qnil);
 -      tty->termscript = fopen (SDATA (file), "w");
 +      tty->termscript = fopen (SSDATA (file), "w");
        if (tty->termscript == 0)
        report_file_error ("Opening termscript", Fcons (file, Qnil));
      }
@@@ -5828,7 -6482,9 +5834,7 @@@ Optional parameter TERMINAL specifies t
  It may be a terminal object, a frame, or nil for the terminal used by
  the currently selected frame.  In batch mode, STRING is sent to stdout
  when TERMINAL is nil.  */)
 -  (string, terminal)
 -     Lisp_Object string;
 -     Lisp_Object terminal;
 +  (Lisp_Object string, Lisp_Object terminal)
  {
    struct terminal *t = get_terminal (terminal, 1);
    FILE *out;
@@@ -5869,7 -6525,8 +5875,7 @@@ DEFUN ("ding", Fding, Sding, 0, 1, 0
         doc: /* Beep, or flash the screen.
  Also, unless an argument is given,
  terminate any keyboard macro currently executing.  */)
 -     (arg)
 -  Lisp_Object arg;
 +  (Lisp_Object arg)
  {
    if (!NILP (arg))
      {
  }
  
  void
 -bitch_at_user ()
 +bitch_at_user (void)
  {
    if (noninteractive)
      putchar (07);
@@@ -5908,7 -6565,8 +5914,7 @@@ fraction of a second.  Optional second 
  additional wait period, in milliseconds; this may be useful if your
  Emacs was built without floating point support.
  \(Not all operating systems support waiting for a fraction of a second.)  */)
 -     (seconds, milliseconds)
 -     Lisp_Object seconds, milliseconds;
 +  (Lisp_Object seconds, Lisp_Object milliseconds)
  {
    int sec, usec;
  
  */
  
  Lisp_Object
 -sit_for (timeout, reading, do_display)
 -     Lisp_Object timeout;
 -     int reading, do_display;
 +sit_for (Lisp_Object timeout, int reading, int do_display)
  {
    int sec, usec;
  
@@@ -6012,7 -6672,8 +6018,7 @@@ DEFUN ("redisplay", Fredisplay, Sredisp
  If optional arg FORCE is non-nil or `redisplay-dont-pause' is non-nil,
  perform a full redisplay even if input is available.
  Return t if redisplay was performed, nil otherwise.  */)
 -     (force)
 -  Lisp_Object force;
 +  (Lisp_Object force)
  {
    int count;
  
@@@ -6056,7 -6717,8 +6062,7 @@@ the current state
  
  If VARIABLE is nil, an internal variable is used.  Users should not
  pass nil for VARIABLE.  */)
 -     (variable)
 -     Lisp_Object variable;
 +  (Lisp_Object variable)
  {
    Lisp_Object state, tail, frame, buf;
    Lisp_Object *vecp, *end;
      state = frame_and_buffer_state;
  
    vecp = XVECTOR (state)->contents;
 -  end = vecp + XVECTOR_SIZE (state);
 +  end = vecp + ASIZE (state);
  
    FOR_EACH_FRAME (tail, frame)
      {
      {
        buf = XCDR (XCAR (tail));
        /* Ignore buffers that aren't included in buffer lists.  */
 -      if (SREF (XBUFFER (buf)->name, 0) == ' ')
 +      if (SREF (BVAR (XBUFFER (buf), name), 0) == ' ')
        continue;
        if (vecp == end)
        goto changed;
        goto changed;
        if (vecp == end)
        goto changed;
 -      if (!EQ (*vecp++, XBUFFER (buf)->read_only))
 +      if (!EQ (*vecp++, BVAR (XBUFFER (buf), read_only)))
        goto changed;
        if (vecp == end)
        goto changed;
    /* Reallocate the vector if data has grown to need it,
       or if it has shrunk a lot.  */
    if (! VECTORP (state)
 -      || n > XVECTOR_SIZE (state)
 -      || n + 20 < XVECTOR_SIZE (state) / 2)
 +      || n > ASIZE (state)
 +      || n + 20 < ASIZE (state) / 2)
      /* Add 20 extra so we grow it less often.  */
      {
        state = Fmake_vector (make_number (n + 20), Qlambda);
      {
        buf = XCDR (XCAR (tail));
        /* Ignore buffers that aren't included in buffer lists.  */
 -      if (SREF (XBUFFER (buf)->name, 0) == ' ')
 +      if (SREF (BVAR (XBUFFER (buf), name), 0) == ' ')
        continue;
        *vecp++ = buf;
 -      *vecp++ = XBUFFER (buf)->read_only;
 +      *vecp++ = BVAR (XBUFFER (buf), read_only);
        *vecp++ = Fbuffer_modified_p (buf);
      }
    /* Fill up the vector with lambdas (always at least one).  */
    *vecp++ = Qlambda;
    while (vecp - XVECTOR (state)->contents
 -       < XVECTOR_SIZE (state))
 +       < ASIZE (state))
      *vecp++ = Qlambda;
    /* Make sure we didn't overflow the vector.  */
    if (vecp - XVECTOR (state)->contents
 -      > XVECTOR_SIZE (state))
 +      > ASIZE (state))
      abort ();
    return Qt;
  }
     decoding routine to set up variables in the terminal package.  */
  
  void
 -init_display ()
 +init_display (void)
  {
    char *terminal_type;
  
 -#ifdef HAVE_X_WINDOWS
 -  extern int display_arg;
 -#endif
 -
    /* Construct the space glyph.  */
    space_glyph.type = CHAR_GLYPH;
    SET_CHAR_GLYPH (space_glyph, ' ', DEFAULT_FACE_ID, 0);
      f->terminal = t;
  
      t->reference_count++;
 +#ifdef MSDOS
 +    f->output_data.tty->display_info = &the_only_display_info;
 +#else
 +    if (f->output_method == output_termcap)
 +      create_tty_output (f);
 +#endif
      t->display_info.tty->top_frame = selected_frame;
      change_frame_size (XFRAME (selected_frame),
                         FrameRows (t->display_info.tty),
@@@ -6384,7 -7044,8 +6390,7 @@@ DEFUN ("internal-show-cursor", Finterna
  WINDOW nil means use the selected window.  SHOW non-nil means
  show a cursor in WINDOW in the next redisplay.  SHOW nil means
  don't show a cursor.  */)
 -     (window, show)
 -     Lisp_Object window, show;
 +  (Lisp_Object window, Lisp_Object show)
  {
    /* Don't change cursor state while redisplaying.  This could confuse
       output routines.  */
@@@ -6406,7 -7067,8 +6412,7 @@@ DEFUN ("internal-show-cursor-p", Finter
         Sinternal_show_cursor_p, 0, 1, 0,
         doc: /* Value is non-nil if next redisplay will display a cursor in WINDOW.
  WINDOW nil or omitted means report on the selected window.  */)
 -     (window)
 -     Lisp_Object window;
 +  (Lisp_Object window)
  {
    struct window *w;
  
  DEFUN ("last-nonminibuffer-frame", Flast_nonminibuf_frame,
         Slast_nonminibuf_frame, 0, 0, 0,
         doc: /* Value is last nonminibuffer frame. */)
 -     ()
 +  (void)
  {
    Lisp_Object frame = Qnil;
  
   ***********************************************************************/
  
  void
 -syms_of_display ()
 +syms_of_display (void)
  {
    defsubr (&Sredraw_frame);
    defsubr (&Sredraw_display);
    Qredisplay_dont_pause = intern_c_string ("redisplay-dont-pause");
    staticpro (&Qredisplay_dont_pause);
  
 -  DEFVAR_INT ("baud-rate", &baud_rate,
 +  DEFVAR_INT ("baud-rate", baud_rate,
              doc: /* *The output baud rate of the terminal.
  On most systems, changing this value will affect the amount of padding
  and the other strategic decisions made during redisplay.  */);
  
 -  DEFVAR_BOOL ("inverse-video", &inverse_video,
 +  DEFVAR_BOOL ("inverse-video", inverse_video,
               doc: /* *Non-nil means invert the entire frame display.
  This means everything is in inverse video which otherwise would not be.  */);
  
 -  DEFVAR_BOOL ("visible-bell", &visible_bell,
 +  DEFVAR_BOOL ("visible-bell", visible_bell,
               doc: /* *Non-nil means try to flash the frame to represent a bell.
  
  See also `ring-bell-function'.  */);
  
 -  DEFVAR_BOOL ("no-redraw-on-reenter", &no_redraw_on_reenter,
 +  DEFVAR_BOOL ("no-redraw-on-reenter", no_redraw_on_reenter,
               doc: /* *Non-nil means no need to redraw entire frame after suspending.
  A non-nil value is useful if the terminal can automatically preserve
  Emacs's frame display when you reenter Emacs.
  It is up to you to set this variable if your terminal can do that.  */);
  
 -  DEFVAR_LISP ("initial-window-system", &Vinitial_window_system,
 +  DEFVAR_LISP ("initial-window-system", Vinitial_window_system,
               doc: /* Name of the window system that Emacs uses for the first frame.
  The value is a symbol:
   nil for a termcap frame (a character-only terminal),
@@@ -6509,14 -7171,14 +6515,14 @@@ Use of this variable as a boolean is de
  use `display-graphic-p' or any of the other `display-*-p'
  predicates which report frame's specific UI-related capabilities.  */);
  
 -  DEFVAR_LISP ("window-system-version", &Vwindow_system_version,
 +  DEFVAR_LISP ("window-system-version", Vwindow_system_version,
               doc: /* The version number of the window system in use.
  For X windows, this is 11.  */);
  
 -  DEFVAR_BOOL ("cursor-in-echo-area", &cursor_in_echo_area,
 +  DEFVAR_BOOL ("cursor-in-echo-area", cursor_in_echo_area,
               doc: /* Non-nil means put cursor in minibuffer, at end of any message there.  */);
  
 -  DEFVAR_LISP ("glyph-table", &Vglyph_table,
 +  DEFVAR_LISP ("glyph-table", Vglyph_table,
               doc: /* Table defining how to output a glyph code to the frame.
  If not nil, this is a vector indexed by glyph code to define the glyph.
  Each element can be:
      while outputting it.  */);
    Vglyph_table = Qnil;
  
 -  DEFVAR_LISP ("standard-display-table", &Vstandard_display_table,
 +  DEFVAR_LISP ("standard-display-table", Vstandard_display_table,
               doc: /* Display table to use for buffers that specify none.
  See `buffer-display-table' for more information.  */);
    Vstandard_display_table = Qnil;
  
 -  DEFVAR_BOOL ("redisplay-dont-pause", &redisplay_dont_pause,
 +  DEFVAR_BOOL ("redisplay-dont-pause", redisplay_dont_pause,
               doc: /* *Non-nil means update isn't paused when input is detected.  */);
    redisplay_dont_pause = 0;
  
  #if PERIODIC_PREEMPTION_CHECKING
 -  DEFVAR_LISP ("redisplay-preemption-period", &Vredisplay_preemption_period,
 +  DEFVAR_LISP ("redisplay-preemption-period", Vredisplay_preemption_period,
               doc: /* *The period in seconds between checking for input during redisplay.
  If input is detected, redisplay is pre-empted, and the input is processed.
  If nil, never pre-empt redisplay.  */);
        Vwindow_system_version = Qnil;
      }
  }
 -
 -/* arch-tag: 8d812b1f-04a2-4195-a9c4-381f8457a413
 -   (do not change this comment) */