diff src/ChangeLog @ 91376:0e2ade584fbb merge-unicode-to-trunk

Merge ChangeLog.unicode files into ChangeLogs Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1038
author Miles Bader <miles@gnu.org>
date Fri, 01 Feb 2008 16:05:01 +0000
parents 8feaae3c4e31
children 1225d81ff93b
line wrap: on
line diff
--- a/src/ChangeLog	Fri Feb 01 16:01:31 2008 +0000
+++ b/src/ChangeLog	Fri Feb 01 16:05:01 2008 +0000
@@ -1,3 +1,5358 @@
+2008-02-02  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-02  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): Adjusted for the above change.
+	(Finternal_char_font): Return nil if the found font doesn't
+	contain the character ch.
+
+	* Makefile.in (lisp): Add cham.el.
+	(shortlisp): Likewise.
+
+2008-02-02  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): Adjusted for the above change.  If no font was
+	found the character, remember that.
+	(face_for_char): Adjusted 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): Adjusted for the change of RFONT-DEF.
+
+2008-02-02  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-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* xfaces.c (set_lface_from_font_and_fontset): Set the fontname in
+	lface.
+
+2008-02-02  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-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* coding.c (decode_coding_object): Adjuste marker positions after
+	conversion.
+	(encode_coding_object): Likewise.
+
+	* lisp.h (struct Lisp_Marker): New member need_adjustment.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* Makefile.in (lisp): Add kherm.el and myanmar.el.
+	(shortlisp): Likewise.
+
+	* 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-02  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): Docstring of member `shape' is
+	improved.
+
+2008-02-02  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-02  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): Optimize for the case of no need of
+	reordring.
+	(fontset_find_font): Likewise.
+	(face_for_char): Map the charset property by
+	Vfont_encoding_charset_alist.
+
+2008-02-02  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-02  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-02  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_drviers
+	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): Use font_get_cache.
+	(font_matching_entity): Likewise.
+	(font_update_drivers): Call font_clear_cache when finishing a
+	driver.
+
+	* fontset.c (fontset_find_font): Fix previous change.
+
+2008-02-02  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-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* fontset.c (fontset_add): New args charset_id and famliy.  Caller
+	changed.
+	(load_font_get_repertory): Assume that font_spec is always a
+	font-spec object.
+	(fontset_find_font): Likewise.
+	(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-02  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): Lock and unlock face.
+	(xftfont_shape): Likewise.
+
+	* fontset.c (fontset_find_font): Don't prefer a font of
+	supplementary charset.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* ftfont.c (struct OpenTypeSpec): Members script_tag renamed to
+	script, langsys_tag renamed to langsys, new member script.
+	(OTF_TAG_STR): Terminate by '\0'.
+	(ftfont_get_open_type_spec): If :otf prop is is spec, Limit the
+	listing to the script specified in that property.  Fix arg to
+	OTF_check_features.
+
+2008-02-02  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-02  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-02  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-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32font.c (add_font_entity_to_list): Compare only the beginning
+	of full name.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (handle_auto_composed_prop): Simplify the code.  Never
+	return HANDLED_RECOMPUTE_PROPS.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* font.c (font_gstring_produce): Delete it.
+
+	* composite.h (COMPOSITION_METHOD): Handle
+	COMPOSITION_WITH_GLYPH_STRING.
+
+2008-02-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* xfont.c (Qx): Deleted.
+	(syms_of_xfont): Don't initialize Qx.
+
+	* composite.h (enum composition_method): Define
+	COMPOSITION_WITH_GLYPH_STRING unconditionally.
+
+2008-02-02  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.
+
+>>>>>>> 1.1.2.202
+2008-02-02  Andreas Schwab  <schwab@suse.de>
+
+	* xdisp.c (back_to_previous_visible_line_start): Fix type of beg
+	and end.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32font.c (w32font_driver): Add new fields.
+
+2008-02-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* config.in: Re-generated.
+
+	* 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): Adjusted for the change of lispy
+	gstring.
+	(struct font_driver): New member shape.
+	(font_registry_charsets): Extern. it.
+	(font_find_for_lface): Prototype adjusted.
+	(font_prepare_composition): Likewise.
+	(font_otf_capability, font_drive_otf): Delete their externs.
+
+	* font.c [HAVE_M17N_FLT]: Include <m17n-flt.h>.
+	(font_charset_alist): Moved from xfont.c and renamed.
+	(font_registry_charsets): Likewise.
+	(font_prop_validate_otf): New function.
+	(font_property_table): Register it for QCotf.
+	(DEVICE_DELTA, adjust_anchor, REPLACEMENT_CHARACTER)
+	(font_drive_otf): Deleted.
+	(font_prepare_composition): New arg F.  Adjusted for the change of
+	lispy gstring.
+	(font_find_for_lface): New arg C.
+	(font_load_for_face): Adjusted for the change of
+	font_find_for_lface.
+	(Ffont_make_gstring): Adjusted for the change of lispy gstring.
+	(Ffont_fill_gstring): Likewise.
+	(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): Initalize 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): Adjusted for the change of RFONT-DEF.
+	(make_fontset_for_ascii_face): Likewise.
+	(Finternal_char_font): Likewise.
+	(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): Adjusted 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.s
+	(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): Adjusted
+	for the change of lispy gstring.
+
+	* xdisp.c (handle_composition_prop): Adjusted for the change of
+	lispy gstring.  Call a function for auto-composition with the
+third arg it->window.
+	(fill_composite_glyph_string): Adjusted for the change of lispy
+	string.
+	(x_produce_glyphs): Adjusted for the change of
+	font_prepare_compositionl.
+
+	* xfaces.c (set_font_frame_param): Adjusted for the change of
+	font_find_for_lface.
+
+	* xfont.c (x_font_charset_alist): Moved to font.c and renamed.
+	(xfont_registry_charsets): Likewise.  Caller changed.
+	(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): Adjusted for
+	the change of lispy gstring.
+
+2008-02-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* ftxfont.c (ftxfont_end_for_frame): Fix array indexing error.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32font.c (w32font_draw): Fill background manually.
+
+2008-02-02  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-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* lread.c (read1): Undo the previous change.
+
+2008-02-02  CHENG Gao  <chenggao@gmail.com>  (tiny change)
+
+	* frame.c (Fdelete_frame): Call font_update_drivers only when
+	USE_FONT_BACKEND is defined..
+
+2008-02-02  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): Adjusted for the above change.
+	(xftfont_done_face): Likewise.
+	(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): Renamed from ftxfont_create_gcs.
+	Argument changed.  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-02  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-02  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-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* font.c (font_prop_validate_symbol): The argument prop_index is
+	deleted.
+	(font_prop_validate_style, font_prop_validate_non_neg)
+	(font_prop_validate_spacing): Likewise.
+	(font_property_table): Arguments to validater changed.  Callers
+	changed.
+	(font_lispy_object): Deleted.
+	(font_at): Use font_find_object instead fo font_lispy_object.
+
+2008-02-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+	* fileio.c (Fexpand_file_name): Adjust multibyteness of directory
+	and file names.
+
+2008-02-02  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-02  Jason Rumney  <jasonr@gnu.org>
+
+	* doc.c (Fsnarf_documentation):
+	* Makefile.in (temacs${EXEEXT}, mostlyclean): Undo last change.
+
+2008-02-02  Miles Bader  <miles@gnu.org>
+
+	* src/dispextern.h (struct glyph_row): Only define "clip" field if
+	HAVE_WINDOW_SYSTEM is defined.
+
+2008-02-02  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-02  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* Makefile.in (fringe.o, minibuf.o): Fix dependencies.
+
+2008-02-02  Miles Bader  <miles@gnu.org>
+
+	* xdisp.c (get_char_face_and_encoding): Remove extraneous definition.
+	Add extra args to FACE_FOR_CHAR.
+
+2008-02-02  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): If the range contains just one
+	character, call the function with that character even if the depth
+	is not 3.
+	(map_char_table): Likewise.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32font.c (w32font_text_extents): Calculate metrics for the
+	whole string.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32xfns.c (get_next_msg): Consolidate WM_PAINT messages.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32term.c (x_set_glyph_string_clipping): Use
+	get_glyph_string_clip_rects.
+	(x_set_glyph_string_clipping_exactly): Adjusted for the change of
+	struct glyph_string.
+	(x_draw_glyph_string): Likewise.
+
+	* w32font.c (w32font_draw): Do clipping here.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xftfont.c (xftfont_draw): Adjusted 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): Adjusted for the change of
+	struct glyph_string.
+	(x_draw_glyph_string): Likewise.
+
+	* xdisp.c (get_glyph_string_clip_rects): Reflect s->row->clip to
+	the resulting clip(s}.
+	(expose_overlaps): Add arg r.  Callers changed.  Set it ot
+	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-02  Kenichi Handa  <handa@m17n.org>
+
+	* data.c (Fchar_or_string_p): Fix docstring.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xftfont.c (xftfont_draw): If s->font_info != s->face->font_info,
+	create a temporal XftDraw object.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* abbrev.c (abbrev_check_chars): Use CHAR_TABLE_REF, not
+	SYNTAX_ENTRY_FOLLOW_PARENT.
+
+2008-02-02  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.
+
+	* src/alloc.c:
+	* src/buffer.c:
+	* src/buffer.h:
+	* src/data.c:
+	* src/fileio.c:
+	* src/filelock.c:
+	* src/fns.c:
+	* src/frame.h:
+	* src/lisp.h:
+	* src/macterm.c:
+	* src/print.c:
+	* src/process.c:
+	* src/w32fns.c:
+	* src/w32menu.c:
+	* src/w32term.c:
+	* src/xfns.c:
+	* src/xmenu.c:
+	* src/xterm.c: Replace uses of GC_* macros with the non-GC_ versions.
+
+2008-02-02  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-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32font.c (Qgdi): Rename from Qw32.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32bdf.c (get_quoted_string): Make function static.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* Makefile.in (${lispsource}international/charprop.el): Move this
+	target within "#ifdef HAVE_UNIDATA" and "#endif".
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* Makefile.in (lisp): Add ${lispsource}language/tai-viet.el.
+	(shortlisp): Add ../lisp/language/tai-viet.el.
+
+2008-02-02  Ulrich Mueller  <ulm@gentoo.org>  (tiny change)
+
+	* Makefile.in (${lispsource}international/charprop.el): Depend on
+	temacs${EXEEXT}.
+
+2008-02-02  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-02  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-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32font.c (w32font_draw): Delete brush after using it.
+
+2008-02-02  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-02  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 tranformation 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-02  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-02  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-02  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): Moved 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* term.c: Don't include "buffer.h" twice.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* syntax.c (skip_syntaxes): Synch with the trunk.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* character.c (Funibyte_string): New function.
+	(syms_of_character): Defsubr it.
+
+2008-02-02  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-02  Andreas Schwab  <schwab@suse.de>
+
+	* lread.c (read1): Use CHAR_TABLE_STANDARD_SLOTS to validate
+	char-table size.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* font.c (check_otf_features): Define it regardless of
+	HAVE_LIBOTF.
+
+2008-02-02  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): Renamed from parse_gsub_gpos_spec.
+	(check_otf_features): New function.
+	(font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor): New
+	functinos.
+	(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): Adjusted 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): Adjusted 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-02  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): Don't call insert_from_gap if no
+	characters to produce.
+	(encode_coding): Likewise.
+
+2008-02-02  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-02  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-02  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-02  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): Use CHARACTERP, not INTEGERP.
+	(Fchar_to_string): Likewise.
+
+2008-02-02  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-02  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile.in (LIBES): Move standard libraries to the end.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* process.c: Cancel the change done by sync with HEAD.
+
+2008-02-02  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-02  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-02  Juanma Barranquero  <lekktu@gmail.com>
+
+	* regex.c (RE_STRING_CHAR_AND_LENGTH) [! emacs]: Add missing arg `len'.
+
+2008-02-02  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-02  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.  Callers changed.
+	(RE_CHAR_TO_MULTIBYTE, RE_CHAR_TO_UNIBYTE): New macros.
+	(MAKE_CHAR_MULTIBYTE, MAKE_CHAR_UNIBYTE): Deleted.  Callers
+	changed 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): Deleted.
+	(re_match_2_internal): Pay attention to the case that the
+	multibyteness of bufp and target may be different.
+
+2008-02-02  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-02  Miles Bader  <miles@gnu.org>
+
+	* Makefile.in: Remove redundant HAVE_XFT clause.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xrdb.c (x_load_resources): Setup the default fontSet X reource.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* regex.c (regex_compile): Synch with HEAD.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (Finternal_char_font): Fix previous change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (Finternal_char_font): Fix for the case of POSITION
+	being nil.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xftfont.c (xftfont_open): Call FcConfigSubstitute.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xftfont.c (xftfont_open): Don't enable antialias explicitly.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* search.c (simple_search): Fix previous change.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* ftfont.c (ftfont_pattern_entity): Check if FC_FONTFORMAT is
+	defined.
+	(ftfont_list_generic_family, ftfont_list, ftfont_font_format):
+	Likewise.
+
+2008-02-02  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 memeber 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* search.c (simple_search): Fix sync with HEAD.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xfns.c (xic_create_xfontset): Try the default fontset name as a
+	last resort.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (detect_coding_charset): Fix detection of multi-byte
+	charset.
+
+2008-02-02  Bob Halley  <halley@play-bow.org>  (tiny change)
+
+	* ccl.c (ccl_driver): If DST is NULL, set ccl->produced to 0.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	(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-02  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-02  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-02  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 compostion, 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-02  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-02  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-02  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.  Adjusted for the change of s->char2b which always points to
+	the first elememnt 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): Argument changed.
+	(BUILD_COMPOSITE_GLYPH_STRING): Adjusted for the above change.
+	(x_produce_glyphs): Fix handling of left/right padding.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* regex.c (analyse_first): Cancel the change for synching with
+	HEAD.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* font.c (font_matching_entity): Dolete 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* alloc.c (NSTATICS): Increased to 0x600.
+
+2008-02-02  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 assuce FC_MONO.
+
+	* font.h (struct font_driver): New member `match'.
+	(font_update_drivers): Prototype adjusted.
+
+	* font.c (font_parse_fcname): Don't change :name property of FONT.
+	(font_parse_name): Likewise.
+	(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-02  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): Prototype adjusted.
+
+	* font.c (font_otf_capability): Fix handling of the default
+	langsys.
+	(parse_gsub_gpos_spec): Type changed 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 xfotn->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-02  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): Initalize `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-02  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 Qcompostion.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xterm.c (x_draw_composite_glyph_string_foreground): Check if
+	adjustment is vector or not.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* casefiddle.c (casify_object): Sync with HEAD.
+
+2008-02-02  Miles Bader  <miles@gnu.org>
+
+	* character.h (CHECK_CHARACTER): Redefine in terms of CHECK_TYPE.
+
+2008-02-02  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): Adjusted for the change of LGLYPH format.
+	(font_prepare_composition): Likewise.
+
+	* xterm.c (x_draw_composite_glyph_string_foreground): Adjusted for
+	the change of LGLYPH format.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* ftfont.c (ftfont_list): Fix typo.
+	(ftfont_build_basic_charsets): Don't include letters with
+	diactrics.
+
+2008-02-02  Jan Dj,Ad(Brv  <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-02  Kenichi Handa  <handa@m17n.org>
+
+	* ftfont.c (ftfont_list): Fix typo.
+	(ftfont_build_basic_charsets): Don't include letters with
+	diactrics.
+
+2008-02-02  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* ftfont.c (ftfont_list): Move misplaced #endif
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* ftfont.c (ftfont_list): Pay attention to the case that
+	FC_CAPABILITY is not defined.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xftfont.c (xftfont_open): Set charset related members to -1.
+
+	* ftfont.c (ftfont_list): Handle QCotf property.  Handling of
+	QCname fixed.
+	(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): Code optimized.
+
+	* font.h (font_close_object, font_merge_old_spec): Extern them.
+
+2008-02-02  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): Deleted.
+	(font_prop_validate_symbol, font_prop_validate_style): Argument
+	changed.  Caller changed.
+	(font_prop_validate_non_neg): Renamed from
+	font_prop_validate_size.
+	(font_prop_validate_extra): Deleted.
+	(font_prop_validate_spacing): New function.
+	(font_property_table): Add elements for all known properties.
+	(get_font_prop_index): Renamed from check_font_prop_name.  New
+	argument FROM.  Caller changed.
+	(font_prop_validate): Validate all known properties.
+	(font_put_extra): Argument force deleted.  Caller changed.
+	(font_expand_wildcards): Make it static.  Fix the way of shrinking
+	the possible range.
+	(font_parse_xlfd): Arguemnt merge deleted.  Fix handling of RESX,
+	RESY, SPACING, and AVGWIDTH.  Don't validate property values here.
+	Caller changed.
+	(font_unparse_xlfd): Handle dpi, spacing, and scalable properties.
+	(font_parse_fcname): Arguemnt merge deleted.  Fix parsing of point
+	size.  Don't validate properties values here.  Caller changed.
+	(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): Prototype adjusted.
+
+	* ftfont.c (ftfont_list): Handle properties dpi, spacing, and
+	scalable.
+
+	* xfont.c (xfont_query_font): Adjusted for the change of
+	font_parse_xlfd.
+	(xfont_list_pattern): New function.
+	(xfont_list): Use xfont_list_pattern.
+
+	* xftfont.c (xftfont_prepare_face): Cancel previous change.
+	(xftfont_done_face): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* font.h (Flist_fonts): EXFUN it.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32term.c (w32_initialize): Add back smoothing_type and
+	smoothing_enabled definitions.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xterm.c (x_draw_glyph_string) [USE_FONT_BACKEND]: Check
+	s->face->font on determining underline position.
+
+2008-02-02  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.
+
+	* xftfont.c (xftfont_prepare_face): Make non-ascii face share
+	face->extra with ascii face.
+	(xftfont_done_face): Don't free face->extra of non-ascii face.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* frame.c (x_set_font) [USE_FONT_BACKEND]: Fix argument to
+	font_open_by_name.
+
+2008-02-02  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 divice 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 enumenrated values (e.g. bold).  Fix
+	handling font size.  Add QCname property that contains only
+	unknown properties.
+	(font_score): Change argument.  Caller changed.  Pay attention to
+	FONT_PIXEL_SIZE_QUANTUM.
+	(font_sort_entites): Fix handling of font size.
+	(font_list_entities): Likewise.
+	(font_find_for_lface): Likewise.
+	(font_open_for_lface): Likewise.
+	(font_open_by_name): Likewise.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* lread.c (read_escape): Fix the code synched with HEAD.
+
+	* 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-02  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* frame.h (x_new_fontset2): Fix prototype.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* font.h (struct font_driver): Member parse_name deleted.
+	(font_match_p, font_get_spec, font_parse_fcname)
+	(font_unparse_fcname): Extern them.
+	(font_get_name): Prototype adjusted.
+
+	* 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): Return value changed 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]: Prototype
+	adjusted.
+
+	* fontset.c (new_fontset_from_font) [USE_FONT_BACKEND]: Argument F
+	deleted.  Don't call Fnew_fontset.  Instead, directly call
+	make_fontset.
+
+	* frame.h (x_new_fontset2) [USE_FONT_BACKEND]: Prototype adjusted.
+
+	* frame.c (x_set_font) [USE_FONT_BACKEND]: Adjusted 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): Argument NAME deleted.
+	(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-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macterm.c (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
+
+2008-02-02  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): Argument changed.  Caller changed.  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* font.h (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Extern them.
+
+	* font.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Moved 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): Moved 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-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32term.c (w32_initialize): Manually sync 2008-02-02 change from
+	HEAD.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* emacs.c (main): Check -enable-font-backend arg after the check
+	of -nl.
+	(standard_args): Add "-enable-font-backend".
+
+	* coding.c (Ffind_operation_coding_system): Sync with HEAD.
+
+	* callproc.c (Fcall_process): Sync with HEAD.
+
+	* coding.h (CODING_REQUIRE_ENCODING): Comment sync with HEAD.
+
+2008-02-02  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 backroudn color only when with_background is
+	nonzero.
+
+	* xfont.c (xfont_encode_char): Fix calculation of char2b.
+
+2008-02-02  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): Depends 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.
+
+	* config.in: Re-generated.
+
+	* 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.h (system_eol_type): Fix synching with HEAD.
+
+	* coding.c (system_eol_type): Sync with HEAD.
+	(coding_inherit_eol_type): If PARENT is nil, inherit from
+	system_eol_type.
+	(syms_of_coding): Initialize system_eol_type.
+
+	* callproc.c (Fcall_process): Sync with HEAD.
+
+	* process.c (setup_process_coding_systems): Fix synching with
+	HEAD.
+	(read_process_output): Likewise.
+	(Fset_process_coding_system): Inherit system's eol format if
+	necessary.
+
+	* fileio.c (choose_write_coding_system): Fix synching with HEAD.
+
+	* keymap.c (push_key_description): Fix synching with HEAD.
+
+2008-02-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macgui.h (USE_ATSUI): Don't enable on emacs-unicode-2 branch.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (Fdefine_charset_internal): Fix setting of
+	emacs_mule_bytes.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
+	condition to terminate the loop.
+
+2008-02-02  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-02  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): Fix parsing a composition
+	rule.
+	(DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION): Likewise.
+	(decode_coding_emacs_mule): Handle invalid bytes correctly.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (encode_coding_ccl): Allocate destination dynamically
+	when necessary.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (decode_coding): Fix previous change.
+
+	* 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* search.c (search_buffer): Fix handling of "\\" in a trivial
+	regexp.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (decode_coding): Fix the condition of terminating the
+	decoding loop.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (map_charset_chars): Fix for ascii-compatible charset
+	made by a mapping table.
+
+2008-02-02  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-02  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.
+
+	* term.c (produce_glyphs): Sync to HEAD.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (x_produce_glyphs): Handle composition with TAB.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c: Cancel incorrect synching with HEAD.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (Fdefine_coding_system_internal): Avoid a duplicated
+	element in Vcoding_system_alist.
+	(Fdefine_coding_system_alias): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF.
+
+	* coding.c: Sync to HEAD for handling autoload-coding-system.
+	(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): Try also Fcheck_coding_system.
+	(CHECK_CODING_SYSTEM_GET_ID): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xterm.c (handle_one_xevent): Delete unnecessary code inserted by
+	sync with HEAD.
+
+	* coding.c (code_conversion_restore): GCPRO arg.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* character.c (lisp_string_width): Check multibyteness of STRING.
+
+2008-02-02  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-02  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 charcter is an ASCII.
+	(simple_search): Fix culculation of byte length of matched text.
+	(boyer_moore): Fix handling of case-equivalent multibyte
+	characters.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (decode_coding): Fix handling of invalid bytes.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xterm.c (handle_one_xevent): Handle keysyms directly mapped to
+	Unicode characters.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (encode_coding_object): If a pre-write-conversion
+	function makes a new buffer, kill it.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (QCascii_compatible_p): New variable.
+	(syms_of_coding): Initialize it.
+	(ONE_MORE_BYTE): Decrement `src' before calling string_char.
+	(ONE_MORE_BYTE_NO_CHECK): Likewise.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (get_next_display_element): Sync with the change in
+	HEAD (2008-02-02).
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* callproc.c (Fcall_process): Sync with the change in
+	HEAD (2008-02-02).
+
+2008-02-02  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-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macterm.c (x_font_name_to_mac_font_name): Sync with trunk
+	for the case that does not require code conversion.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* Makefile.in (shortlisp): Cancel previous change.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* Makefile.in (shortlisp): Add ../lisp/international/charprop.el.
+	(temacs${EXEEXT}): Build charprop.el if necessary.
+	(admindir): New variable.
+	($(lispsource)international/charprop.el): New target.
+
+2008-02-02  Miles Bader  <miles@gnu.org>
+
+	* character.c (chars-in-region): Obsolete function removed.
+	(syms_of_character): Remove its initialization.
+
+2008-02-02  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
+	were signals are allowed.
+
+	* lisp.h (Fcoding_system_base, Fcoding_system_eol_type)
+	(Fcheck_coding_system): Add declarations.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* s/ms-w32.h (STDC_HEADERS): Sync with the change in
+	HEAD (2008-02-02).
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (load_charset_map_from_vector): Fix for the first
+	iteration.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fns.c (Fstring_as_multibyte): Fix the change for syncing with
+	CVS head.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* search.c (search_buffer): Fix the change for syncing with CVS
+	head.
+	(search_buffer): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (get_next_display_element): Sync with CVS head.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (set_default_ascii_font): Fix the change for
+	syncing with CVS head.
+
+2008-02-02  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-02  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-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (get_next_display_element): Sync to the change in HEAD
+	on 2008-02-02.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* search.c: Sync to the change in HEAD on 2008-02-02, 20.
+
+	* w32console.c: Sync to the change in HEAD on 2008-02-02.
+
+	* coding.c: Cancel the change done in HEAD on 2008-02-02.
+	(coding_charset_list): New function.
+
+	* coding.h (coding_charset_list): Extern it.
+
+	* term.c: Sync to the change in HEAD on 2008-02-02.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (Fset_fontset_font): Call find_font_encoding with
+	concatenation of family and registry.
+
+2008-02-02  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-02  Andreas Schwab  <schwab@suse.de>
+
+	* chartab.c (map_char_table): GCPRO table and arg.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* syntax.c (skip_syntaxes): Return lispy 0 (not nil) if point is
+	already at limit.
+
+2008-02-02  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): Argument changed to Lisp_Object.  Use
+	fast_string_match_ignore_case instead of
+	fast_c_string_match_ignore_case.  Caller changed.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (get_next_display_element): In unibyte case, decide to
+	display in octal form by checking a chacter 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* callproc.c (Fcall_process): Fix merging of 2008-02-02 change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (encode_coding_iso_2022): Fix handling of charset
+	annotation.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (message_dolog, set_message_1): Call
+	unibyte_char_to_multibyte with arg type int.
+
+	* fileio.c (Fsubstitute_in_file_name): Fix previous change.
+
+	* lread.c (read1): Fix reading of a char-table.
+
+	* print.c (print_object): Include sub char-table in cicularities
+	detection.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.h (CHAR_CHARSET): Shortcut for ASCII case.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (detect_coding): Fix previous change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (detect_coding_utf_16): Don't set detect_info->found if
+	BOM is not found.
+	(detect_coding): Optimization for ISO-2022 when no 8-bit data is
+	found.
+	(detect_coding_system): Likewise.
+
+2008-02-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32fns.c (x_to_w32_font): Update to use new coding struct.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (Fdeclare_equiv_charset): Fix handing of CHARS.
+	(Fiso_charset): Likewise.
+
+2008-02-02  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-02  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
+	whne HAVE_WINDOW_SYSTEM is defined.
+
+2008-02-02  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): Docstring fixed.
+	(Ffontset_info): Make it backward compatible.  New arg ALL.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fileio.c (WRITE_BUF_SIZE): This macro deleted.
+	(e_write): Fix previous change.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (detect_coding): Delete unused variables.
+	(detect_coding_system): Likewise.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	Sync all files to HEAD.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (Ffind_coding_systems_region_internal): Include
+	raw-text and no-conversion in the result.
+
+	* fontset.h: Sync to HEAD.
+
+	* fontset.c: Sync to HEAD.
+
+2008-02-02  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): Argument changed.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (fontset_font): Renamed from fontset_face.  Return
+	value changed.
+	(face_suitable_for_char_p): Adjusted for the change of
+	fontset_font.
+	(face_for_char): Likewise.
+	(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): Adjusted for the change of fontset_font.
+
+	* composite.c: Sync to HEAD.
+
+	* search.c: Sync to HEAD.
+
+	* coding.c: Sync to HEAD.
+	(emacs_mule_char): Check invalid code more regidly.
+
+	* coding.h: Sync to HEAD.
+
+	* charset.c: Sync to HEAD.
+
+	* charset.h: Sync to HEAD.
+
+	* character.h (LEADING_CODE_LATIN_1_MIN)
+	(LEADING_CODE_LATIN_1_MAX): Delete these macros.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* category.h: Sync to HEAD.
+
+	* category.c: Sync to HEAD.
+
+	* syntax.h: Sync to HEAD.
+
+	* syntax.c: Sync to HEAD.
+
+	* regex.h: Sync to HEAD.
+
+	* regex.c: Sync to HEAD.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* editfns.c: Sync to HEAD.
+	(check_translation): New function.
+	(Ftranslate_region_internal): Handle M:N mapping.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xfaces.c (xlfd_point_size): Set font->numeric[XLFD_PIXEL_SIZE].
+
+2008-02-02  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-02  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): Fix Lisp_Object/int mixup.
+	(new_fontset_from_font_name): Likewise.
+
+	* 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): Call get_translation_table with max_lookup NULL.
+	(Ffind_coding_systems_region_internal): Likewise.
+	(Funencodable_char_position, Fcheck_coding_systems_region):
+	Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (get_translation_table): Declare it as Lisp_Object.
+	(LOOKUP_TRANSLATION_TABLE): New macro.
+	(produce_chars): Use LOOKUP_TRANSLATION_TABLE instead of
+	CHAR_TABLE_REF.
+	(consume_chars): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (MAX_ANNOTATION_LENGTH): Adjusted 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.  Caller
+	changed.
+	(decode_coding_utf_8): Pay attention to coding->charbuf_used.
+	(decode_coding_utf_16, decode_coding_emacs_mule)
+	(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
+	(decode_coding_ccl, decode_coding_charset): Likewise.
+	(get_translation): New function.
+	(produce_chars): New arguments translation_table and last_block.
+	Translate characters here.  Return number of carryover chars.
+	Caller changed.
+	(produce_composition): New argument pos.  Caller changed.
+	Adjusted 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.  Caller changed.
+	(translate_chars): Deleted.
+	(syms_of_coding): Make translation-table's number of extra slots
+	2.
+
+2008-02-02  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-02  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): Renamed 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xfaces.c (Fface_font): New optional arg CHARACTER.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.h (CHARSET_OFFSET): New macro.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (FONTSET_DEFAULT): New macro.
+	(FONTSET_ADD): Handle the case that range is nil.
+	(fontset_add): Likewise.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* emacs.c (main): Call init_charset after syms_of_XXX.
+
+	* charset.c (Vcharset_map_directory): Deleted.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fns.c (string_char_to_byte): Optimize for ASCII only string.
+	(string_byte_to_char): Likewise.
+
+	* fileio.c (Finsert_file_contents): Avoid detecting a code twice.
+
+	* coding.c (detect_coding_iso_2022): Fix handling of SS2 and SS3.
+	(detect_coding): Treat '\0' as normal ASCII byte..
+	(detect_coding_system): Likewise.
+
+2008-02-02  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): Handle 4th charset (typically JISX0212).
+	(encode_coding_sjis): Likewise.
+
+	* 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-02  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): Utilze get_translation_table.
+	(encode_coding): Likewise.
+	(char_encodable_p): Translate char if necessary.
+	(Funencodable_char_position): Likewise.
+	(Ffind_coding_systems_region_internal): Setup translation table
+	for encode in a coding system attribute vector in advance.
+	(Fcheck_coding_systems_region): Likewise.
+	(Fdefine_coding_system_internal): Allow a symbol as translation
+	table.  For shift-jis type coding system, allow 4th charset.
+
+2008-02-02  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-02  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-02  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 itnerval->plist is nil.
+	(syms_of_print): Declare Vprint_charset_text_property as a lisp
+	variable.  Init and staticpro print_prune_charset_plist.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* dispextern.h (FACE_FOR_CHAR): New args POS and OBJECT.
+
+	* fontset.c (reorder_font_vector): Adjusted for the change of
+	FONT_DEF format.
+	(fontset_face): New arg id.  Caller changed.
+	(face_for_char): New args pos and object.
+	(make_fontset_for_ascii_face): Adjusted for the change of FONT_DEF
+	format.n
+	(fs_query_fontset): Check NAME by Fassoc too.
+	(Fset_fontset_font): Allow non-XLFD font name.
+	(Ffontset_info): Adjusted for the change of FONT_DEF format.
+
+	* fontset.h (face_for_char): Prototype adjusted.
+
+	* xdisp.c (face_before_or_after_it_pos): Call FACE_FOR_CHAR with
+	POS and OBJECT args.
+	(get_next_display_element): Likewise.
+	(append_space): Likewise.
+	(extend_face_to_end_of_line): Likewise.
+	(get_char_face_and_encoding): Likewise.
+	(BUILD_COMPOSITE_GLYPH_STRING): Likewise.
+	(x_produce_glyphs): Likewise.
+
+	* 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-02  Jason Rumney  <jasonr@gnu.org>
+
+	* w32select.c (Fw32_set_clipboard_data): Avoid potential realloc
+	of GlobalAlloc'ed memory.
+
+2008-02-02  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.  All codes setting
+	coding->result are changed to call this function.
+	(detect_coding_utf_8): Don't use the local variable incomplete.
+	(decode_coding_utf_8): Likewise.
+	(emacs_mule_char): Change the second arg to `const'.
+	(detect_coding_emacs_mule): Don't use the local variable
+	incomplete.
+	(detect_coding_sjis): Likewise.
+	(detect_coding_big5): Likewise.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xdisp.c (handle_auto_composed_prop): Give limit to
+	Fnext_single_char_property_change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (detect_coding): Fix previous change.
+	(detect_coding_system): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* composite.c (syms_of_composite): Don't make the compostion hash
+	table week.
+
+	* 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 macor
+	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.  Callers changed.
+	(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): Don't do eol converion.
+	(decode_coding_iso_2022): Likewise.
+	(decode_coding_sjis): Likewise.
+	(decode_coding_big5): Likewise.
+	(decode_coding_charset): Likewise.
+	(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 convesion for
+	all types of coding-systems (if necessary).
+	(Vcode_conversion_work_buf_list): Delete it.
+	(Vcode_conversion_reused_workbuf): Renamed 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): Argument changed to cons.
+	(code_conversion_save): Delete the argument BUFFER.  Callers
+	changed.
+	(detect_coding_system): New argument src_chars.  Callers changed.
+	Fix for utf-16 detection.
+	(init_coding_once): Don't use ISO_carriage_return.
+	(syms_of_coding): Initialized Vcode_conversion_workbuf_name and
+	reused_workbuf_in_use.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* keymap.c (store_in_keymap): Pay attention to the case that idx
+	is a cons specifying a character range.
+
+	* coding.c (Fdefine_coding_system_internal): Fix previous change.
+
+2008-02-02  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-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* keymap.c (Fdefine_key): Fix handling of Lucid style event type
+	list.
+
+	* fns.c (Fmapconcat): Signal an error if SEQUENCE is a char table.
+	(Fmapcar): Likewise.
+	(Fmapc): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* syntax.c (skip_chars): Be sure to alloca char_ranges when
+	necessary.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* xfaces.c (set_lface_from_font_name): Fix for the case that
+	FONTNAME is not fontset name.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* fns.c (base64_encode_1): Fix previous change.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (Fnew_fontset): Check NAME more rigidly.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* editfns.c (Fgoto_char): Fix docstring.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* insdel.c (insert_from_gap): Adjust intervals correctly.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fileio.c (Finsert_file_contents) [DOS_NT]: Use the macro
+	CODING_ID_EOL_TYPE..
+
+2008-02-02  Andreas Schwab  <schwab@suse.de>
+
+	* coding.c (produce_chars): Revert last change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.h (charset_unicode): Extern it.
+
+	* charset.c (string_xstring_p): Check by (C >= 0x100).
+	(find_charsets_in_text): Format of the arc CHARSETS changed.  New
+	arg MULTIBYTE.
+	(Ffind_charset_region, Ffind_charset_string): Adjusted for the
+	change of find_charsets_in_text.
+	(Fsplit_char): Fix doc.  Never return unknown.
+
+	* chartab.c (char_table_translate): Use CHARACTERP, not INETEGERP.
+
+	* 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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* term.c (terminal_encode_buffer, terminal_encode_buf_size): New
+	variables.
+	(encode_terminal_code): Argument changed.  Encode multiple
+	characters at once.  Store the result of encoding in
+	terminal_encode_buffer.
+	(write_glyphs): Adjusted for the change of encode_terminal_code.
+	(insert_glyphs): Likewise.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* character.c (char_string): Use ASCII_CHAR_P instead of
+	SINGLE_BYTE_CHAR_P.
+
+2008-02-02  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-02  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-02  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): Removed (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
+	unsued vars.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* xterm.c (x_bitmap_mask): Declare.
+
+2008-02-02  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.
+
+	* alloc.c: Sync with HEAD version.
+
+	* 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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* fileio.c (Finsert_file_contents): Call setup_coding_system in
+	the case of auto saving.
+
+2008-02-02  Andreas Schwab  <schwab@suse.de>
+
+	* chartab.c (map_char_table): Protect `range' from GC.
+	(map_char_table_for_charset): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (decode_coding_sjis): Check bytes more rigidly.
+
+2008-02-02  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-02  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-02  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-02  Dave Love  <fx@gnu.org>
+
+	* regex.c (re_search_2): Fix last change.
+
+2008-02-02  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): Fix setting up of
+	unibyte_to_multibyte_table.
+	(init_charset_once): Likewise.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.h (make_conversion_work_buffer): Prototype adjusted.
+	(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): Argument changed.
+	(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 unsed vaiable 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-02  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-02  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.  Adjusted for the above change.
+
+2008-02-02  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-02  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-02  Dave Love  <fx@gnu.org>
+
+	* lread.c (read_emacs_mule_char) [len==2]: Index
+	emacs_mule_charset correctly.
+
+2008-02-02  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): Deleted.  (Big5 no longer
+	treated specially.)
+	(setup_coding_system, coding_category, CATEGORY_MASK_ANY)
+	(detected_mask): Remove Big5 bits.
+
+2008-02-02  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): Renamed from
+	Vface_resizing_fonts.
+	(struct font_name): Rename member resizing_ratio to rescale_ratio.
+	(font_rescale_ratio): Renamed 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-02  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-02  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-02  Dave Love  <fx@gnu.org>
+
+	* coding.c (Fcheck_coding_systems_region): Fix type errors.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
+	and fix C types.
+
+2008-02-02  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-02  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): Prototype adjusted.
+
+	* ccl.c (CCL_DECODE_CHAR, CCL_ENCODE_CHAR): New macros.
+	(ccl_driver): New arg CHARSET_LIST.  Use the above macros instead
+	of DECODE_CAHR, ENCODE_CHAR, CHAR_CHARSET.
+	(Fccl_execute): Call ccl_driver with the last arg Qnil.
+	(Fccl_execute_on_string): Likewise.
+
+2008-02-02  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.
+
+	* xterm.c (x_new_fontset): Fix previous change.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* composite.c (syms_of_composite): Make composition_hash_table
+	weak.
+
+2008-02-02  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): Moved 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): Moved to fontset.c.
+	(font_name_registry): Function deleted.
+	(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): Adjusted to 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): Prototype adjusted.
+
+	* 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-02  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-02  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-02  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): Fix argument to char_table_ascii.
+	(char_table_set_range): Likewise.
+
+	* 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.  Callers changed.
+	(MAX_ANNOTATION_LENGTH): New macro.
+	(ADD_ANNOTATION_DATA): New macro.
+	(ADD_COMPOSITION_DATA): Argument changed.  Callers changed.  Call
+	ADD_ANNOTATION_DATA.  The format of annotation data changed.
+	(ADD_CHARSET_DATA): New macro.
+	(emacs_mule_char): New argument ID.  Callers changed.
+	(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): Adjusted 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): Prototype of the member `detector'
+	adjusted.
+	(CODING_ANNOTATE_CHARSET_MASK): New macro.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* insdel.c (insert_from_gap): Fix argument to offset_intervals.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (Fdefine_charset_internal): Setup charset.fast_map
+	correctly.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* fns.c (Flanginfo): Call synchronize_system_time_locale.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (decode_coding_utf_8): When eol_type is Qdos, handle
+	the case that the last byte is '\r' correctly.
+	(decode_coding_emacs_mule): Likewise.
+	(decode_coding_iso_2022): Likewise.
+	(decode_coding_sjis): Likewise.
+	(decode_coding_big5): Likewise.
+	(decode_coding_charset): Likewise.
+	(produce_chars): Likewise.
+	(decode_coding): Flushing out the unprocessed data correctly.
+	(decode_coding_gap): Set CODING_MODE_LAST_BLOCK bit of
+	coding->mode.
+
+2008-02-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (Fset_charset_priority): Update
+	Viso_2022_charset_list.
+
+2008-02-02  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-02  Dave Love  <fx@gnu.org>
+
+	* xterm.c (xaw_scroll_callback): Cast correctly.
+
+2008-02-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (detect_coding): Fix previous change.
+	(detect_coding_charset): If only ASCII bytes are found, return 0.
+	(detect_coding_system): Fix previous change.
+	(Fdefine_coding_system_internal): Setup
+	CODING_ATTR_ASCII_COMPAT (attrs) correctly.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* coding.c (Fcheck_coding_system): Doc fix.
+
+	* editfns.c (Finsert_byte): Return a proper value.
+
+2008-02-02  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-02  Dave Love  <fx@gnu.org>
+
+	* fns.c (Fstring_as_multibyte, Fstring_to_multibyte): Doc fix.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* fns.c (Flanginfo): Fix typo.
+
+	* unexelf.c (unexec): Make last change conditional on Irix 6.5.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (detect_coding_utf_8): Check incomplete byte sequence.
+	Don't update *mask when correctly detected.
+	(detect_coding_utf_16): Likewise.
+	(detect_coding_emacs_mule): Likewise.
+	(detect_coding_iso_2022): Likewise.
+	(detect_coding_sjis): Likewise.
+	(detect_coding_big5): Likewise.
+	(detect_coding_ccl): Likewise.
+	(decode_coding_sjis): Fix decoding of katakana-jisx0201.
+	(detect_eol): Delete the argument CODING, and add the argument
+	CATEGORY.
+	(detect_coding): Adjusted for the changes above.
+	(detect_coding_system): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* character.c (char_string): Renamed from
+	char_string_with_unification.  Pay attention to
+	CHAR_MODIFIER_MASK.
+	(string_char): Renamed from string_char.
+
+	* character.h (CHAR_STRING): Call char_string if C is greater than
+	MAX_3_BYTE_CHAR.
+	(CHAR_STRING_ADVANCE): Likewise.
+	(STRING_CHAR): Call string_char instead of
+	string_char_with_unification.
+	(STRING_CHAR_AND_LENGTH): Likewise.
+	(STRING_CHAR_ADVANCE): Likewise.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* coding.c (decode_coding_utf_8): Treat surrogates as invalid.
+
+2008-02-02  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-02  Dave Love  <fx@gnu.org>
+
+	* charset.c (define_charset_internal): Rename `supprementary'.
+
+	* Makefile.in (lisp, shortlisp): Remove latin-N.
+
+2008-02-02  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-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* regex.c (re_search_2): Fix previous change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* syntax.c (skip_syntaxes): Fix previous change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* syntax.c (skip_chars): Fix previous change.
+	(skip_syntaxes): Fix previous change.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* config.in: Restore it.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* config.in: Removed (now auto-generated).
+
+	* s/usg5-4.h: Fix last change.
+
+	* 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-02  Dave Love  <fx@gnu.org>
+
+	* charset.h (charset_ordered_list_tick): Declare extern.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	The following changes (and some of 2008-02-02 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 defined 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, singals 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'.
+
+	* casefiddle.c (casify_object): Fix previous change.
+
+	* 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): Extern deleted.
+
+	* 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>: Simplified 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): Use FETCH_CHAR_AS_MULTIBYTE to convert
+	unibyte chars to multibyte.
+	(back_comment): Likewise.
+	(scan_words): Likewise.
+	(skip_chars): The arg syntaxp is deleted, and the code for
+	handling syntaxes is moved to skip_syntaxes.  Callers changed.
+	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.
+	(Fforward_comment): Use FETCH_CHAR_AS_MULTIBYTE to convert unibyte
+	chars to multibyte.
+	(scan_lists): Likewise.
+	(Fbackward_prefix_chars): Likewise.
+	(scan_sexps_forward): Likewise.
+
+2008-02-02  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): Handle QCfontset.
+	(Finternal_get_lisp_face_attribute): Likewise.
+	(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-02  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-02  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): Extern deleted.
+	(FETCH_MULTIBYTE_CHAR): Don't use _fetch_multibyte_char_len.
+	(BUF_FETCH_MULTIBYTE_CHAR): Likewise.
+	(FETCH_CHAR_AS_MULTIBYTE): New macro.
+
+	* casetab.c (set_canon, set_identity, shuffle): Simplified.
+
+	* casefiddle.c (casify_object): Simplified.  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): This variable deleted.
+	(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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* xterm.c (x_new_fontset): Call `create-fontset-from-ascii-font'
+	to create a fontset.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* character.c (Funibyte_char_to_multibyte): Doc fix.
+
+	* xfns.c [HAVE_STDLIB_H]: Fix last change.
+
+2008-02-02  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): Refer to
+	charset_unibyte, not charset_primary.
+	(multibyte_char_to_unibyte): Likewise.
+	(Funibyte_char_to_multibyte): Likewise.
+
+	* charset.h: (charset_unibyte): Extern it instead of
+	charset_primary.
+
+	* charset.c (charset_unibyte): Renamed from charset_primary.
+	(Funibyte_charset): Renamed from Fprimary_charset.
+	(Fset_unibyte_charset): Renamed from Fset_primary_charset.
+	(syms_of_charset): Adjusted 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):
+	Extern deleted.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (Fdefine_coding_system_internal): Fix category setting
+	for a coding system of type iso-2022.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.h (FS_LOAD_FONT): Call fs_load_font with the arg CHARSET
+	-1.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* syntax.c (Vnext_word_boundary_function_table): New variable.
+	(syms_of_syntax): Declare it as a Lisp variable.
+	(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-02  Dave Love  <fx@gnu.org>
+
+	* config.in: Generated with autoheader.
+
+	* 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-02  Kenichi Handa  <handa@m17n.org>
+
+	* buffer.c (Qas, Qmake, Qto): New variables.
+	(Fset_buffer_multibyte): New optional arg METHOD.  Caller changed.
+	(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): These variables deleted.
+	(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): Adjusted for the change
+	of Fset_buffer_multibyte.
+	(encode_coding_raw_text): Increment p0 in the loop.
+
+	* lisp.h (Fset_buffer_multibyte): Prototype adjusted.
+
+	* xdisp.c (setup_echo_area_for_printing, set_message_1): Adjusted
+	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-02  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.  Include hash table stuff
+	from trunk.
+
+2008-02-02  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): This variable deleted.
+	(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 fixed.  If PURPOSE doesn't
+	have property char-table-extra-slots, make no extra slot.
+
+	* dispextern.h (struct face): Member `charset' deleted.
+	(FACE_SUITABLE_FOR_CHAR_P): Use ASCII_CHAR_P, not
+	SINGLE_BYTE_CHAR_P.
+	(FACE_FOR_CHAR): Likewise.
+	(choose_face_font, lookup_non_ascii_face, font_name_registry): Add
+	prototypes
+	(lookup_face, lookup_named_face, lookup_derived_face): Prototype
+	fixed.
+	(generate_ascii_font_name): Renamed from generate_ascii_font.
+
+	* fontset.h (get_font_repertory_func): New prototype.
+	(make_fontset_for_ascii_face, fs_load_font): Prototypes fixed.
+	(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): These macros deleted.
+	(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): This function deleted.
+	(fontset_face): New arg FACE.  Return face ID, not face.
+	Completely re-written to handle new fontset structure.  Caller
+	changed.
+	(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): Adjuted 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): Adjusted for the change of
+	lookup_named_face.
+
+	* xfaces.c: Include charset.h.
+	(load_face_font): Argument C deleted.  Caller changed.
+	(generate_ascii_font_name): Renamed from generate_ascii_font.
+	(font_name_registry): New function.
+	(cache_face): Store ascii faces before non-ascii faces in buckets.
+	(lookup_face): Arguments C and BASE_FACE deleted.  Caller changed.
+	Lookup only ascii faces.
+	(lookup_non_ascii_face): New function.
+	(lookup_named_face): Argument C deleted.  Caller changed.
+	(lookup_derived_face): Argument C deleted.  Caller changed.
+	(try_font_list): New arg PATTERN.  Caller changed.  If PATTERN is
+	a string, just call font_list with it.
+	(choose_face_font): Arguments FACE and C deleted.  New arg
+	FONT_SPEC.  Caller changed.
+	(realize_face): Arguments C and BASE_FACE deleted.  Caller
+	(realize_x_face): Likewise.
+	(realize_non_ascii_face): New function.
+	(realize_x_face): Call load_face_font here.
+	(realize_tty_face): Argument C deleted.  Caller changed.
+	(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-02  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-02  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): This variable deleted.
+	(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): This function deleted.
+	(readbyte_for_lambda, readbyte_from_file, readbyte_from_string)
+	(read_emacs_mule_char): New functions.
+	(Fload): Even if the file doesn't have the extention ".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): The arg BYTEREP deleted.
+	(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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* character.h (TRAILING_CODE_P): New macro.
+	(MAYBE_UNIFY_CHAR): Adjusted 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): Add `const' to local variables.
+	(str_as_unibyte): Likewise.
+	(string_escape_byte8): Likewise.
+	(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): Adjusted 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 arguemnts and local
+	variables.
+	(encode_char): Adjusted 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): Macros
+	deleted.  Callers changed to use
+	EMACS_MULE_LEADING_CODE_PRIVATE_11, etc.
+	(decode_coding_ccl): Add `const' to local variables.
+	(consume_chars): Likewise.
+	(Ffind_coding_systems_region_internal): Likewise.
+	(Fcheck_coding_systems_region): Likewise.
+
+	* print.c (print_object): Use octal form for printing the
+	contents of a bool vector.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* lread.c (Fload) <!load_dangerous_libraries>: Don't leak fd.
+	<version == 20>: Refuse to load.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* fns.c: Move coding.h.
+	(Qcodeset, Qdays, Qmonths): New.
+	(concat): Use CHARACTERP instead of INTERGERP.
+	(Flocale_codeset): Deleted.
+	(Flanginfo): New function.
+	(syms_of_fns): Changed accordingly.
+
+	* coding.c (adjust_coding_eol_type): Fix eol_type/eol_seen mixup.
+
+2008-02-02  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): Removed.
+
+	* 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-02  Dave Love  <fx@gnu.org>
+
+	* coding.c (Fset_coding_system_priority): Allow null arg list.
+
+2008-02-02  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-02  Dave Love  <fx@gnu.org>
+
+	* charset.c: Doc fixes.
+	(Funify_charset): Extra checking.
+
+2008-02-02  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-02  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): Adjusted 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): Macros deleted.
+	(CHARSET_ATTR_SUBSET, CHARSET_ATTR_SUPERSET, CHARSET_SUBSET)
+	(CHARSET_SUPERSET): New macros.
+	(charset_work): Extern it.
+	(ENCODE_CHAR): Use charset_work.
+	(CHAR_CHARSET_P): Adjusted 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): Argument changed.  Callers changed.  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): Adjusted for the change of
+	`define-charset' (:parents -> :subset or :superset).
+	(charset_work): New variable.
+	(encode_char): Adjusted for the change of
+	Fdefine_charset_internal.
+	(syms_of_charset): Likewise.
+	(Ffind_charset_string): Setup the vector `charsets' correctly.
+
+	* chartab.c (sub_char_table_ref_and_range): New arg defalt.  Fix
+	the previous change.
+	(char_table_ref_and_range): Adjusted 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): Deleted.
+
+	* lisp.h (map_charset_chars): Deleted.
+
+2008-02-02  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): Removed.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* Makefile.in (chartab.o): Depend on charset.h
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* character.c (syms_of_character): Set the default value of
+	Vprintable_chars to Qnil.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* Makefile.in (lisp, shortlisp): Change indian.elc to indian.el.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (load_charset_map): Handle the case that from < to
+	correctly.
+
+	* coding.c (encode_coding_emacs_mule): Pay attention to raw-8-bit
+	chars.
+	(encode_coding_iso_2022): Likewise.
+	(encode_coding_sjis): Likewise.
+	(encode_coding_big5): Likewise.
+	(encode_coding_charset): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* Makefile.in (lisp): Change chinese.elc to chinese.el.  They are
+	not bytecompiled now.
+	(shortlisp): Likewise.
+
+	* 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): Macro definition changed.
+	(setup_iso_safe_charsets): Fix arguemtns to Fassq.
+	(DECODE_DESIGNATION): Pay attention to CODING_ISO_FLAG_USE_ROMAN
+	and CODING_ISO_FLAG_USE_OLDJIS.
+	(ENCODE_ISO_CHARACTER_DIMENSION1): Likewise.
+	(ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
+	(encode_coding_iso_2022): Change the 1st arg to
+	ENCODE_ISO_CHARACTER to a variable.
+
+2008-02-02  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): Take charset->char_index_offset
+	into account.
+	(INDEX_TO_CODE_POINT): Likewise.
+	(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-02  Dave Love  <fx@gnu.org>
+
+	* coding.c (decode_coding_utf_8): Reject overlong sequences.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* coding.c: Doc fixes.
+	(Fcoding_system_aliases): Fix return value.
+	(Qmac): Remove (duplicated) definition.
+
+2008-02-02  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-02  Dave Love  <fx@gnu.org>
+
+	* term.c (costs_set): Declare static, non-initialized for pcc.
+	(encode_terminal_code): Remove ensued 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): Moved 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-02  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-02  Yong Lu <lyongu@asia-infonet.com>
+
+	* charset.c (Fdefine_charset_internal): Fix argument to bzero.
+
+	* coding.c (Fdefine_coding_system_internal): Fix previous change.
+	(decode_coding_charset): Workaround for the bug of GCC 2.96.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* Makefile.in (lisp): Change cyrillic.elc to cyrillic.el,
+	vietnamese.elc to vietnamese.el.  They are not bytecompiled now.
+	(shortlisp): Likewise.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (decode_coding_charset): Adjusted 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.
+
+	* charset.c (Fmake_char): Fix previous change.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
+	(emacs_mule_char): New arg src.  Delete arg `composition'.  Caller
+	changed.  Handle 2-byte and 3-byte charsets correctly.
+	(DECODE_EMACS_MULE_COMPOSITION_RULE_20): Renamed from
+	DECODE_EMACS_MULE_COMPOSITION_RULE.  Caller changed.
+	(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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (encode_coding_iso_2022): If coding requires safe
+	encoding, produce a character specified by
+	CODING_INHIBIT_CHARACTER_SUBSTITUTION.
+	(encode_coding_sjis): Likewise.
+	(encode_coding_big5): Likewise.
+	(encode_coding_charset): Likewise.
+
+2008-02-02  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.
+	(MMAP_ALLOCATED_P, mmap_enlarge, syms_of_buffer): Import changes
+	from trunk.
+
+	* fontset.c (Fclear_face_cache): Declare.
+	(accumulate_font_info): Commented-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):
+	Removed.
+	(Fset_coding_system_priority, Fset_coding_system_priority)
+	(Fdefine_coding_system_internal): Doc fix.
+
+2008-02-02  Dave Love  <fx@gnu.org>
+
+	* s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Remove -nointrinsics.
+
+2008-02-02  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-02  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-02  Dave Love  <fx@gnu.org>
+
+	* coding.c: Doc fixes.
+	(Fdefine_coding_system_alias): Use names, not symbols, in
+	coding-system-alist.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* fontset.c (free_realized_fontsets): Call Fclear_face_cache instead
+	of calling free_realized_face.
+
+2008-02-02  Yong Lu <lyongu@asia-infonet.com>
+
+	* charset.c (load_charset_map): Fix previous change.
+	(read_hex): Don't treat SPC as a comment starter.
+	(decode_char): If CODE_POINT_TO_INDEX retruns -1, always return
+	-1.
+	(Fdecode_char): Fix typo.
+
+2008-02-02  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): Delete the local variable charset.
+	(Fdefine_coding_system_internal): Likewise.
+	(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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (decode_coding_charset, encode_coding_charset): Handle
+	multiple charsets correctly.
+
+2008-02-02  Kenichi Handa  <handa@m17n.org>
+
+	* search.c (boyer_moore): Fix handling of mulitbyte character
+	translation.
+
+	* xdisp.c (display_mode_element): When the variable `elt' is
+	changed, update `this' and `lisp_string'.
+
+2008-02-02  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): Renamed from parse_charset_map.  New args
+	entries and n_entries.  Caller changed.
+	(load_charset_map_from_file): Renamed from load_charset_map.
+	Caller changed.  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-convesion' 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-02  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-02  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-02  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (produce_chars): Set the variable `multibytep' correctly.
+	(decode_coding_gap): Set coding->dst_multibyte correctly.
+
+2008-02-02  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-02  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): Arg ADVANCED deleted.
+
+	* character.h (CHAR_VALID_P): Don't call CHARACTERP.
+	(CHAR_STRING): Adjusted for the change of
+	char_string_with_unification.
+	(CHAR_STRING_ADVANCE): Make it do-while statement.
+
+	* chartab.c (sub_char_table_set_range): Optimized 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-02  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): Adjusted 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): Moved to chartab.c.
+	(make_sub_char_table): Likewise.
+	(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): Adjuted 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): Adjusted 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-vel slots.
+	(char_category_set): New function.
+	(modify_lower_category_set): Deleted.
+	(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): Deleted.
+	(CCL_WRITE_STRING, CCL_READ_CHAR): Adjusted for the change of SRC
+	and DST type.
+	(ccl_driver): Types of arguments changed.  Code adjusted for that.
+	(Fccl_execute, Fccl_execute_on_string): Adjusted for the change of
+	ccl_driver.
+	(syms_of_ccl): Intern and staticpro Qccl and Qcclp.
+
+	* ccl.h (struct ccl_program): Members eol_type and multibyte
+	deleted.  New members src_multibyte, dst_multibyte, consumed, and
+	produced.
+	(struct ccl_spec): Members decoder and encoder deleted.  New
+	memeber ccl.
+	(CODING_SPEC_CCL_PROGRAM): New macro.
+	(ccl_driver): Prototype updated.
+	(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.  Character and multibyte sequence
+	handling codes are moved to character.c.
+
+	* charset.h: Mostly re-written.  Character and multibyte sequence
+	handling codes are moved to character.h.
+
+	* coding.c, coding.h: Mostly re-written.
+
+	* composite.c: Include "character.h" instead of "charset.h".
+	(CHAR_WIDTH): Moved to character.h.
+	(HASH_KEY, HASH_VALUE): Deleted.
+
+	* composite.h (enum composition_method): Order of enumeration
+	symbols changed.
+
+	* 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): Extern deleted.
+
+	* disptab.h (DISP_CHAR_VECTOR): Adjusted 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): Likewise.
+	(Fwrite_region): Likewise.
+	(build_annotations_2): Deleted.
+	(e_write): Big change for the new code-conversion API.
+
+	* fns.c: Include "character.h" instead of "charset.h".
+	(copy_sub_char_table): Moved to chartab.c.
+	(Fcopy_sequence): Call copy_char_table for a char table.
+	(concat): Delete codes calling count_multibyte.
+	(string_char_to_byte): Adjusted for the new multibyte form.
+	(string_byte_to_char): Likewise.
+	(internal_equal): Adjusted 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): Moved to
+	chartab.c.
+	(char_table_ref_and_index): Deleted.
+	(HASH_KEY, HASH_VALUE): Moved to lisp.h.
+	(Fmd5): Call preferred_coding_system instead of accessing
+	Vcoding_category_list.  Adjusted for the new code-conversion API.
+	(syms_of_fns): Defsubr for char table related functions moved to
+	chartab.c.
+
+	* fontset.c: Mostly re-written.
+
+	* fontset.h (struct font_info): Type of the member encoding_type
+	changed.
+	(enum FONT_SPEC_INDEX): New enum.
+	(fontset_font_pattern, fs_load_font): Prototype updated.
+	(FS_LOAD_FONT): Adjusted 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
+	translated 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): Adjusted 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):
+	Deleted.
+	(CHAR_TABLE_REF, CHAR_TABLE_SET): Adjusted 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-designed.
+	(struct Lisp_Sub_Char_Table): New structure.
+	(HASH_KEY, HASH_VALUE): Moved from fns.c.
+	(CHARACTERBITS): Defined as 22.
+	(GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted 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): EXFUN Updated.
+	(code_convert_string_norecord): Extern deleted.
+	(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): The meaning of returned *BYTEREP changed.
+	(to_multibyte): Deleted.
+	(read1): Adjuted 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): Adjusted 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): Adjusted for the new code-conversion API.
+	(send_process): Likewise.
+
+	* puresize.h (BASE_PURESIZE): Increased.
+
+	* 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): Adjusted for the above change.
+
+	* search.c: Include "character.h" instead of "charset.h".
+	(search_buffer, boyer_moore): Adjusted for the new multibyte form.
+	(Freplace_match): Adjusted for the change of
+	multibyte_char_to_unibyte.
+
+	* syntax.c: Include "character.h" instead of "charset.h".
+	(syntax_parent_lookup): Deleted.
+	(Fmodify_syntax_entry): Accept a cons as CHAR.
+	(skip_chars): Adjusted 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): Macro deleted.
+	(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): Adjusted for the new code-conversion API.
+	(write_glyphs): Likewise.
+	(produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.
+
+	* w32term.c (x_new_font): Adjusted for the change of FS_LOAD_FONT.
+
+	* xdisp.c: Include "character.h".
+	(get_next_display_element): Adjusted for the new multibyte form.
+	(disp_char_vector): Adjusted for the new char table structure.
+	(decode_mode_spec_coding): Adjusted for the new structure of
+	coding system.
+	(decode_mode_spec): Adjusted for the new code-conversion API.
+
+	* xfaces.c: Include "character.h" instead of "charset.h".
+	(load_face_font): Adjusted for the change of choose_face_font and
+	FS_LOAD_FONT.
+	(generate_ascii_font): New function.
+	(set_lface_from_font_name): Adjusted for the change of
+	FS_LOAD_FONT.
+	(set_font_frame_param): Adjusted for the change of
+	choose_face_font.
+	(free_realized_face): Make it public.
+	(free_realized_faces_for_fontset): Renamed from
+	free_realized_multibyte_face.  Free also faces realized for ASCII.
+	(choose_face_font): Argments changed.  Adjusted for the change of
+	fontset_font_pattern and FS_LOAD_FONT.
+
+	* xfns.c: Include "character.h".
+	(x_encode_text): Adjusted for the new code-conversion API.
+
+	* xselect.c: Don't include "charset.h".
+	(selection_data_to_lisp_data): Adjusted for the new code
+	covnersion API.
+
+	* xterm.c: Include "character.h".
+	(x_encode_char): New argument CHARSET.  Caller changed.
+	(x_get_char_face_and_encoding): Call ENCODE_CHAR instead of
+	SPLIT_CHAR.
+	(x_get_glyph_face_and_encoding): Likewise.
+	(x_produce_glyphs): Don't check Vnonascii_translation_table Call
+	CHAR_WIDTH instead of CHARSET_WIDTH.
+	(XTread_socket): Adjusted for the new code-conversion API.
+	(x_new_font): Adjusted for the change of FS_LOAD_FONT.
+	(x_load_font): Adjusted for the change of struct font.
+
 2008-02-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* xfaces.c (face_at_buffer_position): Remove unused vars.