+2006-06-19 Kenichi Handa <handa@m17n.org>
+
+ * font.c (font_parse_fcname): Fix parsing of point-size.
+ (font_unparse_fcname): Produce symbolic names for style
+ properties.
+ (font_list_entities): Handle float size correctly.
+ (font_open_by_name): Prefer `normal' property values if the name
+ doesn't specify them.
+
+ * fontset.c (Finternal_char_font): Use font_get_name, not
+ Ffont_xlfd_name.
+
+ * ftfont.c (ftfont_pattern_entity): Use the numeric value 100 for
+ FC_WEIGHT_REGULAR. Exclude FC_SIZE and FC_PIXEL_SIZE from listing
+ pattern. Don't force scalable.
+
+ * xftfont.c (xftfont_open): For generating a name, start from
+ 96-byte buffer.
+
+2006-06-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frame.h (x_new_fontset2): Fix prototype.
+
+2006-06-16 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.
+
+2006-06-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macterm.c (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
+
+2006-06-14 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.
+
+2006-06-09 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.
+
+2006-06-08 Jason Rumney <jasonr@gnu.org>
+
+ * w32term.c (w32_initialize): Manually sync 2006-06-05 change from
+ HEAD.
+
+2006-06-08 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.
+
+2006-06-07 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.
+
+2006-06-06 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.
+
+2006-05-15 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.
+
+2006-05-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macgui.h (USE_ATSUI): Don't enable on emacs-unicode-2 branch.
+
2006-04-07 Kenichi Handa <handa@m17n.org>
* coding.c (decode_eol): Pay attention to buffer relocation in