fp->tty_reverse_p is set, unless the computed colors are identical
to frame colors. Print both original and computed colors to
termscript file.
(IT_write_glyphs): Track the changes in handling of composite
characters.
(IT_set_frame_parameters): Don't set frame colors from
unspecified-fg and unspecified-bg pseudo-colors.
* regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
1999-12-04 Stefan Monnier <monnier@cs.yale.edu>
* regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
operators and handle them properly.
* regex.h (RE_ALL_GREEDY): New option.
(RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
sorting would put it.
(RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
(_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
on character terminals:
* dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
(FACE_TTY_DEFAULT_BG_COLOR): New macros.
* xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
(syms_of_xfaces): Initialize and staticpro them.
(tty_defined_color): If the color name is unspecified-fg or
unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
(tty_color_name): If the color pixel value is either
FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
Qunspecified_fg or Qunspecified_bg, respectively.
(Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
and Qunspecified_bg for foreground and background colors.
(realize_default_face): If the foreground and background colors
are not specified, default to Qunspecified_fg and Qunspecified_bg.
(realize_tty_face): By default, set the face colors to
FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
[MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
Reverse the colors if the default colors were reversed.
* dispnew.c (init_display): Initialize the frame pixels of the
initial frame to FACE_TTY_DEFAULT_FG_COLOR and
FACE_TTY_DEFAULT_BG_COLOR.
* term.c (turn_on_face): If the default fore- and background
colors are reversed, enter inverse video mode. Don't send color
escape sequences for unspecified foreground and background colors.
(turn_off_face): Handle unspecified-fg and unspecified-bg colors.
* dosfns.c (unspecified_colors): New variable.
(msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
color names, return FACE_TTY_DEFAULT_FG_COLOR and
FACE_TTY_DEFAULT_BG_COLOR, respectively.
(msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
Qunspecified_bg, respectively.
* msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
FACE_TTY_DEFAULT_BG_COLOR as pixel values.
* faces.el (face-read-integer, read-face-attribute)
(color-defined-p, color-values): Allow color values unspecified-fg
and unspecified-bg, handle them as unspecified.
for composition.
(x_append_composite_glyph): New function.
(VCENTER_BASELINE_OFFSET): New macro.
(x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
of struct it for the composition. Cache pixel offsets in the
struct composition. Delete codes for a composite character.
Handle Vignore_relative_composition in composition code.
(struct glyph_string): Delete member cmpcharp, add new member cmp.
(x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
(x_compute_glyph_string_overhangs): Likewise.
(x_get_glyph_overhangs): Delete codes for a composite character.
(x_right_overwritten): Check s->cmp, not s->cmpcharp.
(x_draw_glyph_string_background): Likewise. Delete codes for
checking s->gidx for a composition.
(x_draw_glyph_string_foreground): Delete code for a composite
character.
(x_draw_composite_glyph_string_foreground): New function.
(x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
(x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
(struct work): Deleted.
(x_fill_composite_glyph_string): Argument changed. Mostly
rewritten for that.
(x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
(BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
(BUILD_COMPOSITE_GLYPH_STRING): New macro.
(BUILD_GLYPH_STRINGS): For composition, call
BUILD_COMPOSITE_GLYPH_STRING.
(x_new_font): Initialize f->output_data.x->baseline_offset, not
f->output_data.x->font_baseline.
(face_before_or_after_it_pos): For composition, check face of a
character after the composition.
(handle_composition_prop): New function.
(get_next_display_element): Adjusted for the change of
CHAR_STRING.
(set_iterator_to_next): Handle the case that it->method ==
next_element_from_composition.
(next_element_from_composition): New function.
(message_dolog): Adjusted for the change of CHAR_STRING.
(set_message_1): Likewise.
(check_point_in_composition): New function.
(reconsider_clip_changes): If point moved into or out of
composition, set b->clip_changed to 1 to force updating of the
screen.
(disp_char_vector): Delete codes for a composite character.
(decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
character. Adjusted for the change of CHAR_STRING.
(produce_glyphs): When called, it->what can be IT_COMPOSITION.
Delete codes for a composite character.
Delete a code that handles an invalid too-long multibyte sequence
because we are now sure that we never encounter with such a
sequence.
(read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
MAX_LENGTH_OF_MULTI_BYTE_FORM.
(init_obarray): Likewise.
(read1): Likewise. Adjusted for the change of CHAR_STRING.
(Vglobal_disable_point_adjustment): New variable.
(syms_of_keyboard): Declare them as Lisp variables.
(command_loop_1): Check them and call adjust_point_for_property if
necessary.
(adjust_point_for_property): New function.
(MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
(current_column_1): Handle new way of composition.
(Fmove_to_column): Likewise.
(compute_motion): Likewise.
(syms_of_fontset): Declare it as a Lisp variable and initialize.
Set Vignore_relative_composition to nil.
(fs_load_font): Initialize `vertical_centering' of struct
font_info.
(concat): Adjusted for the change of CHAR_STRING.
(Ffillarray): Adjusted for the change of CHAR_STRING.
(Fset_char_table_default): Delete codes for a composite character.
(hash_put): Return hash index.
CHAR_STRING.
(Finsert_file_contents): Set Vlast_coding_system_used before
calling signal_after_change. Call update_compositions if some
texts are inserted..
(Fwrite_region): Adjusted for the change of a_write and e_write.
(a_write): Argument changed. Work based on character position,
not byte position.
(e_write): Argument changed. Handle new way of composition.
(struct glyph): Add new sub-structure cmp to the union `u'.
(enum display_element_type): New member IT_COMPOSITION.
(enum prop_idx): New member COMPOSITION_PROP_IDX.
(struct it): New members cmp_id, cmp_len.
(DECODE_CHARACTER_ASCII): Don't handle composition here.
(DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
of multibyte code here.
(DECODE_CHARACTER_DIMENSION2): Likewise.
(detect_coding_emacs_mule): Change the case label from
EMACS_leading_code_composition to 0x80.
(detect_coding_iso2022): Handle new composition sequence.
(DECODE_ISO_CHARACTER): Likewise.
(check_composing_code): Deleted.
(coding_allocate_composition_data): New function.
(CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
(CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
(DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
(decode_coding_iso2022): Handle new composition sequence.
(ENCODE_ISO_CHARACTER): Don't check composition here.
(ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
(ENCODE_COMPOSITION_NO_RULE_START)
(ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
(ENCODE_COMPOSITION_END): Handle new composition sequence.
(ENCODE_COMPOSITION_FAKE_START): New macro.
(encode_coding_iso2022): Handle new composition sequence.
(ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
(encode_coding_sjis_big5): Ignore composition.
(setup_coding_system): Initialize new members of struct
coding_system. Enable composition only when the coding system has
`composition' property t.
(coding_free_composition_data) (coding_adjust_composition_offset)
(coding_save_composition) (coding_restore_composition): New
functions.
(code_convert_region): Call coding_save_composition for encoding
and coding_allocate_composition_data for decoding. Don't skip
ASCII characters if we handle composition on encoding. Call
signal_after_change with Check_BORDER.
(code_convert_string): Call coding_save_composition for encoding
and coding_allocate_composition_data for decoding. Don't skip
ASCII characters if we handle composition on encoding.
(code_convert_string1): Set Vlast_coding_system_used after calling
code_convert_string.
(code_convert_string_norecord): Disable composition.
(Fset_terminal_coding_system_internal): Likewise.
(Fset_safe_terminal_coding_system_internal): Likewise.
(Fset_keyboard_coding_system_internal): Likewise.
(init_coding_once): Set emacs_code_class[0x80] to
EMACS_invalid_code.