*** empty log message ***
[bpt/emacs.git] / src / ChangeLog.unicode
index 6813700..2bfe6eb 100644 (file)
@@ -1,3 +1,526 @@
+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
+       del_range_2.
+       (decode_coding): Call decode_eol before restoring undo_list.
+
+2006-03-20  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (Fdefine_charset_internal): Fix setting of
+       emacs_mule_bytes.
+
+2006-03-14  Kenichi Handa  <handa@m17n.org>
+
+       * keyboard.c (read_char): Check if C is a character or not before
+       looking up Vkeyboard_translate_table.
+
+2006-03-10  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
+       condition to terminate the loop.
+
+2006-03-09  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.
+
+2006-03-07  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.
+
+2006-03-04  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_ccl): Allocate destination dynamically
+       when necessary.
+
+2006-03-03  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.
+
+2006-03-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.
+
+2006-03-01  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (search_buffer): Fix handling of "\\" in a trivial
+       regexp.
+
+2006-02-28  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding): Fix the condition of terminating the
+       decoding loop.
+
+2006-02-27  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.
+
+2006-02-22  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (map_charset_chars): Fix for ascii-compatible charset
+       made by a mapping table.
+
+2006-02-21  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.
+
+2006-02-20  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.
+
+2006-02-15  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (x_produce_glyphs): Handle composition with TAB.
+
+2006-02-05  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c: Cancel incorrect synching with HEAD.
+
+2006-02-03  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (Fdefine_coding_system_internal): Avoid a duplicated
+       element in Vcoding_system_alist.
+       (Fdefine_coding_system_alias): Likewise.
+
+2006-01-19  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.
+
+2006-01-17  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.
+
+2005-12-28  Kenichi Handa  <handa@m17n.org>
+
+       * character.c (lisp_string_width): Check multibyteness of STRING.
+
+2005-10-18  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.
+
+2005-10-17  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.
+
+2005-10-15  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding): Fix handling of invalid bytes.
+
+2005-10-06  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (handle_one_xevent): Handle keysyms directly mapped to
+       Unicode characters.
+
+2005-09-23  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_object): If a pre-write-conversion
+       function makes a new buffer, kill it.
+
+2005-07-29  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.
+
+2005-06-09  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (get_next_display_element): Sync with the change in
+       HEAD (2005-06-08).
+
 2005-06-06  Kenichi Handa  <handa@m17n.org>
 
        * callproc.c (Fcall_process): Sync with the change in
        * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
        unsued vars.
 
->>>>>>> 1.1.2.8
 2003-09-26  Dave Love  <fx@gnu.org>
 
        * xterm.c (x_bitmap_mask): Declare.