Mercurial > emacs
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.