(linenum→info "unix/slp.c:2238")

emacs/22.1/src/ChangeLog.8

    1: 1999-12-31  Gerd Moellmann  <gerd@gnu.org>
    2: 
    3:         * xfns.c: New image functions adapted to Emacs conventions.
    4:         (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
    5:         variable `file'.
    6: 
    7: 1999-12-31  William M. Perry  <wmperry@aventail.com>
    8: 
    9:         * xfns.c (jpeg_format): Add the :data keyword
   10:         (jpeg_image_p): JPEG is valid with :file _or_ :data
   11:         (jpeg_memory_src): Define new JPEG image source to read from a
   12:         memory buffer.
   13:         (jpeg_load): Pay attention to the :data keyword if specified.
   14:         Instantiates a jpeg_memory_src instead of jpeg_stdio_src if found.
   15:         (png_format): Add the :data keyword
   16:         (png_image_p): PNG is valid with :file _or_ :data
   17:         (png_read_from_memory): New PNG read function to read from a
   18:         memory buffer.
   19:         (png_load): Pay attention to the :data keyword if specified.
   20:         Use png_set_read_fn() instead of png_init_io() if specified.
   21:         (tiff_format): Add the :data keyword for TIFF images.
   22:         (tiff_image_p): TIFF is valid with :file _or_ :data
   23:         (tiff_read_from_memory): Define new TIFF I/O functions to read
   24:         from a memory buffer.
   25:         (tiff_load): Pay attention to the :data keyword if specified.
   26:         Uses TIFFClientOpen() instead of TIFFOpen() if specified.
   27:         (gif_format): Add the :data keyword
   28:         (gif_image_p): GIF is valid with :file _or_ :data
   29:         (gif_read_from_memory): New GIF input function to read from a
   30:         memory buffer.
   31:         (gif_load): Pay attention to the :data keyword.  Uses DGifOpen()
   32:         instead of DGifOpenFileName() if specified.
   33: 
   34: 1999-12-31  Gerd Moellmann  <gerd@gnu.org>
   35: 
   36:         * xdisp.c (next_element_from_buffer): Change assertion at the end
   37:         because it doesn't hold when there's an overlay string at the end
   38:         from which we deliver an image.
   39: 
   40: 1999-12-30  Eli Zaretskii  <eliz@is.elta.co.il>
   41: 
   42:         * msdos.c (IT_update_begin): Don't dereference members of struct
   43:         window for deleted windows.
   44: 
   45: 1999-12-30  Gerd Moellmann  <gerd@gnu.org>
   46: 
   47:         * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
   48:         a hook, and the hook has a non-nil `no-self-insert' property, let
   49:         the return value of the hook specify whether an expansion took
   50:         place.  If it returns nil, no expansion has been performed.
   51: 
   52:         * xterm.c (x_make_frame_visible): Wait for frame becoming visible
   53:         differently.
   54: 
   55: 1999-12-30  Eli Zaretskii  <eliz@is.elta.co.il>
   56: 
   57:         * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
   58: 
   59: 1999-12-29  Eli Zaretskii  <eliz@is.elta.co.il>
   60: 
   61:         * dispnew.c (mode_line_string): Support MS-DOS frames.
   62: 
   63: 1999-12-29  Gerd Moellmann  <gerd@gnu.org>
   64: 
   65:         * eval.c (syms_of_eval): Initialize debugger_may_continue.
   66: 
   67: 1999-12-29  Kenichi Handa  <handa@etl.go.jp>
   68: 
   69:         * process.c (read_process_output): Fix the args CHARPOS and LENINS
   70:         to signal_after_change.
   71: 
   72: 1999-12-28  Eli Zaretskii  <eliz@is.elta.co.il>
   73: 
   74:         * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
   75:         dimensions changed, invalidate the mouse highlight info.
   76:         (disable_mouse_highlight, help_echo, previous_help_echo): New
   77:         variables.
   78:         (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
   79:         (fast_find_position, IT_note_mode_line_highlight)
   80:         (IT_note_mouse_highlight): New functions.
   81:         (IT_update_begin): If the redisplay affects the window where the
   82:         mouse highlight is, clear the highlight.  If the frame where the
   83:         highlight was displayed was killed, invalidate the highlight
   84:         info.
   85:         (IT_update_end): Reset the highlight flag.  Reset the mouse
   86:         highlight-defer flag.
   87:         (IT_frame_up_to_date): New function, if mouse highlight was
   88:         deferred due to GC, do it now.
   89:         (internal_terminal_init): Initialize mouse-highlight related
   90:         members of the_only_x_display.  Assign IT_frame_up_to_date to
   91:         frame_up_to_date_hook.
   92:         (dos_rawgetc): If the mouse moved, update mouse highlight.  If
   93:         help_echo changed value, generate a HELP_EVENT event.
   94:         (syms_of_msdos): Staticpro help_echo and previous_help_echo.
   95: 
   96:         * msdos.h (struct display_info): New.
   97:         (struct x_output): Add the display_info member.
   98:         (FRAME_X_DISPLAY_INFO): New macro.
   99: 
  100: 1999-12-28  Gerd Moellmann  <gerd@gnu.org>
  101: 
  102:         * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
  103:         if MODIFF > 1.
  104:         (dump_glyph_row): Adapt to changes in struct glyph.
  105: 
  106:         * buffer.c (modify_overlay): Always compute unchanged info.
  107: 
  108: 1999-12-27  Kenichi Handa  <handa@etl.go.jp>
  109: 
  110:         * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
  111: 
  112: 1999-12-27  Kenichi Handa  <handa@etl.go.jp>
  113: 
  114:         The following changes are to use more bits for face IDs.
  115: 
  116:         * lisp.h (GLYPH): Defined as `int', not `unsigned int'.  Now the
  117:         lowest 8 bits are single byte character code, the bits above are
  118:         face ID.
  119:         (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
  120:         above.
  121:         (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
  122:         (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
  123: 
  124:         * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
  125:         of GLYPH_MASK_CHAR.
  126: 
  127:         * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
  128:         of GLYPH_MASK_CHAR.
  129: 
  130:         * dispextern.h (struct glyph): Make face_id and padding_p the top
  131:         level members.  Change members in union `u'.
  132:         (GLYPH_EQUAL_P): Check also members face_id and padding_p.
  133:         (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
  134:         (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
  135:         (CHAR_GLYPH_PADDING_P): Likewise.
  136:         (GLYPH_FROM_CHAR_GLYPH): Likewise.  Always return -1 for multibyte
  137:         characters.
  138: 
  139:         * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
  140:         for the change of struct glyph.
  141:         (line_draw_cost): Adjusted for the change of
  142:         GLYPH_FROM_CHAR_GLYPH.
  143:         (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
  144: 
  145:         * term.c (encode_terminal_code): Adjusted for the change of struct
  146:         glyph and GLYPH_FROM_CHAR_GLYPH.
  147:         (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
  148:         change of struct glyph.
  149: 
  150:         * xdisp.c: All codes adjusted for the change of struct glyph.
  151: 
  152:         * xterm.c: All codes adjusted for the change of struct glyph.
  153: 
  154: 1999-12-27  Kenichi Handa  <handa@etl.go.jp>
  155: 
  156:         * composite.h (struct composition): Change the order of declaring
  157:         members to reduce the byte size of the structure.
  158: 
  159: 1999-12-25  Gerd Moellmann  <gerd@gnu.org>
  160: 
  161:         * search.c (looking_at_1): Reset immediate_quit before modifying
  162:         global data.
  163: 
  164: 1999-12-24  Kenichi Handa  <handa@etl.go.jp>
  165: 
  166:         * process.c (read_process_output): Fix the arg FROM to
  167:         update_compositions.
  168: 
  169: 1999-12-22  Richard M. Stallman  <rms@gnu.org>
  170: 
  171:         * search.c (Freplace_match): For nonliteral replacement in buffer,
  172:         construct all the new text first, then insert all at once.
  173: 
  174: 1999-12-22  Dave Love  <fx@gnu.org>
  175: 
  176:         * xfns.c (Fx_show_tip): Gcpro `timeout' too.
  177: 
  178: 1999-12-22  Gerd Moellmann  <gerd@gnu.org>
  179: 
  180:         * xfns.c (Fx_create_frame): Move x_default_parameter calls that
  181:         lead to size changes to after the X window has been created.
  182: 
  183:         * xfaces.c (realize_x_face): Don't use uninitialized local
  184:         variable in xassert.
  185: 
  186: 1999-12-22  Kenichi Handa  <handa@etl.go.jp>
  187: 
  188:         * xfaces.c (face_color_supported_p): Check by tty_defined_color
  189:         only when the frame is not for a window system.
  190: 
  191: 1999-12-22  Gerd Moellmann  <gerd@gnu.org>
  192: 
  193:         * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
  194:         redisplay after changing the multibyteness of a buffer.
  195: 
  196:         * xterm.c (XTread_socket): At the beginning of the loop, pass the
  197:         frame's X window to XFilterEvent instead of None because that's
  198:         the X window for which the IC was created.  This makes dead
  199:         accents work when the pointer is not in Emacs' frame.
  200:         (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
  201: 
  202: 1999-12-20  Dave Love  <fx@gnu.org>
  203: 
  204:         * xfns.c (Fx_show_tip): Add missing UNGCPRO.
  205: 
  206: 1999-12-19  Gerd Moellmann  <gerd@gnu.org>
  207: 
  208:         * eval.c (debugger_may_continue): New variable.
  209:         (syms_of_eval): Add a DEFVAR_BOOL for it.
  210:         (call_debugger): Bind it.
  211: 
  212: 1999-12-19  Eli Zaretskii  <eliz@is.elta.co.il>
  213: 
  214:         * msdos.c (IT_set_face): Don't swap face colors when highlight or
  215:         fp->tty_reverse_p is set, unless the computed colors are identical
  216:         to frame colors.  Print both original and computed colors to
  217:         termscript file.
  218:         (IT_write_glyphs): Track the changes in handling of composite
  219:         characters.
  220:         (IT_set_frame_parameters): Don't set frame colors from
  221:         unspecified-fg and unspecified-bg pseudo-colors.
  222: 
  223: 1999-12-17  Dave Love  <fx@gnu.org>
  224: 
  225:         * data.c (Fkeywordp): New function.
  226:         (syms_of_data): Install it.
  227: 
  228: 1999-12-16  Eli Zaretskii  <eliz@is.elta.co.il>
  229: 
  230:         * xfaces.c (tty_defined_color): Fix last change.
  231: 
  232: 1999-12-15  Gerd Moellmann  <gerd@gnu.org>
  233: 
  234:         * xdisp.c (redisplay_window) <optional new window start>: Check
  235:         that window start is in [BEGV..ZV].
  236: 
  237: 1999-12-15  Eli Zaretskii  <eliz@is.elta.co.il>
  238: 
  239:         * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
  240:         (FACE_TTY_DEFAULT_BG_COLOR):  New macros.
  241: 
  242:         * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
  243:         (syms_of_xfaces): Initialize and staticpro them.
  244:         (tty_defined_color): If the color name is unspecified-fg or
  245:         unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
  246:         FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
  247:         (tty_color_name): If the color pixel value is either
  248:         FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
  249:         Qunspecified_fg or Qunspecified_bg, respectively.
  250:         (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
  251:         and Qunspecified_bg for foreground and background colors.
  252:         (realize_default_face): If the foreground and background colors
  253:         are not specified, default to Qunspecified_fg and Qunspecified_bg.
  254:         (realize_tty_face): By default, set the face colors to
  255:         FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
  256:         [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
  257:         FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
  258:         Reverse the colors if the default colors were reversed.
  259: 
  260:         * dispnew.c (init_display): Initialize the frame pixels of the
  261:         initial frame to FACE_TTY_DEFAULT_FG_COLOR and
  262:         FACE_TTY_DEFAULT_BG_COLOR.
  263: 
  264:         * term.c (turn_on_face): If the default fore- and background
  265:         colors are reversed, enter inverse video mode.  Don't send color
  266:         escape sequences for unspecified foreground and background colors.
  267:         (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
  268: 
  269:         * dosfns.c (unspecified_colors): New variable.
  270:         (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
  271:         color names, return FACE_TTY_DEFAULT_FG_COLOR and
  272:         FACE_TTY_DEFAULT_BG_COLOR, respectively.
  273:         (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
  274:         FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
  275:         Qunspecified_bg, respectively.
  276: 
  277:         * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
  278:         FACE_TTY_DEFAULT_BG_COLOR as pixel values.
  279: 
  280: 1999-12-15  Kenichi Handa  <handa@etl.go.jp>
  281: 
  282:         * coding.c (code_convert_region): Fix the secoding arg to
  283:         update_compositions.
  284: 
  285: 1999-12-15  Kenichi Handa  <handa@etl.go.jp>
  286: 
  287:         The following changes are for the new composition mechanism.  We
  288:         have deleted `composition' charset and composite characters,
  289:         instead introduced a special text property `composition'.
  290: 
  291:         * Makefile.in (INTERVAL_SRC): Include composite.h.
  292:         (INTERVAL_OBJ): Include composite.o.
  293:         (SOME_MACHINE_OBJECTS): Include composite.o.
  294:         (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
  295:         (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
  296:         Depend on composite.h.
  297:         (doc.o): Depend on charset.h.
  298:         (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
  299:         (composite.o): New target.
  300: 
  301:         * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
  302: 
  303:         * callproc.c (Fcall_process): Call code_convert_string to encode
  304:         arguments.  Use CODING_REQUIRE_DECODING to check if the process
  305:         output should be decoded.
  306: 
  307:         * casefiddle.c: Include composite.h.
  308:         (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
  309:         multibyte character.  Adjusted for the change of CHAR_STRING.
  310:         (casify_region): Likewise.  Call update_compositions.
  311: 
  312:         * category.h (CATEGORY_SET): Delete codes for a composite
  313:         character.
  314: 
  315:         * category.c (word_boundary_p): Delete codes for a composite
  316:         character.
  317:         (Fmake_category_table): New function.
  318:         (syms_of_category): Defsubr it.
  319: 
  320:         * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
  321:         (ccl_driver): Delete codes for a composite character.
  322: 
  323:         * charset.h: In this entry, just `Modified' means that codes for a
  324:         composite character is deleted.
  325:         (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
  326:         (charset_composition) (MIN_CHAR_COMPOSITION)
  327:         (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
  328:         (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
  329:         (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
  330:         (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
  331:         (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
  332:         (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
  333:         Modified.
  334:         (SPLIT_STRING): Call split_string, not split_non_ascii_string.
  335:         (CHAR_STRING): Delete WORKBUF argument.  Call char_string, not
  336:         non_ascii_char_to_string.
  337:         (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
  338:         (STRING_CHAR_AND_LENGTH): Likewise.
  339:         (FETCH_CHAR_ADVANCE): New macro.
  340:         (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
  341:         (MAX_MULTIBYTE_LENGTH): New macro.
  342:         (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
  343:         (find_charset_in_str): Argument adjusted.
  344:         (CHAR_LEN): Modified.
  345: 
  346:         * charset.c: In this entry, just `Modified' means that codes for a
  347:         composite character is deleted.
  348:         (Qcomposition) (leading_code_composition)
  349:         (charset_composition) (min_composite_char) (cmpchar_table)
  350:         (cmpchar_table_size) (n_cmpchars): Deleted.
  351:         (SPLIT_COMPOSITE_SEQ): Deleted.
  352:         (SPLIT_MULTIBYTE_SEQ): Modified.
  353:         (char_to_string): Renamed from non_ascii_char_to_string.
  354:         Modified.
  355:         (string_to_char): Renamed from string_to_non_ascii_char.
  356:         (split_string): Renamed from split_non_ascii_string.
  357:         (char_printable_p) (Fsplit_char)
  358:         (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
  359:         (char_bytes) (Fchar_width) (strwidth): Modified.
  360:         (find_charset_in_str): Argument CMPCHARP deleted.  Modified.
  361:         (Fstring): Adjusted for the change of CHAR_STRING.  Modified.
  362:         (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
  363:         (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
  364:         (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
  365:         (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
  366:         (Fcmpchar_cmp_count): Deleted.
  367:         (Fcompose_string): Implemented by Emacs Lisp in composite.el.
  368:         (init_charset_once): Modified.
  369:         (syms_of_charset): Modified.
  370: 
  371:         * cmds.c (internal_self_insert): Adjusted for the change of
  372:         CHAR_STRING.
  373: 
  374:         * coding.h (emacs_code_class_type): Delete the member
  375:         EMACS_leading_code_composition.
  376:         (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
  377:         (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
  378:         (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
  379:         (COMPOSING_WITH_RULE_P): Macros deleted.
  380:         (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
  381:         macros.
  382:         (struct composition_data): New structure.
  383:         (CODING_FINISH_INSUFFICIENT_CMP): New macro.
  384:         (struct coding_system): New members composition_rule_follows,
  385:         cmp_data, cmp_data_start, cmp_data_index.
  386:         (coding_save_composition) (coding_free_composition_data)
  387:         (coding_adjust_composition_offset): Extern them.
  388: 
  389:         * coding.c: Include composite.h.
  390:         (DECODE_CHARACTER_ASCII): Don't handle composition here.
  391:         (DECODE_CHARACTER_DIMENSION1): Likewise.  Don't check the validity
  392:         of multibyte code here.
  393:         (DECODE_CHARACTER_DIMENSION2): Likewise.
  394:         (detect_coding_emacs_mule): Change the case label from
  395:         EMACS_leading_code_composition to 0x80.
  396:         (detect_coding_iso2022): Handle new composition sequence.
  397:         (DECODE_ISO_CHARACTER): Likewise.
  398:         (check_composing_code): Deleted.
  399:         (coding_allocate_composition_data): New function.
  400:         (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
  401:         (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
  402:         (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
  403:         (decode_coding_iso2022): Handle new composition sequence.
  404:         (ENCODE_ISO_CHARACTER): Don't check composition here.
  405:         (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
  406:         (ENCODE_COMPOSITION_NO_RULE_START)
  407:         (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
  408:         (ENCODE_COMPOSITION_END): Handle new composition sequence.
  409:         (ENCODE_COMPOSITION_FAKE_START): New macro.
  410:         (encode_coding_iso2022): Handle new composition sequence.
  411:         (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
  412:         (encode_coding_sjis_big5): Ignore composition.
  413:         (setup_coding_system): Initialize new members of struct
  414:         coding_system.  Enable composition only when the coding system has
  415:         `composition' property t.
  416:         (coding_free_composition_data) (coding_adjust_composition_offset)
  417:         (coding_save_composition) (coding_restore_composition): New
  418:         functions.
  419:         (code_convert_region): Call coding_save_composition for encoding
  420:         and coding_allocate_composition_data for decoding.  Don't skip
  421:         ASCII characters if we handle composition on encoding.  Call
  422:         signal_after_change with Check_BORDER.
  423:         (code_convert_string): Call coding_save_composition for encoding
  424:         and coding_allocate_composition_data for decoding.  Don't skip
  425:         ASCII characters if we handle composition on encoding.
  426:         (code_convert_string1): Set Vlast_coding_system_used after calling
  427:         code_convert_string.
  428:         (code_convert_string_norecord): Disable composition.
  429:         (Fset_terminal_coding_system_internal): Likewise.
  430:         (Fset_safe_terminal_coding_system_internal): Likewise.
  431:         (Fset_keyboard_coding_system_internal): Likewise.
  432:         (init_coding_once): Set emacs_code_class[0x80] to
  433:         EMACS_invalid_code.
  434: 
  435:         * composite.h: New file.
  436: 
  437:         * composite.c: New file.
  438: 
  439:         * data.c (Faref): Delete codes for a composite character..
  440:         (Faset): Likewise.  Adjusted for the change of CHAR_STRING.
  441: 
  442:         * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
  443:         (struct glyph): Add new sub-structure cmp to the union `u'.
  444:         (enum display_element_type): New member IT_COMPOSITION.
  445:         (enum prop_idx): New member COMPOSITION_PROP_IDX.
  446:         (struct it): New members cmp_id, cmp_len.
  447: 
  448:         * dispnew.c (direct_output_forward_char): Check point moving into
  449:         or out of a composition.  If so, give up direct method.
  450: 
  451:         * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
  452: 
  453:         * editfns.c (Fchar_to_string): Adjusted for the change of
  454:         CHAR_STRING.
  455:         (general_insert_function): Likewise.
  456:         (Finsert_char): Likewise.
  457:         (Fsubst_char_in_region): Likewise.  Call update_compositions.
  458:         (Ftranslate_region): Call update_compositions.
  459:         (Ftranspose_regions): Call update_compositions.
  460: 
  461:         * emacs.c (main): Call syms_of_composite.
  462: 
  463:         * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
  464:         CHAR_STRING.
  465:         (Finsert_file_contents): Set Vlast_coding_system_used before
  466:         calling signal_after_change.  Call update_compositions if some
  467:         texts are inserted..
  468:         (Fwrite_region): Adjusted for the change of a_write and e_write.
  469:         (a_write): Argument changed.  Work based on character position,
  470:         not byte position.
  471:         (e_write): Argument changed.  Handle new way of composition.
  472: 
  473:         * fns.c (Flength): The length of char-table is MAX_CHAR.
  474:         (concat): Adjusted for the change of CHAR_STRING.
  475:         (Ffillarray): Adjusted for the change of CHAR_STRING.
  476:         (Fset_char_table_default): Delete codes for a composite character.
  477:         (hash_put): Return hash index.
  478: 
  479:         * fontset.h (struct font_info): New member vertical_centering.
  480:         (Vvertical_centering_font_regexp): Extern it.
  481: 
  482:         * fontset.c (Vvertical_centering_font_regexp): New variable.
  483:         (syms_of_fontset): Declare it as a Lisp variable and initialize.
  484:         Set Vignore_relative_composition to nil.
  485:         (fs_load_font): Initialize `vertical_centering' of struct
  486:         font_info.
  487: 
  488:         * indent.c (check_composition): New function.
  489:         (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
  490:         MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
  491:         (current_column_1): Handle new way of composition.
  492:         (Fmove_to_column): Likewise.
  493:         (compute_motion): Likewise.
  494: 
  495:         * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
  496:         (insert_char): Likewise.
  497:         (insert): Call update_compositions.
  498:         (insert_and_inherit): Likewise.
  499:         (insert_before_markers): Likewise.
  500:         (insert_before_markers_and_inherit): Likewise.
  501:         (insert_from_string): Likewise.
  502:         (insert_from_string_before_markers): Likewise.
  503:         (insert_from_buffer): Likewise.
  504:         (replace_range): Likewise.
  505:         (count_combining_composition): Deleted.
  506:         (count_combining_before): Delete codes for a composite character.
  507:         (count_combining_after): Likewise.
  508:         (del_range_1): Call update_compositions.
  509:         (del_range_byte): Likewise.
  510:         (del_range_both): Likewise.
  511:         (Fcombine_after_change_execute): Likewise.
  512: 
  513:         * intervals.h: Include composite.h.
  514:         (get_property_and_range): Extern it.
  515:         (Vtext_property_default_nonsticky): Extern it.
  516: 
  517:         * intervals.c (adjust_intervals_for_insertion): To check stickines
  518:         of properties, pay attention to text-property-default-nonsticky.
  519:         (merge_properties_sticky): Likewise.
  520:         (get_property_and_range): New function.
  521: 
  522:         * keyboard.c (Vdisable_point_adjustment): New variable.
  523:         (Vglobal_disable_point_adjustment): New variable.
  524:         (syms_of_keyboard): Declare them as Lisp variables.
  525:         (command_loop_1): Check them and call adjust_point_for_property if
  526:         necessary.
  527:         (adjust_point_for_property): New function.
  528: 
  529:         * keymap.c (push_key_description): Adjusted for the change of
  530:         CHAR_STRING.
  531:         (Ftext_char_description): Likewise.
  532: 
  533:         * lisp.h (QCtest, QCweakness, Qequal): Extern them.
  534:         (hash_put): Adjusted for the change of the definition.
  535:         (signal_after_change): Likewise.
  536:         (check_point_in_composition): Extern it.
  537: 
  538:         * lread.c (readchar): Adjusted for the change of CHAR_STRING.
  539:         Delete a code that handles an invalid too-long multibyte sequence
  540:         because we are now sure that we never encounter with such a
  541:         sequence.
  542:         (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
  543:         MAX_LENGTH_OF_MULTI_BYTE_FORM.
  544:         (init_obarray): Likewise.
  545:         (read1): Likewise.  Adjusted for the change of CHAR_STRING.
  546: 
  547:         * print.c (printchar): Adjusted for the change of CHAR_STRING.
  548: 
  549:         * process.c: Include composite.h.
  550:         (read_process_output): Call update_compositions.
  551: 
  552:         * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
  553: 
  554:         * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
  555: 
  556:         * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
  557:         character.
  558: 
  559:         * term.c (encode_terminal_code): Delete codes for a composite
  560:         character.  Adjusted for the change of CHAR_STRING.
  561:         (produce_glyphs): When called, it->what can be IT_COMPOSITION.
  562:         Delete codes for a composite character.
  563: 
  564:         * textprop.c (Vtext_property_default_nonsticky): New variable
  565:         (syms_of_textprop): Declare it as a Lisp variable.
  566: 
  567:         * window.c (Frecenter): Clear all caches of compositions.
  568: 
  569:         * xdisp.c (it_props): Add an entry for composition.
  570:         (face_before_or_after_it_pos): For composition, check face of a
  571:         character after the composition.
  572:         (handle_composition_prop): New function.
  573:         (get_next_display_element): Adjusted for the change of
  574:         CHAR_STRING.
  575:         (set_iterator_to_next): Handle the case that it->method ==
  576:         next_element_from_composition.
  577:         (next_element_from_composition): New function.
  578:         (message_dolog): Adjusted for the change of CHAR_STRING.
  579:         (set_message_1): Likewise.
  580:         (check_point_in_composition): New function.
  581:         (reconsider_clip_changes): If point moved into or out of
  582:         composition, set b->clip_changed to 1 to force updating of the
  583:         screen.
  584:         (disp_char_vector): Delete codes for a composite character.
  585:         (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
  586: 
  587:         * xfaces.c (choose_face_fontset_font): Delete codes for a
  588:         composite character.
  589:         (realize_x_face): Likewise.  Change a place to set local variable
  590:         `f' to avoid a bug of GCC 2.8.1 on Solaris.
  591: 
  592:         * xfns.c: Include intervals.h.
  593:         (syms_of_xfns): Make `display' property nonsticky by default.
  594: 
  595:         * xselect.c (lisp_data_to_selection_data): Adjusted for the change
  596:         for find_charset_in_str.
  597: 
  598:         * xterm.h (struct x_output): Change member font_baseline to
  599:         baseline_offset.
  600: 
  601:         * xterm.c (x_append_glyph): Setup members of struct glyph properly
  602:         for composition.
  603:         (x_append_composite_glyph): New function.
  604:         (VCENTER_BASELINE_OFFSET): New macro.
  605:         (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
  606:         of struct it for the composition.  Cache pixel offsets in the
  607:         struct composition.  Delete codes for a composite character.
  608:         Handle Vignore_relative_composition in composition code.
  609:         (struct glyph_string): Delete member cmpcharp, add new member cmp.
  610:         (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
  611:         (x_compute_glyph_string_overhangs): Likewise.
  612:         (x_get_glyph_overhangs): Delete codes for a composite character.
  613:         (x_right_overwritten): Check s->cmp, not s->cmpcharp.
  614:         (x_draw_glyph_string_background): Likewise.  Delete codes for
  615:         checking s->gidx for a composition.
  616:         (x_draw_glyph_string_foreground): Delete code for a composite
  617:         character.
  618:         (x_draw_composite_glyph_string_foreground): New function.
  619:         (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
  620:         (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
  621:         (struct work): Deleted.
  622:         (x_fill_composite_glyph_string): Argument changed.  Mostly
  623:         rewritten for that.
  624:         (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
  625:         (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
  626:         (BUILD_COMPOSITE_GLYPH_STRING): New macro.
  627:         (BUILD_GLYPH_STRINGS): For composition, call
  628:         BUILD_COMPOSITE_GLYPH_STRING.
  629:         (x_new_font): Initialize f->output_data.x->baseline_offset, not
  630:         f->output_data.x->font_baseline.
  631: 
  632: 1999-12-14  Gerd Moellmann  <gerd@gnu.org>
  633: 
  634:         * xterm.c (show_mouse_face): Don't use updated_area, use
  635:         TEXT_AREA.
  636: 
  637: 1999-12-12  Richard M. Stallman  <rms@gnu.org>
  638: 
  639:         * minibuf.c (Fall_completions): Doc fix.
  640: 
  641: 1999-12-12  Richard M. Stallman  <rms@gnu.org>
  642: 
  643:         * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
  644:         has been changed by the Lisp code.
  645: 
  646: 1999-12-12  Gerd Moellmann  <gerd@gnu.org>
  647: 
  648:         * xfns.c: Indentation fixes.
  649: 
  650: 1999-12-10  Stefan Monnier  <monnier@cs.yale.edu>
  651: 
  652:         * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
  653: 
  654: 1999-12-10  Gerd Moellmann  <gerd@gnu.org>
  655: 
  656:         * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
  657:         [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
  658: 
  659:         * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
  660:         to frame.h.
  661: 
  662: 1999-12-09  Stefan Monnier  <monnier@cs.yale.edu>
  663: 
  664:         * keyboard.c (Qratio): New symbol.
  665:         (scroll_bar_parts): Add `Qratio' to it.
  666:         (syms_of_keyboard): Init `Qratio'.
  667:         * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
  668:         * xterm.c (#includes): Allow compilation with only Xaw.
  669:         (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
  670:         (xt_action_hook): Replace XAW3D by XAW.
  671:         (xaw3d_jump_callback): Renamed to xaw_jump_callback.
  672:         (xaw_jump_callback): Renamed from xaw3d_jump_callback.
  673:         Determine epsilon dynamically and don't try to be too clever.
  674:         (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
  675:         (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
  676:         Handle both Xaw3d with arrow-scrollbars and with Xaw-style
  677:         scrollbar (using `ratio').
  678:         (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
  679:         scrollbar we have so as to set it up more optimally and to fix
  680:         xaw3d_arrow_scroll and xaw3d_pick_top.
  681:         (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
  682:         bottom of the Xaw3d scrollbar, to work around its tendency to refuse
  683:         shrinking the thumb.  Also make sure that `XawScrollbarSetThumb'
  684:         is not ignored, using a major gross hack.
  685:         (x_initialize): Init default values for xaw3d_arrow_scroll and
  686:         xaw3d_pick_top.
  687: 
  688: 1999-12-09  Dave Love  <fx@gnu.org>
  689: 
  690:         * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
  691: 
  692: 1999-12-08  Gerd Moellmann  <gerd@gnu.org>
  693: 
  694:         * eval.c: Remove conditional compilation on `standalone'.
  695:         (call_debugger): When entering the debugger while redisplaying,
  696:         reset redisplaying_p, and go back to the top-level if the debugger
  697:         returns.
  698: 
  699: 1999-12-07  Gerd Moellmann  <gerd@gnu.org>
  700: 
  701:         * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
  702:         basic faces are realized before trying to use face `menu'.
  703: 
  704:         * window.c (delete_window): Block input for the time window
  705:         matrices are being changed.
  706: 
  707: 1999-12-07  Dave Love  <fx@gnu.org>
  708: 
  709:         * lread.c (Fintern_soft): Fix newlines in doc string.
  710: 
  711: 1999-12-07  Alexandre Oliva  <oliva@dcc.unicamp.br>
  712: 
  713:         * unexelf.c: Include <syms.h>, not <sym.h> on IRIX.  Removed
  714:         duplicate definition of ElfW.
  715:         (find_section): Copied from unexsgi.c.
  716:         (unexec): Use find_section.  Adjust whitespace.  Initialize
  717:         new_data2_offset based on old_data, not sbss (this fixes a bug on
  718:         IRIX6).  Change #ifdef __mips to __sgi, since it's IRIX-specific.
  719:         Adjust test for presence of .mdebug section to the new return
  720:         value of find_section.
  721: 
  722: 1999-12-07  Gerd Moellmann  <gerd@gnu.org>
  723: 
  724:         * unexelf.c: Merge changes from 20.5.
  725:         (unexec): Handle .lit4 and .lit8 unconditionally.
  726: 
  727:         * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
  728:         unexsgi.o again.
  729: 
  730:         * m/iris5d.h (UNEXEC): Likewise.
  731: 
  732: 1999-12-06  Stefan Monnier  <monnier@cs.yale.edu>
  733: 
  734:         * editfns.c (Fdelete_and_extract_region): New function.
  735:         (syms_of_editfns): Register it.
  736:         * insdel.c (del_range): Update del_range_1 call.
  737:         (del_range_1, del_range_2): Add a ret_string argument to
  738:         request that the deleted text be returned.
  739:         (del_range_byte, del_range_both): Update