comparison src/ChangeLog @ 30727:4f95e3d57673

*** empty log message ***
author Gerd Moellmann <gerd@gnu.org>
date Thu, 10 Aug 2000 09:16:29 +0000
parents f480a8429caf
children b81e74b4a7a6
comparison
equal deleted inserted replaced
30726:f480a8429caf 30727:4f95e3d57673
5266 (pbm_image_p): Allow either :file or :data. 5266 (pbm_image_p): Allow either :file or :data.
5267 (pbm_read_file): New function. 5267 (pbm_read_file): New function.
5268 (pbm_scan_number): Rewritten to read from string. 5268 (pbm_scan_number): Rewritten to read from string.
5269 (pbm_load): Support :data. 5269 (pbm_load): Support :data.
5270 5270
5271 1999-12-31 Gerd Moellmann <gerd@gnu.org> 5271 See ChangeLog.8 for earlier changes.
5272
5273 * xfns.c: New image functions adapted to Emacs conventions.
5274 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
5275 variable `file'.
5276
5277 1999-12-31 William M. Perry <wmperry@aventail.com>
5278
5279 * xfns.c (jpeg_format): Added the :data keyword
5280 (jpeg_image_p): JPEG is valid with :file _or_ :data
5281 (jpeg_memory_src): Defined new JPEG image source to read from a
5282 memory buffer.
5283 (jpeg_load): Pay attention to the :data keyword if specified.
5284 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
5285 found.
5286 (png_format): Added the :data keyword
5287 (png_image_p): PNG is valid with :file _or_ :data
5288 (png_read_from_memory): New PNG read function to read from a
5289 memory buffer.
5290 (png_load): Pay attention to the :data keyword if specified. Uses
5291 png_set_read_fn() instead of png_init_io() if specified.
5292 (tiff_format): Added the :data keyword for TIFF images.
5293 (tiff_image_p): TIFF is valid with :file _or_ :data
5294 (tiff_read_from_memory): Defined new TIFF I/O functions to read
5295 from a memory buffer.
5296 (tiff_load): Pay attention to the :data keyword if specified.
5297 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
5298 (gif_format): Added the :data keyword
5299 (gif_image_p): GIF is valid with :file _or_ :data
5300 (gif_read_from_memory): New GIF input function to read from a
5301 memory buffer.
5302 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
5303 instead of DGifOpenFileName() if specified.
5304
5305 1999-12-31 Gerd Moellmann <gerd@gnu.org>
5306
5307 * xdisp.c (next_element_from_buffer): Change assertion at the end
5308 because it doesn't hold when there's an overlay string at the end
5309 from which we deliver an image.
5310
5311 1999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5312
5313 * msdos.c (IT_update_begin): Don't dereference members of struct
5314 window for deleted windows.
5315
5316 1999-12-30 Gerd Moellmann <gerd@gnu.org>
5317
5318 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
5319 a hook, and the hook has a non-nil `no-self-insert' property, let
5320 the return value of the hook specify whether an expansion took
5321 place. If it returns nil, no expansion has been performed.
5322
5323 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
5324 differently.
5325
5326 1999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5327
5328 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
5329
5330 1999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
5331
5332 * dispnew.c (mode_line_string): Support MS-DOS frames.
5333
5334 1999-12-29 Gerd Moellmann <gerd@gnu.org>
5335
5336 * eval.c (syms_of_eval): Initialize debugger_may_continue.
5337
5338 1999-12-29 Kenichi Handa <handa@etl.go.jp>
5339
5340 * process.c (read_process_output): Fix the args CHARPOS and LENINS
5341 to signal_after_change.
5342
5343 1999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
5344
5345 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
5346 dimensions changed, invalidate the mouse highlight info.
5347 (disable_mouse_highlight, help_echo, previous_help_echo): New
5348 variables.
5349 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
5350 (fast_find_position, IT_note_mode_line_highlight)
5351 (IT_note_mouse_highlight): New functions.
5352 (IT_update_begin): If the redisplay affects the window where the
5353 mouse highlight is, clear the highlight. If the frame where the
5354 highlight was displayed was killed, invalidate the highlight
5355 info.
5356 (IT_update_end): Reset the highlight flag. Reset the mouse
5357 highlight-defer flag.
5358 (IT_frame_up_to_date): New function, if mouse highlight was
5359 deferred due to GC, do it now.
5360 (internal_terminal_init): Initialize mouse-highlight related
5361 members of the_only_x_display. Assign IT_frame_up_to_date to
5362 frame_up_to_date_hook.
5363 (dos_rawgetc): If the mouse moved, update mouse highlight. If
5364 help_echo changed value, generate a HELP_EVENT event.
5365 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
5366
5367 * msdos.h (struct display_info): New.
5368 (struct x_output): Add the display_info member.
5369 (FRAME_X_DISPLAY_INFO): New macro.
5370
5371 1999-12-28 Gerd Moellmann <gerd@gnu.org>
5372
5373 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
5374 if MODIFF > 1.
5375 (dump_glyph_row): Adapt to changes in struct glyph.
5376
5377 * buffer.c (modify_overlay): Always compute unchanged info.
5378
5379 1999-12-27 Kenichi Handa <handa@etl.go.jp>
5380
5381 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
5382
5383 1999-12-27 Kenichi Handa <handa@etl.go.jp>
5384
5385 The following changes are to use more bits for face IDs.
5386
5387 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
5388 lowest 8 bits are single byte character code, the bits above are
5389 face ID.
5390 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
5391 above.
5392 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
5393 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
5394
5395 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
5396 of GLYPH_MASK_CHAR.
5397
5398 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
5399 of GLYPH_MASK_CHAR.
5400
5401 * dispextern.h (struct glyph): Make face_id and padding_p the top
5402 level members. Change members in union `u'.
5403 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
5404 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
5405 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
5406 (CHAR_GLYPH_PADDING_P): Likewise.
5407 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
5408 characters.
5409
5410 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
5411 for the change of struct glyph.
5412 (line_draw_cost): Adjusted for the change of
5413 GLYPH_FROM_CHAR_GLYPH.
5414 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
5415
5416 * term.c (encode_terminal_code): Adjusted for the change of struct
5417 glyph and GLYPH_FROM_CHAR_GLYPH.
5418 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
5419 change of struct glyph.
5420
5421 * xdisp.c: All codes adjusted for the change of struct glyph.
5422
5423 * xterm.c: All codes adjusted for the change of struct glyph.
5424
5425 1999-12-27 Kenichi Handa <handa@etl.go.jp>
5426
5427 * composite.h (struct composition): Change the order of declaring
5428 members to reduce the byte size of the structure.
5429
5430 1999-12-25 Gerd Moellmann <gerd@gnu.org>
5431
5432 * search.c (looking_at_1): Reset immediate_quit before modifying
5433 global data.
5434
5435 1999-12-24 Kenichi Handa <handa@etl.go.jp>
5436
5437 * process.c (read_process_output): Fix the arg FROM to
5438 update_compositions.
5439
5440 1999-12-22 Richard M. Stallman <rms@gnu.org>
5441
5442 * search.c (Freplace_match): For nonliteral replacement in buffer,
5443 construct all the new text first, then insert all at once.
5444
5445 1999-12-22 Dave Love <fx@gnu.org>
5446
5447 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5448
5449 1999-12-22 Gerd Moellmann <gerd@gnu.org>
5450
5451 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5452 lead to size changes to after the X window has been created.
5453
5454 * xfaces.c (realize_x_face): Don't use uninitialized local
5455 variable in xassert.
5456
5457 1999-12-22 Kenichi Handa <handa@etl.go.jp>
5458
5459 * xfaces.c (face_color_supported_p): Check by tty_defined_color
5460 only when the frame is not for a window system.
5461
5462 1999-12-22 Gerd Moellmann <gerd@gnu.org>
5463
5464 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5465 redisplay after changing the multibyteness of a buffer.
5466
5467 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5468 frame's X window to XFilterEvent instead of None because that's
5469 the X window for which the IC was created. This makes dead
5470 accents work when the pointer is not in Emacs' frame.
5471 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5472
5473 1999-12-20 Dave Love <fx@gnu.org>
5474
5475 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5476
5477 1999-12-19 Gerd Moellmann <gerd@gnu.org>
5478
5479 * eval.c (debugger_may_continue): New variable.
5480 (syms_of_eval): Add a DEFVAR_BOOL for it.
5481 (call_debugger): Bind it.
5482
5483 1999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5484
5485 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5486 fp->tty_reverse_p is set, unless the computed colors are identical
5487 to frame colors. Print both original and computed colors to
5488 termscript file.
5489 (IT_write_glyphs): Track the changes in handling of composite
5490 characters.
5491 (IT_set_frame_parameters): Don't set frame colors from
5492 unspecified-fg and unspecified-bg pseudo-colors.
5493
5494 1999-12-17 Dave Love <fx@gnu.org>
5495
5496 * data.c (Fkeywordp): New function.
5497 (syms_of_data): Install it.
5498
5499 1999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5500
5501 * xfaces.c (tty_defined_color): Fix last change.
5502
5503 1999-12-15 Gerd Moellmann <gerd@gnu.org>
5504
5505 * xdisp.c (redisplay_window) <optional new window start>: Check
5506 that window start is in [BEGV..ZV].
5507
5508 1999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5509
5510 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5511 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5512
5513 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5514 (syms_of_xfaces): Initialize and staticpro them.
5515 (tty_defined_color): If the color name is unspecified-fg or
5516 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5517 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5518 (tty_color_name): If the color pixel value is either
5519 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5520 Qunspecified_fg or Qunspecified_bg, respectively.
5521 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5522 and Qunspecified_bg for foreground and background colors.
5523 (realize_default_face): If the foreground and background colors
5524 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5525 (realize_tty_face): By default, set the face colors to
5526 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5527 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5528 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5529 Reverse the colors if the default colors were reversed.
5530
5531 * dispnew.c (init_display): Initialize the frame pixels of the
5532 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5533 FACE_TTY_DEFAULT_BG_COLOR.
5534
5535 * term.c (turn_on_face): If the default fore- and background
5536 colors are reversed, enter inverse video mode. Don't send color
5537 escape sequences for unspecified foreground and background colors.
5538 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5539
5540 * dosfns.c (unspecified_colors): New variable.
5541 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5542 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5543 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5544 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5545 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5546 Qunspecified_bg, respectively.
5547
5548 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5549 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5550
5551 1999-12-15 Kenichi Handa <handa@etl.go.jp>
5552
5553 * coding.c (code_convert_region): Fix the secoding arg to
5554 update_compositions.
5555
5556 1999-12-15 Kenichi Handa <handa@etl.go.jp>
5557
5558 The following changes are for the new composition mechanism. We
5559 have deleted `composition' charset and composite characters,
5560 instead introduced a special text property `composition'.
5561
5562 * Makefile.in (INTERVAL_SRC): Include composite.h.
5563 (INTERVAL_OBJ): Include composite.o.
5564 (SOME_MACHINE_OBJECTS): Include composite.o.
5565 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5566 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5567 Depend on composite.h.
5568 (doc.o): Depend on charset.h.
5569 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5570 (composite.o): New target.
5571
5572 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5573
5574 * callproc.c (Fcall_process): Call code_convert_string to encode
5575 arguments. Use CODING_REQUIRE_DECODING to check if the process
5576 output should be decoded.
5577
5578 * casefiddle.c: Include composite.h.
5579 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5580 multibyte character. Adjusted for the change of CHAR_STRING.
5581 (casify_region): Likewise. Call update_compositions.
5582
5583 * category.h (CATEGORY_SET): Delete codes for a composite
5584 character.
5585
5586 * category.c (word_boundary_p): Delete codes for a composite
5587 character.
5588 (Fmake_category_table): New function.
5589 (syms_of_category): Defsubr it.
5590
5591 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5592 (ccl_driver): Delete codes for a composite character.
5593
5594 * charset.h: In this entry, just `Modified' means that codes for a
5595 composite character is deleted.
5596 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5597 (charset_composition) (MIN_CHAR_COMPOSITION)
5598 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5599 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5600 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5601 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5602 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5603 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5604 Modified.
5605 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5606 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5607 non_ascii_char_to_string.
5608 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5609 (STRING_CHAR_AND_LENGTH): Likewise.
5610 (FETCH_CHAR_ADVANCE): New macro.
5611 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5612 (MAX_MULTIBYTE_LENGTH): New macro.
5613 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5614 (find_charset_in_str): Argument adjusted.
5615 (CHAR_LEN): Modified.
5616
5617 * charset.c: In this entry, just `Modified' means that codes for a
5618 composite character is deleted.
5619 (Qcomposition) (leading_code_composition)
5620 (charset_composition) (min_composite_char) (cmpchar_table)
5621 (cmpchar_table_size) (n_cmpchars): Deleted.
5622 (SPLIT_COMPOSITE_SEQ): Deleted.
5623 (SPLIT_MULTIBYTE_SEQ): Modified.
5624 (char_to_string): Renamed from non_ascii_char_to_string.
5625 Modified.
5626 (string_to_char): Renamed from string_to_non_ascii_char.
5627 (split_string): Renamed from split_non_ascii_string.
5628 (char_printable_p) (Fsplit_char)
5629 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5630 (char_bytes) (Fchar_width) (strwidth): Modified.
5631 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5632 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5633 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5634 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5635 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5636 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5637 (Fcmpchar_cmp_count): Deleted.
5638 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5639 (init_charset_once): Modified.
5640 (syms_of_charset): Modified.
5641
5642 * cmds.c (internal_self_insert): Adjusted for the change of
5643 CHAR_STRING.
5644
5645 * coding.h (emacs_code_class_type): Delete the member
5646 EMACS_leading_code_composition.
5647 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5648 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5649 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5650 (COMPOSING_WITH_RULE_P): Macros deleted.
5651 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5652 macros.
5653 (struct composition_data): New structure.
5654 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5655 (struct coding_system): New members composition_rule_follows,
5656 cmp_data, cmp_data_start, cmp_data_index.
5657 (coding_save_composition) (coding_free_composition_data)
5658 (coding_adjust_composition_offset): Extern them.
5659
5660 * coding.c: Include composite.h.
5661 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5662 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5663 of multibyte code here.
5664 (DECODE_CHARACTER_DIMENSION2): Likewise.
5665 (detect_coding_emacs_mule): Change the case label from
5666 EMACS_leading_code_composition to 0x80.
5667 (detect_coding_iso2022): Handle new composition sequence.
5668 (DECODE_ISO_CHARACTER): Likewise.
5669 (check_composing_code): Deleted.
5670 (coding_allocate_composition_data): New function.
5671 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5672 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5673 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5674 (decode_coding_iso2022): Handle new composition sequence.
5675 (ENCODE_ISO_CHARACTER): Don't check composition here.
5676 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5677 (ENCODE_COMPOSITION_NO_RULE_START)
5678 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5679 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5680 (ENCODE_COMPOSITION_FAKE_START): New macro.
5681 (encode_coding_iso2022): Handle new composition sequence.
5682 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5683 (encode_coding_sjis_big5): Ignore composition.
5684 (setup_coding_system): Initialize new members of struct
5685 coding_system. Enable composition only when the coding system has
5686 `composition' property t.
5687 (coding_free_composition_data) (coding_adjust_composition_offset)
5688 (coding_save_composition) (coding_restore_composition): New
5689 functions.
5690 (code_convert_region): Call coding_save_composition for encoding
5691 and coding_allocate_composition_data for decoding. Don't skip
5692 ASCII characters if we handle composition on encoding. Call
5693 signal_after_change with Check_BORDER.
5694 (code_convert_string): Call coding_save_composition for encoding
5695 and coding_allocate_composition_data for decoding. Don't skip
5696 ASCII characters if we handle composition on encoding.
5697 (code_convert_string1): Set Vlast_coding_system_used after calling
5698 code_convert_string.
5699 (code_convert_string_norecord): Disable composition.
5700 (Fset_terminal_coding_system_internal): Likewise.
5701 (Fset_safe_terminal_coding_system_internal): Likewise.
5702 (Fset_keyboard_coding_system_internal): Likewise.
5703 (init_coding_once): Set emacs_code_class[0x80] to
5704 EMACS_invalid_code.
5705
5706 * composite.h: New file.
5707
5708 * composite.c: New file.
5709
5710 * data.c (Faref): Delete codes for a composite character..
5711 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5712
5713 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5714 (struct glyph): Add new sub-structure cmp to the union `u'.
5715 (enum display_element_type): New member IT_COMPOSITION.
5716 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5717 (struct it): New members cmp_id, cmp_len.
5718
5719 * dispnew.c (direct_output_forward_char): Check point moving into
5720 or out of a composition. If so, give up direct method.
5721
5722 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5723
5724 * editfns.c (Fchar_to_string): Adjusted for the change of
5725 CHAR_STRING.
5726 (general_insert_function): Likewise.
5727 (Finsert_char): Likewise.
5728 (Fsubst_char_in_region): Likewise. Call update_compositions.
5729 (Ftranslate_region): Call update_compositions.
5730 (Ftranspose_regions): Call update_compositions.
5731
5732 * emacs.c (main): Call syms_of_composite.
5733
5734 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5735 CHAR_STRING.
5736 (Finsert_file_contents): Set Vlast_coding_system_used before
5737 calling signal_after_change. Call update_compositions if some
5738 texts are inserted..
5739 (Fwrite_region): Adjusted for the change of a_write and e_write.
5740 (a_write): Argument changed. Work based on character position,
5741 not byte position.
5742 (e_write): Argument changed. Handle new way of composition.
5743
5744 * fns.c (Flength): The length of char-table is MAX_CHAR.
5745 (concat): Adjusted for the change of CHAR_STRING.
5746 (Ffillarray): Adjusted for the change of CHAR_STRING.
5747 (Fset_char_table_default): Delete codes for a composite character.
5748 (hash_put): Return hash index.
5749
5750 * fontset.h (struct font_info): New member vertical_centering.
5751 (Vvertical_centering_font_regexp): Extern it.
5752
5753 * fontset.c (Vvertical_centering_font_regexp): New variable.
5754 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5755 Set Vignore_relative_composition to nil.
5756 (fs_load_font): Initialize `vertical_centering' of struct
5757 font_info.
5758
5759 * indent.c (check_composition): New function.
5760 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5761 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5762 (current_column_1): Handle new way of composition.
5763 (Fmove_to_column): Likewise.
5764 (compute_motion): Likewise.
5765
5766 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5767 (insert_char): Likewise.
5768 (insert): Call update_compositions.
5769 (insert_and_inherit): Likewise.
5770 (insert_before_markers): Likewise.
5771 (insert_before_markers_and_inherit): Likewise.
5772 (insert_from_string): Likewise.
5773 (insert_from_string_before_markers): Likewise.
5774 (insert_from_buffer): Likewise.
5775 (replace_range): Likewise.
5776 (count_combining_composition): Deleted.
5777 (count_combining_before): Delete codes for a composite character.
5778 (count_combining_after): Likewise.
5779 (del_range_1): Call update_compositions.
5780 (del_range_byte): Likewise.
5781 (del_range_both): Likewise.
5782 (Fcombine_after_change_execute): Likewise.
5783
5784 * intervals.h: Include composite.h.
5785 (get_property_and_range): Extern it.
5786 (Vtext_property_default_nonsticky): Extern it.
5787
5788 * intervals.c (adjust_intervals_for_insertion): To check stickines
5789 of properties, pay attention to text-property-default-nonsticky.
5790 (merge_properties_sticky): Likewise.
5791 (get_property_and_range): New function.
5792
5793 * keyboard.c (Vdisable_point_adjustment): New variable.
5794 (Vglobal_disable_point_adjustment): New variable.
5795 (syms_of_keyboard): Declare them as Lisp variables.
5796 (command_loop_1): Check them and call adjust_point_for_property if
5797 necessary.
5798 (adjust_point_for_property): New function.
5799
5800 * keymap.c (push_key_description): Adjusted for the change of
5801 CHAR_STRING.
5802 (Ftext_char_description): Likewise.
5803
5804 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5805 (hash_put): Adjusted for the change of the definition.
5806 (signal_after_change): Likewise.
5807 (check_point_in_composition): Extern it.
5808
5809 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5810 Delete a code that handles an invalid too-long multibyte sequence
5811 because we are now sure that we never encounter with such a
5812 sequence.
5813 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5814 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5815 (init_obarray): Likewise.
5816 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5817
5818 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5819
5820 * process.c: Include composite.h.
5821 (read_process_output): Call update_compositions.
5822
5823 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5824
5825 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5826
5827 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5828 character.
5829
5830 * term.c (encode_terminal_code): Delete codes for a composite
5831 character. Adjusted for the change of CHAR_STRING.
5832 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5833 Delete codes for a composite character.
5834
5835 * textprop.c (Vtext_property_default_nonsticky): New variable
5836 (syms_of_textprop): Declare it as a Lisp variable.
5837
5838 * window.c (Frecenter): Clear all caches of compositions.
5839
5840 * xdisp.c (it_props): Add an entry for composition.
5841 (face_before_or_after_it_pos): For composition, check face of a
5842 character after the composition.
5843 (handle_composition_prop): New function.
5844 (get_next_display_element): Adjusted for the change of
5845 CHAR_STRING.
5846 (set_iterator_to_next): Handle the case that it->method ==
5847 next_element_from_composition.
5848 (next_element_from_composition): New function.
5849 (message_dolog): Adjusted for the change of CHAR_STRING.
5850 (set_message_1): Likewise.
5851 (check_point_in_composition): New function.
5852 (reconsider_clip_changes): If point moved into or out of
5853 composition, set b->clip_changed to 1 to force updating of the
5854 screen.
5855 (disp_char_vector): Delete codes for a composite character.
5856 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5857
5858 * xfaces.c (choose_face_fontset_font): Delete codes for a
5859 composite character.
5860 (realize_x_face): Likewise. Change a place to set local variable
5861 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5862
5863 * xfns.c: Include intervals.h.
5864 (syms_of_xfns): Make `display' property nonsticky by default.
5865
5866 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5867 for find_charset_in_str.
5868
5869 * xterm.h (struct x_output): Change member font_baseline to
5870 baseline_offset.
5871
5872 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5873 for composition.
5874 (x_append_composite_glyph): New function.
5875 (VCENTER_BASELINE_OFFSET): New macro.
5876 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5877 of struct it for the composition. Cache pixel offsets in the
5878 struct composition. Delete codes for a composite character.
5879 Handle Vignore_relative_composition in composition code.
5880 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5881 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5882 (x_compute_glyph_string_overhangs): Likewise.
5883 (x_get_glyph_overhangs): Delete codes for a composite character.
5884 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5885 (x_draw_glyph_string_background): Likewise. Delete codes for
5886 checking s->gidx for a composition.
5887 (x_draw_glyph_string_foreground): Delete code for a composite
5888 character.
5889 (x_draw_composite_glyph_string_foreground): New function.
5890 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5891 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5892 (struct work): Deleted.
5893 (x_fill_composite_glyph_string): Argument changed. Mostly
5894 rewritten for that.
5895 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5896 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5897 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5898 (BUILD_GLYPH_STRINGS): For composition, call
5899 BUILD_COMPOSITE_GLYPH_STRING.
5900 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5901 f->output_data.x->font_baseline.
5902
5903 1999-12-14 Gerd Moellmann <gerd@gnu.org>
5904
5905 * xterm.c (show_mouse_face): Don't use updated_area, use
5906 TEXT_AREA.
5907
5908 1999-12-12 Richard M. Stallman <rms@gnu.org>
5909
5910 * minibuf.c (Fall_completions): Doc fix.
5911
5912 1999-12-12 Richard M. Stallman <rms@gnu.org>
5913
5914 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5915 has been changed by the Lisp code.
5916
5917 1999-12-12 Gerd Moellmann <gerd@gnu.org>
5918
5919 * xfns.c: Indentation fixes.
5920
5921 1999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5922
5923 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5924
5925 1999-12-10 Gerd Moellmann <gerd@gnu.org>
5926
5927 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5928 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5929
5930 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5931 to frame.h.
5932
5933 1999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5934
5935 * keyboard.c (Qratio): New symbol.
5936 (scroll_bar_parts): Add `Qratio' to it.
5937 (syms_of_keyboard): Init `Qratio'.
5938 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5939 * xterm.c (#includes): Allow compilation with only Xaw.
5940 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5941 (xt_action_hook): Replace XAW3D by XAW.
5942 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5943 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5944 Determine epsilon dynamically and don't try to be too clever.
5945 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5946 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5947 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5948 scrollbar (using `ratio').
5949 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5950 scrollbar we have so as to set it up more optimally and to fix
5951 xaw3d_arrow_scroll and xaw3d_pick_top.
5952 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5953 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5954 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5955 is not ignored, using a major gross hack.
5956 (x_initialize): Init default values for xaw3d_arrow_scroll and
5957 xaw3d_pick_top.
5958
5959 1999-12-09 Dave Love <fx@gnu.org>
5960
5961 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5962
5963 1999-12-08 Gerd Moellmann <gerd@gnu.org>
5964
5965 * eval.c: Remove conditional compilation on `standalone'.
5966 (call_debugger): When entering the debugger while redisplaying,
5967 reset redisplaying_p, and go back to the top-level if the debugger
5968 returns.
5969
5970 1999-12-07 Gerd Moellmann <gerd@gnu.org>
5971
5972 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5973 basic faces are realized before trying to use face `menu'.
5974
5975 * window.c (delete_window): Block input for the time window
5976 matrices are being changed.
5977
5978 1999-12-07 Dave Love <fx@gnu.org>
5979
5980 * lread.c (Fintern_soft): Fix newlines in doc string.
5981
5982 1999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5983
5984 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5985 duplicate definition of ElfW.
5986 (find_section): Copied from unexsgi.c.
5987 (unexec): Use find_section. Adjust whitespace. Initialize
5988 new_data2_offset based on old_data, not sbss (this fixes a bug on
5989 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5990 Adjust test for presence of .mdebug section to the new return
5991 value of find_section.
5992
5993 1999-12-07 Gerd Moellmann <gerd@gnu.org>
5994
5995 * unexelf.c: Merge changes from 20.5.
5996 (unexec): Handle .lit4 and .lit8 unconditionally.
5997
5998 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5999 unexsgi.o again.
6000
6001 * m/iris5d.h (UNEXEC): Likewise.
6002
6003 1999-12-06 Stefan Monnier <monnier@cs.yale.edu>
6004
6005 * editfns.c (Fdelete_and_extract_region): New function.
6006 (syms_of_editfns): Register it.
6007 * insdel.c (del_range): Update del_range_1 call.
6008 (del_range_1, del_range_2): Add a ret_string argument to
6009 request that the deleted text be returned.
6010 (del_range_byte, del_range_both): Update del_range_2 call.
6011 * lisp.h (del_range_1, del_range_2): Change prototype
6012 * casefiddle.c (casify_region): Update del_range_1 call.
6013 * coding.c (code_convert_region): Update del_range_2 call.
6014 * fileio.c (Finsert_file_contents): Update del_range_2 call.
6015
6016 1999-12-06 Gerd Moellmann <gerd@gnu.org>
6017
6018 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
6019
6020 1999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
6021
6022 * lread.c (Fintern_soft): Accept a symbol argument.
6023
6024 1999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
6025
6026 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
6027
6028 * insdel.c (adjust_markers_for_delete): Fix last change.
6029
6030 1999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
6031
6032 Changes for automatic remapping of X colors on terminal frames:
6033
6034 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
6035 frames.
6036 (Vface_tty_color_alist): Remove.
6037 (tty_defined_color): New function.
6038 (defined_color): Rewrite to support any type of frame.
6039 (tty_color_name): New function.
6040 (face_color_supported_p, Fface_color_gray_p,
6041 Fface_color_supported_p): Support non-X frames.
6042 (load_color): Enclose the color name in quotes, in the log
6043 messages. Remove DOS-specific version of load_color.
6044 (realize_tty_face): Take the supported colors from
6045 tty-color-alist. Support translation of X colors to the closest
6046 tty color, for both MSDOS and tty frames.
6047 [MSDOS]: Don't invert face colors if they were taken from the
6048 frame colors.
6049 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
6050
6051 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
6052 Define a mostly empty surrogate.
6053 (tty_display): Declare.
6054
6055 * frame.c (make_terminal_frame) [!macintosh]: Don't use
6056 tty_display.
6057 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
6058 frames when the frame's param_alist includes 'reverse.
6059 (tty_display): Define.
6060 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
6061 output_data.x member.
6062 (Fframe_parameters): Return foreground and background color names
6063 on tty frames as well, in addition to MSDOS frames.
6064
6065 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
6066 selected_frame.
6067 (struct x_output): Remove unused members; document who uses each
6068 member.
6069 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
6070 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
6071 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
6072 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
6073 unused macro definintions.
6074
6075 * msdos.c (IT_set_frame_parameters): Don't call
6076 recompute_basic_faces, the next redisplay will, anyway.
6077 (x_current_display): Remove unused variable.
6078 Many functions: changes for Lisp_object selected_frame.
6079 (IT_set_face): If the tty_reverse_p flag is set for the face,
6080 reverse the foreground and background colors.
6081 (Fmsdos_remember_default_colors): New function.
6082 (syms_of_msdos): Defsubr it.
6083 (IT_set_frame_parameters): Use initial_screen_colors[] when
6084 creating a new frame. If the frame parameters include 'reverse,
6085 swap the foreground and background colors.
6086 (internal_terminal_init): Initialize initial_screen_colors to -1.
6087 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
6088 cus-start.el.
6089
6090 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
6091
6092 * xfns.c (x_defined_color): Rename from defined_color. All
6093 callers changed.
6094 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
6095 all callers changed.
6096 (Fxw_color_values): Renamed from Fx_color_values; all callers
6097 changed.
6098 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
6099 callers changed.
6100 (x_window_to_frame, x_any_window_to_frame,
6101 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6102 x_top_window_to_frame): Use !FRAME_X_P instead of
6103 f->output_data.nothing.
6104 * xterm.h (x_defined_color): Rename from defined_color.
6105
6106 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
6107 f->output_data.nothing.
6108 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
6109 all callers changed.
6110 (Fxw_color_values): Renamed from Fx_color_values; all callers
6111 changed.
6112 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
6113 callers changed.
6114
6115 * dispextern.h (tty_color_name): Add prototype.
6116
6117 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
6118 f->output_data.nothing.
6119 * w32menu.c (menubar_id_to_frame): Likewise.
6120 * w32term.h (w32_output): Declare.
6121
6122 * dosfns.c (Qmsdos_color_translate): Remove.
6123 (msdos_stdcolor_name): Now returns a Lisp_Object.
6124 * dosfns.h (Qmsdos_color_translate): Remove.
6125
6126 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
6127
6128 1999-12-06 Kenichi Handa <handa@etl.go.jp>
6129
6130 * fileio.c (decide_coding_unwind): Renamed from
6131 set_auto_coding_unwind.
6132 (Finsert_file_contents): Make single unwind protect to call both
6133 Vset_auto_coding_function and Ffind_operation_coding_system.
6134
6135 * insdel.c (adjust_markers_for_delete): Make it non-static.
6136
6137 1999-12-04 Stefan Monnier <monnier@cs.yale.edu>
6138
6139 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
6140 operators and handle them properly.
6141 * regex.h (RE_ALL_GREEDY): New option.
6142 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
6143 sorting would put it.
6144 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
6145 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
6146
6147 1999-12-04 Dave Love <d.love@dl.ac.uk>
6148
6149 * m/arm.h: New file.
6150
6151 1999-12-03 Dave Love <fx@gnu.org>
6152
6153 * editfns.c (Fmessage_or_box): Use use_dialog_box.
6154
6155 1999-12-02 Gerd Moellmann <gerd@gnu.org>
6156
6157 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
6158 for building with Motif.
6159
6160 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
6161 unexelf.o.
6162
6163 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
6164
6165 1999-12-01 Dave Love <fx@gnu.org>
6166
6167 * emacs.c (main): Set LANG=C iff AX3_2 defined.
6168
6169 1999-11-28 Gerd Moellmann <gerd@gnu.org>
6170
6171 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
6172 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
6173 macros.
6174
6175 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
6176
6177 1999-11-28 eliz <eliz@dlpx1>
6178
6179 * emacs.c (synchronize_locale): Avoid compiler warnings about
6180 pointer type mismatch.
6181
6182 1999-11-28 Gerd Moellmann <gerd@gnu.org>
6183
6184 * window.c (Fwindow_end): Don't call temp_set_pt_both with
6185 out of range position.
6186
6187 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
6188 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
6189
6190 1999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
6191
6192 * charset.c (Fmake_char_internal): Print the charset ID when
6193 signalling an error.
6194
6195 * emacs.c (synchronize_locale): Avoid compiler warnings about
6196 pointer type mismatch.
6197
6198 1999-11-26 Richard M. Stallman <rms@gnu.org>
6199
6200 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
6201
6202 1999-11-26 Gerd Moellmann <gerd@gnu.org>
6203
6204 * puresize.h (BASE_PURESIZE): Increase to 550000.
6205
6206 * textprop.c (set_text_properties): New function. Like
6207 Fset_text_properties, but with additional parameter
6208 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
6209 changes.
6210 (Fset_text_properties): Use it.
6211
6212 * insdel.c (insert_1_both): Call set_text_properties with last
6213 parameter nil so that no after changes will be signaled.
6214
6215 * lisp.h: Add prototype for set_text_properties.
6216
6217 * xfaces.c (set_lface_from_font_name): Fix previous change.
6218 (recompute_basic_faces): Change assert to abort.
6219
6220 1999-11-25 Dave Love <fx@gnu.org>
6221
6222 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
6223 (Fmember, Fdelq, Fdelete): Inline car.
6224 (Fy_or_n_p): Doc fix.
6225
6226 1999-11-25 Gerd Moellmann <gerd@gnu.org>
6227
6228 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
6229 Callers changed. If specified font name is bogus, and may_fail_p
6230 is not set, try to use a reasonable default.
6231
6232 * dispnew.c (direct_output_for_insert): Set glyph row's
6233 displays_text_p flag. Correct window's window_end_vpos if
6234 necessary.
6235
6236 1999-11-25 Paul Eggert <eggert@twinsun.com>
6237
6238 * emacs.c (fixup_locale): Don't bother to record initial locale.
6239 (synchronize_locale): If the desired locale is nil,
6240 treat it as if it were the empty string,
6241 so that we set the locale from the environment.
6242
6243 1999-11-25 Kenichi Handa <handa@etl.go.jp>
6244
6245 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
6246 of the current buffer via Fset.
6247
6248 1999-11-24 Dave Love <fx@gnu.org>
6249
6250 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
6251
6252 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
6253
6254 1999-11-24 Gerd Moellmann <gerd@gnu.org>
6255
6256 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
6257
6258 * emacs.c (PVEC_FLAG): New variable.
6259
6260 1999-11-23 Gerd Moellmann <gerd@gnu.org>
6261
6262 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
6263 that fails on IBM PowerPC, AIX 4.2.
6264
6265 1999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
6266
6267 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
6268 string of mode-line-format. Remove the obsolete %t.
6269
6270 1999-11-22 Gerd Moellmann <gerd@gnu.org>
6271
6272 * dispnew.c (direct_output_for_insert): Increment glyph positions
6273 for glyphs from buffer text only.
6274
6275 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
6276 (gdb_data_seg_bits): New variables.
6277
6278 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
6279 work on systems not allowing enumerators > INT_MAX, and it
6280 won't work if EMACS_INT is long long.
6281
6282 1999-11-22 Paul Eggert <eggert@twinsun.com>
6283
6284 Port to SunOS 4.1.x again. Help out with Alpha port.
6285 Rename messages-locale to system-messages-locale,
6286 and likewise for time-locale.
6287
6288 * callproc.c (strerror): Remove decl.
6289 * fileio.c (strerror): Likewise.
6290 * process.c (strerror): Likewise.
6291 * emacs.c (strerror): Likewise.
6292 (Vsystem_messages_locale): Renamed from Vmessages_locale.
6293 All uses changed.
6294 (Vprevious_system_messages_locale): Likewise, from
6295 Vprevious_messages_locale.
6296 (Vsystem_time_locale): Likewise, from Vtime_locale.
6297 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
6298 (ABORT_RETURN_TYPE): New macro.
6299 (abort): Return type is now ABORT_RETURN_TYPE.
6300 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
6301 defined.
6302 (syms_of_emacs): messages-locale -> system-messages-locale,
6303 previous-messages-locale -> previous-system-messages-locale,
6304 time-locale -> system-time-locale,
6305 previous-time-locale -> previous-system-time-locale.
6306
6307 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
6308 (const): Do not define; that's config.h's job.
6309 (<limits.h>): Include if HAVE_LIMITS_H is defined.
6310 (CHAR_BIT): Move test for definedness outside of limits.h condition.
6311 (<stddef.h>): Include if STDC_HEADERS is defined.
6312 (FREE_RETURN_TYPE): New macro.
6313 (free): Return type is now FREE_RETURN_TYPE.
6314
6315 * lisp.h (synchronize_system_time_locale): Renamed from
6316 synchronize_time_locale. All uses changed.
6317 (synchronize_system_messages_locale): Likewise, from
6318 synchronize_messages_locale.
6319
6320 * m/alpha.h (malloc, realloc, calloc): Remove decls;
6321 stdlib.h now does this.
6322
6323 * process.c (sys_siglist): Remove.
6324
6325 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
6326 New macros.
6327
6328 * syntax.c (scan_sexps_forward): Use abort, not assert.
6329
6330 * sysdep.c (my_sys_siglist): New var.
6331 (sys_siglist): New macro. Remove old initialized vars of same name.
6332 (init_signals): Initialize sys_siglist.
6333
6334 * xfns.c (abort): Remove decl; stdlib.h now does this.
6335
6336 1999-11-18 Dave Love <fx@gnu.org>
6337
6338 * filelock.c: Add forward declaration for get_boot_time_1.
6339
6340 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
6341
6342 1999-11-18 Gerd Moellmann <gerd@gnu.org>
6343
6344 * buffer.h (struct buffer_text): Add comment about moving
6345 buffer text if REL_ALLOC is defined.
6346
6347 1999-11-18 Kenichi Handa <handa@etl.go.jp>
6348
6349 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
6350
6351 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
6352 memory for push_key_description.
6353
6354 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
6355 allocate memory for push_key_description.
6356 (describe_buffer_bindings): Likewise.
6357
6358 1999-11-17 Gerd Moellmann <gerd@gnu.org>
6359
6360 * xfns.c (Fx_show_busy_cursor): Doc-fix.
6361 (Fx_hide_busy_cursor): Ditto.
6362
6363 1999-11-17 Marco Walther <walther@siemens-pyramid.com>
6364
6365 * unexsni.c (unexec): Handle .rel.dyn section.
6366
6367 1999-11-16 Dave Love <fx@gnu.org>
6368
6369 * doc.c (Fdocumentation): Remove gcpro here too.
6370
6371 1999-11-16 Gerd Moellmann <gerd@gnu.org>
6372
6373 * keyboard.c (command_loop_1): Remove no_redisplay.
6374
6375 1999-11-16 Richard M. Stallman <rms@gnu.org>
6376
6377 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
6378 in noninteractive.
6379
6380 1999-11-14 Gerd Moellmann <gerd@gnu.org>
6381
6382 * xdisp.c (ensure_echo_area_buffers): New.
6383 (with_echo_area_buffer): Use it.
6384 (setup_echo_area_for_printing): Ditto.
6385
6386 * buffer.c (indicate-empty-lines): Doc-fix.
6387
6388 1999-11-12 Gerd Moellmann <gerd@gnu.org>
6389
6390 * term.c (term_init): If "op" isn't available, don't support color
6391 because we can't switch back to the default foreground and
6392 background.
6393
6394 * doc.c (Fdocumentation_property): Remove GCPRO because
6395 Fsubstitute_command_keys gcpro's the string.
6396
6397 1999-11-12 Kenichi Handa <handa@etl.go.jp>
6398
6399 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
6400
6401 1999-11-11 Gerd Moellmann <gerd@gnu.org>
6402
6403 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
6404 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
6405 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
6406
6407 1999-11-10 Gerd Moellmann <gerd@gnu.org>
6408
6409 * xfns.c (QCuser_data): Removed.
6410 (syms_of_xfns): Initialization of QCuser_data removed.
6411 (parse_image_spec): Don't handle :user-data specially. Allow
6412 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
6413 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
6414 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
6415 parse_image_spec accordingly.
6416
6417 1999-11-09 Richard M. Stallman <rms@gnu.org>
6418
6419 * cmds.c (Fbeginning_of_line): Doc fix.
6420 (Fend_of_line): Doc fix.
6421
6422 * editfns.c (Fline_beginning_position): If N is not 1,
6423 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6424
6425 * syntax.c (Fforward_word): Handle fields even if would have hit
6426 an edge of the buffer. Return nil if affected by fields.
6427
6428 1999-11-09 Richard M. Stallman <rms@gnu.org>
6429
6430 * editfns.c (preceding_pos): Function deleted.
6431 (text_property_stickiness): Decrement POS directly.
6432 Fix a confusion that used PT instead of POS.
6433
6434 * editfns.c (find_field): Properly handle the case
6435 of a field boundary where `field' inherits from neither side.
6436
6437 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6438 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6439
6440 1999-11-08 Gerd Moellmann <gerd@gnu.org>
6441
6442 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6443 BEFORE_POTENTIAL_GC before DISCARD.
6444
6445 1999-11-07 Gerd Moellmann <gerd@gnu.org>
6446
6447 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6448
6449 * lisp.h: Add prototype for unmark_byte_stack.
6450
6451 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6452 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6453 XUNMARK.
6454
6455 * xdisp.c (resize_mini_window): Fix computation of needed
6456 mini-window height.
6457
6458 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6459 compilation on USE_TEXT_PROPERTIES.
6460
6461 * Fbyte_code: Use block statements in cases and declare v1 and v2
6462 locally there. Rearrange case statements so that those most
6463 frequently executed come first. Avoid goto's in frequently
6464 executed cases.
6465
6466 1999-11-05 Gerd Moellmann <gerd@gnu.org>
6467
6468 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6469 AFTER_POTENTIAL_GC around internal_catch.
6470
6471 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6472 relocate_byte_pcs.
6473 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6474
6475 * eval.c (struct catchtag): Add member byte_stack.
6476 (internal_catch, Fcondition_case, internal_condition_case)
6477 (internal_condition_case_1): Save value of byte_stack_list in
6478 catchtag.
6479 (unwind_to_catch): Restore byte_stack_list from catchtag.
6480
6481 * lisp.h: Add prototypes for new functions in bytecode.c.
6482 Add extern declaration for byte_stack_list.
6483
6484 * bytecode.c (struct byte_stack): New.
6485 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6486 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6487 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6488 (HANDLE_RELOCATION): Removed.
6489 (Fbyte_code): Use byte_stack structures.
6490
6491 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6492
6493 * buffer.c (syms_of_buffer): Extend documentation of
6494 mode-line-format.
6495
6496 1999-11-04 Gerd Moellmann <gerd@gnu.org>
6497
6498 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6499
6500 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6501 Ferase_field instead of Fdelete_field.
6502
6503 1999-11-03 Gerd Moellmann <gerd@gnu.org>
6504
6505 * dispnew.c (Finternal_show_cursor): Change it to set the
6506 cursor on/off, not toggle its state.
6507 (Finternal_show_cursor_p): New.
6508 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6509
6510 1999-11-03 Dave Love <fx@gnu.org>
6511
6512 * charset.c (split_non_ascii_string): Define return value.
6513
6514 1999-11-03 Gerd Moellmann <gerd@gnu.org>
6515
6516 * minibuf.c (string_to_object): New.
6517 (read_minibuf_noninteractive): New.
6518 (read_minibuf): Call read_minibuf_noninteractive if
6519 noninteractive. Use string_to_object.
6520
6521 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6522
6523 1999-11-02 Dave Love <fx@gnu.org>
6524
6525 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6526
6527 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6528 declared with glibc2.
6529
6530 1999-11-02 Gerd Moellmann <gerd@gnu.org>
6531
6532 * lisp.h (QUIT): Give it statement form.
6533
6534 1999-11-02 Dave Love <fx@gnu.org>
6535
6536 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6537
6538 1999-11-02 Gerd Moellmann <gerd@gnu.org>
6539
6540 * xfns.c (QCuser_data): New.
6541 (syms_of_xfns): Initialize QCuser_data.
6542 (parse_image_spec): Ignore :user-data DATA properties.
6543
6544 * xdisp.c (display_line): Set charpos of first glyph in blank
6545 lines not corresponding to any text to -1, even if no glyphs are
6546 filled in in that line.
6547
6548 1999-11-01 Gerd Moellmann <gerd@gnu.org>
6549
6550 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
6551 png_get_sRGB in #ifdef.
6552
6553 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6554 (syms_of_display): Use the new name.
6555
6556 * textprop.c (verify_interval_modification): Signal text-read-only
6557 instead of calling error.
6558
6559 * data.c (Qtext_read_only): New built-in error.
6560 (syms_of_data): Initialize it.
6561
6562 * lisp.h: Add extern declaration for Qtext_read_only.
6563
6564 * syntax.c: Remove whitespace after open or in front of closing
6565 parentheses.
6566
6567 1999-11-01 Richard M. Stallman <rms@gnu.org>
6568
6569 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6570
6571 1999-10-31 Gerd Moellmann <gerd@gnu.org>
6572
6573 * xdisp.c (resize_mini_window): Compute needed height differently.
6574
6575 * fns.c (Flength): Unroll loop over lists.
6576
6577 * xdisp.c (append_space): Return non-zero if space was appended.
6578 (display_line): Set charpos of first glyph to -1 only if that
6579 glyph is the space added by append_glyph.
6580
6581 1999-10-30 Richard M. Stallman <rms@gnu.org>
6582
6583 * print.c (strout): Consider `noninteractive' and use stdout
6584 only when PRINTCHARFUN is t.
6585
6586 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6587 (gcpro_level): Declare it extern.
6588 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6589 Alternate definitions that set `level' and increment `gcpro_level'.
6590 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6591
6592 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6593 (init_eval) [DEBUG_GCPRO]: Initialize it.
6594 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6595 from remaining gcprolist.
6596
6597 1999-10-29 Kenichi Handa <handa@etl.go.jp>
6598
6599 * coding.c (code_convert_region): Update `dst' correctly.
6600
6601 1999-10-28 Gerd Moellmann <gerd@gnu.org>
6602
6603 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6604 (Frassoc): Rewritten.
6605
6606 1999-10-27 Noah Friedman <friedman@splode.com>
6607
6608 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6609 Define PTY_NAME_SPRINTF.
6610 Redefine PTY_TTY_NAME_SPRINTF.
6611 * config.in: Add undef for HAVE_DEV_PTMX.
6612
6613 1999-10-26 Richard M. Stallman <rms@gnu.org>
6614
6615 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6616 as arg to DEBUG_POP and DEBUG_PRINT.
6617
6618 1999-10-27 Richard M. Stallman <rms@gnu.org>
6619
6620 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6621 (Ffset): Call Qad_activate_internal.
6622 (syms_of_data): Initialize Qad_activate_internal.
6623
6624 1999-10-27 Gerd Moellmann <gerd@gnu.org>
6625
6626 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6627 Vterminal_frame is selected and Vwindow_system is non-nil.
6628
6629 1999-10-26 Gerd Moellmann <gerd@gnu.org>
6630
6631 * xdisp.c (echo_area_display): Put previous change in #if 0.
6632
6633 * emacs.c (standard_args): Add `file' as synonym for `visit',
6634 `execute' as synonym for `eval'.
6635 (main): Add new options to usage message.
6636
6637 1999-10-25 Gerd Moellmann <gerd@gnu.org>
6638
6639 * data.c (Qhash_table): New.
6640 (Ftype_of): Return it for hash tables.
6641 (syms_of_data): Initialize Qhash_table.
6642
6643 1999-10-25 Richard M. Stallman <rms@gnu.org>
6644
6645 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6646
6647 1999-10-24 Ken Raeburn <raeburn@gnu.org>
6648
6649 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6650 lisp.h.
6651
6652 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6653 Fbuffer_local_variables, Fother_buffer, record_buffer,
6654 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6655 swap_out_buffer_local_variables, overlays_at, overlays_in,
6656 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6657 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6658 Foverlay_put, report_overlay_modification, evaporate_overlays):
6659 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6660 references.
6661 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6662 swap_in_symval_forwarding, set_internal, default_value,
6663 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6664 Fmake_variable_frame_local, Flocal_variable_p,
6665 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6666 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6667 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6668 * emacs.c (main): Likewise.
6669 * fontset.c (fs_load_font, fs_register_fontset,
6670 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6671 Fnew_fontset, Fset_fontset_font): Likewise.
6672 * frame.c (do_switch_frame, next_frame, prev_frame,
6673 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6674 Likewise.
6675 * keyboard.c (read_char, help_char_p, event_to_kboard,
6676 kbd_buffer_get_event, timer_start_idle, timer_check,
6677 make_lispy_event, apply_modifiers, reorder_modifiers,
6678 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6679 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6680 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6681 Fcommand_execute, Fexecute_extended_command): Likewise.
6682 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6683 Fall_completions): Likewise.
6684 * window.c (Fset_window_margins): Likewise.
6685
6686 * callint.c (quotify_args): Don't explicitly use struct
6687 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6688
6689 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6690 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6691 if __ELF__ is defined.
6692
6693 1999-10-24 Gerd Moellmann <gerd@gnu.org>
6694
6695 * window.c (Fnext_window): Add a QUIT in the loop.
6696
6697 1999-10-23 Gerd Moellmann <gerd@gnu.org>
6698
6699 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
6700 New targets.
6701
6702 1999-10-22 Dave Love <fx@gnu.org>
6703
6704 * emacs.c (main): Enable profiling conditional on __linux also.
6705
6706 1999-10-20 Gerd Moellmann <gerd@gnu.org>
6707
6708 * xrdb.c (x_load_resources): Set default resources for resource
6709 classes instead of for the specific Emacs.
6710
6711 1999-10-19 Gerd Moellmann <gerd@gnu.org>
6712
6713 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6714 defines it that way.
6715
6716 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6717 if selected_frame is equal to Vterminal_frame.
6718
6719 1999-10-19 Paul Eggert <eggert@twinsun.com>
6720
6721 Add support for large files, 64-bit Solaris, system locale codings.
6722
6723 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6724 when dumping, so that the dumped Emacs doesn't have stray locale info.
6725 (dired.o): Depend on systime.h.
6726 (editfns.o): Depend on coding.h.
6727
6728 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6729 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6730 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6731 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6732 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6733 Include <config.h> before any system include files.
6734
6735 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6736 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6737 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6738 xmenu.c, xterm.c:
6739 Do not include <stdlib.h>, as <config.h> does this now.
6740
6741 * callproc.c (Fcall_process):
6742 Synchronize messages locale before invoking strerror.
6743 Decode resulting string with locale-coding-system.
6744
6745 * coding.c (Vlocale_coding_system): New var.
6746 (syms_of_coding): Adjust to above change.
6747 (emacs_strerror): New function.
6748
6749 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
6750
6751 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6752 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6753 HAVE_STRSIGNAL): New macros.
6754 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6755 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6756
6757 * dired.c: Include "systime.h".
6758 (Ffile_attributes): Do not cast s.st_size to int; this loses
6759 information if int is 32 bits but st_size and EMACS_INT are larger.
6760 Treat large device numbers like large inode numbers.
6761
6762 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6763
6764 * editfns.c: Include coding.h.
6765 (emacs_strftime): Remove decl.
6766 (emacs_strftimeu): New decl.
6767 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6768 Use emacs_strftimeu instead of emacs_strftime.
6769 (Fformat_time_string): Convert format string using
6770 Vlocale_coding_system, and convert result back. Synchronize time
6771 locale before invoking lower level function. Invoke
6772 emacs_memftimeu, passing ut, instead of emacs_memftime.
6773
6774 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6775 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6776 Vprevious_time_locale): New variables.
6777 (main): Invoke setlocale early, so that initial error messages are
6778 localized properly. But skip locale-setting if LC_ALL is "C".
6779 Fix up locale when it's safe to do so.
6780 (fixup_locale): Moved here from xterm.c.
6781 (synchronize_locale, synchronize_time_locale,
6782 synchronize_messages_locale): New functions.
6783 (syms_of_emacs): Accommodate above changes.
6784
6785 * fileio.c (report_file_error): Convert strerror output according
6786 to Vlocale_coding_system.
6787 (Finsert_file_contents): Check for arithmetic overflow in
6788 computations that depend on file size. Report IO errors
6789 with emacs_strerror, not strerror.
6790
6791 * fns.c (Fgethash): Declare dflt parameter.
6792
6793 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6794 is defined; that's config.h's job.
6795
6796 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6797 default these values to long, BITS_PER_LONG, and unsigned long.
6798 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6799 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6800 (code_convert_string_norecord, fixup_locale,
6801 synchronize_messages_locale, synchronize_time_locale,
6802 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6803 All Emacs callers of open, close, read, write changed to use
6804 emacs_open, emacs_close, emacs_read, emacs_write.
6805
6806 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6807 changed to file_tell.
6808 (saved_doc_string_position, prev_saved_doc_string_position): Now
6809 of type file_offset.
6810 (init_lread): Do not fix locale here; fixup_locale now does this.
6811
6812 * m/amdahl.h, s/usg5-4.h:
6813 (NSIG): Remove.
6814 (NSIG_MINIMUM): New macro.
6815
6816 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6817 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6818 s/umips.h, s/usg5-4.h:
6819 (SIGIO): Do not undef.
6820 (BROKEN_SIGIO): New macro.
6821
6822 * m/ustation.h:
6823 (SIGTSTP): Do not undef.
6824 (BROKEN_SIGTSTP): New macro.
6825
6826 * s/gnu-linux.h:
6827 (SIGPOLL, SIGURG): Do not undef.
6828 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6829
6830 * s/ptx4.h:
6831 (SIGINFO): Do not undef.
6832 (BROKEN_SIGINFO): New macros.
6833
6834 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6835
6836 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6837 some Emacs-related changes merged.
6838
6839 * print.c (float_to_string): Prepend "-" to representation of a
6840 NaN if the NaN is negative.
6841
6842 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6843 (wait_reading_process_input): Use emacs_strerror, not strerror.
6844
6845 * process.c (status_message, sigchld_handler): Synchronize locale,
6846 then use strsignal istead of sys_siglist.
6847 * w32proc.c (sys_wait): Likewise.
6848
6849 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6850 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6851 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6852 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6853 (open, close, read, write, INTERRUPTIBLE_OPEN,
6854 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6855
6856 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6857
6858 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6859 sys_open, open): Remove.
6860 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6861 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6862 macros are no longer used.
6863 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6864 (emacs_close): Renamed from sys_close.
6865 (emacs_read): Renamed from sys_read.
6866 (emacs_write): Renamed from sys_write.
6867 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6868 (dup2): Do not print error on failure; the real dup2 doesn't.
6869 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6870
6871 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6872 is defined.
6873 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6874 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6875 (strsignal): Declare if !HAVE_STRSIGNAL.
6876
6877 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6878 (ElfW): Define in terms of ElfExpandBitsW.
6879
6880 * w32proc.c (sys_siglist): Remove decl.
6881
6882 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6883 with ANSI C.
6884 (display_string): Declare face_string_pos arg.
6885
6886 * xfns.c (Fx_show_tip): Declare timeout param.
6887
6888 * xterm.c: No need to include locale.h.
6889 (x_alloc_lighter_color, x_setup_relief_color):
6890 Pass arg as double, not float, for compatibility with ANSI C.
6891 (fixup_locale): Move to emacs.c.
6892 (x_term_init): Do not setlocale or fixup locale; the main program
6893 does this now.
6894
6895 1999-10-18 Dave Love <fx@gnu.org>
6896
6897 * doc.c (Fdocumentation_property): Gcpro `tem'.
6898
6899 1999-10-18 Kenichi Handa <handa@etl.go.jp>
6900
6901 * lread.c (Fload): Calculate bytes of filename correctly.
6902 (openp): Likewise.
6903
6904 1999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6905
6906 * print.c (print_preprocess): In case print-circle is nil,
6907 add OBJ to Vprint_number_table only when OBJ is a symbol.
6908
6909 1999-10-18 Kenichi Handa <handa@etl.go.jp>
6910
6911 * coding.c (code_convert_string): Add record_unwind_protect to
6912 assure setting inhibit_pre_post_conversion back to zero. Take
6913 care of the multibyteness of the working buffer.
6914
6915 * coding.c (inhibit_pre_post_conversion): New variable.
6916 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6917 ignore post-read-conversion and pre-write-conversion property of
6918 the coding system.
6919 (code_convert_region_unwind): New function.
6920 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6921 running pre-write-conversion and post-read-conversion.
6922 (code_convert_string): Likewise.
6923
6924 1999-10-17 Miles Bader <miles@gnu.org>
6925
6926 * editfns.c: Doc fix.
6927
6928 1999-10-17 Miles Bader <miles@gnu.org>
6929
6930 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6931 argument preconditions of find_before_next_newline in the case
6932 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6933 was indeed at the edge.
6934
6935 1999-10-17 Miles Bader <miles@gnu.org>
6936
6937 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6938 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6939
6940 * editfns.c (text_property_eq, text_property_stickiness): Don't
6941 use initializers for auto variables of type Lisp_Object.
6942 (find_field): Likewise. Use braces around nested ifs.
6943 (Fline_end_position): Store the raw eol in a variable, so that the
6944 final expression doesn't look so ugly.
6945 (Fconstrain_to_field): Doc fix.
6946 (preceding_pos): Renamed from `preceeding_pos'.
6947 (text_property_stickiness, find_field): Call preceding_pos,
6948 not preceeding_pos.
6949
6950 1999-10-17 Miles Bader <miles@gnu.org>
6951
6952 * editfns.c (Ffield_string_no_properties): New function.
6953 (text_property_stickiness, preceeding_pos): New functions.
6954 (Ffield_string): Remove PROPS parameter.
6955 (find_field): Add MERGE_AT_BOUNDARY parameter.
6956 Rewrite to use stickiness of `field' property to resolve
6957 ambiguous cases.
6958 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6959 (Fconstrain_to_field): Likewise.
6960 (syms_of_editfns): Init Sfield_string_no_properties.
6961 (Ffield_string, Ferase_field, Ffield_end):
6962 Supply new MERGE_AT_BOUNDARY argument to find_field.
6963 (Fline_beginning_position, Fline_end_position): Supply new
6964 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6965 Pass a value of Qt for the ONLY_IN_LINE argument to
6966 Fconstrain_to_field (only matters if N != 1).
6967 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6968 to Fconstrain_to_field.
6969
6970 * minibuf.c (Fminibuffer_complete_word): Use
6971 Ffield_beginning to find the prompt end.
6972
6973 1999-10-17 Miles Bader <miles@gnu.org>
6974
6975 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6976 behavior when NEW_POS is nil.
6977 (find_field): Use XSETFASTINT instead of make_number.
6978 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6979 input string by seeing where the field begins, instead of
6980 looking at text-properties.
6981
6982 1999-10-17 Miles Bader <miles@gnu.org>
6983
6984 * editfns.c (Qfield): New variable.
6985 (find_field, Ferase_field, Ffield_string,
6986 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6987 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6988 (make_buffer_string_both): Remove minibuffer-prompt hack.
6989 (syms_of_editfns): Initialize Qfield, and subr entries for
6990 field functions above.
6991 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6992 minibuf_save_list.
6993 Don't initialize minibuffer prompt length.
6994 Wrap prompt text-properties around the entire prompt.
6995 Add 'prompt text-property to prompt.
6996 Get final value with Ffield_string instead of make_buffer_string.
6997 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6998 minibuf_save_list.
6999 (do_completion): Get minibuffer input with Ffield_string
7000 instead of Fbuffer_string.
7001 Erase minibuffer input with Ferase_field instead of erase_buffer.
7002 (Fminibuffer_complete_and_exit): Likewise.
7003 Test whether buffer is empty by looking for the 'prompt text
7004 property at the end.
7005 Set prompt length by looking for the end of the prompt text property,
7006 and save prompt length for later use (since there is no longer a
7007 buffer variable to get it from).
7008 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
7009 (syms_of_minibuf): Remove initializations of
7010 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
7011 * buffer.h (struct buffer): Remove prompt_end_charpos field.
7012 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
7013 Don't initialize prompt_end_charpos field.
7014 * syntax.c (Fforward_word): Likewise.
7015 Constrain to any field.
7016
7017 1999-10-16 Gerd Moellmann <gerd@gnu.org>
7018
7019 * window.c (enum save_restore_action): New.
7020 (save_restore_orig_size): Change parameter list. Add
7021 functionality to check for valid orig_top and orig_height members
7022 in a window tree.
7023 (grow_mini_window): Call save_restore_orig_size with new parameter
7024 list.
7025 (shrink_mini_window): Restore old window sizes only if old
7026 size information is valid in all windows in a window tree.
7027
7028 1999-10-15 Gerd Moellmann <gerd@gnu.org>
7029
7030 * xmenu.c (set_frame_menubar): Don't call
7031 x_set_menu_resources_from_menu_face here.
7032 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
7033
7034 * xfns.c (gif_load): Fix handling of interlaced GIFs.
7035
7036 1999-10-14 Dave Love <fx@gnu.org>
7037
7038 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
7039
7040 1999-10-14 Gerd Moellmann <gerd@gnu.org>
7041
7042 * process.c (Fopen_network_stream): Don't loop if gethostbyname
7043 fails and h_errno is TRY_AGAIN.
7044
7045 1999-10-13 Dave Love <fx@gnu.org>
7046
7047 * filelock.c (lock_file): Move gcpro of `fn'.
7048
7049 1999-10-10 Gerd Moellmann <gerd@gnu.org>
7050
7051 * keyboard.c (auto-save-interval): Fix documentation.
7052
7053 1999-10-09 Richard M. Stallman <rms@gnu.org>
7054
7055 * print.c (print): When removing objects from Vprint_number_table,
7056 only scan the newly added objects.
7057 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
7058 unconditionally force it to stay in the table.
7059
7060 1999-10-09 Gerd Moellmann <gerd@gnu.org>
7061
7062 * xfns.c (prepare_image_for_display): Don't try to load image if
7063 loading it failed before.
7064 (lookup_image, prepare_image_for_display): Remember if loading the
7065 image failed.
7066 (xpm_load): Add missing UNBLOCK_INPUT.
7067
7068 * dispextern.h (struct image): New member load_failed_p.
7069
7070 1999-10-08 Stefan Monnier <monnier@cs.yale.edu>
7071
7072 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
7073 in the docstring.
7074
7075 1999-10-08 Gerd Moellmann <gerd@gnu.org>
7076
7077 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
7078 Don't call XSetInputFocus because that can generate additional
7079 FocusIn events.
7080
7081 1999-10-07 Jeffrey C Honig <jch@bsdi.com>
7082
7083 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
7084
7085 1999-10-07 Richard M. Stallman <rms@gnu.org>
7086
7087 * process.c (wait_reading_process_input): When trying to suck
7088 input from one process, for accept-process-output,
7089 exit that loop if we get EAGAIN or EWOULDBLOCK.
7090
7091 1999-10-07 Gerd Moellmann <gerd@gnu.org>
7092
7093 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
7094 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
7095 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
7096 Fpixmap_spec_p and Qpixmap_spec_p.
7097 (load_face_colors, check_lface_attrs,
7098 merge_face_vector_with_property,
7099 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
7100 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
7101 Fbitmap_spec_p.
7102
7103 1999-10-07 Gerd Moellmann <gerd@gnu.org>
7104
7105 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
7106 MODE_LINE_FACE_ID.
7107
7108 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
7109 (struct x_resources) [USE_X_TOOLKIT]: New.
7110 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
7111 [USE_MOTIF]: New.
7112 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
7113 [USE_LUCID]: New.
7114 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
7115 (Qmenu): New.
7116 (syms_of_xfaces): Initialize Qmenu.
7117 (realize_basic_faces): Realize face `menu'.
7118 (resolve_face_name): New.
7119 (lface_from_face_name): Use it.
7120 (Finternal_set_lisp_face_attribute): Ditto.
7121 (Fpixmap_spec_p): Rewritten. Extend doc string.
7122
7123 * xmenu.c (set_frame_menubar, xmenu_show): Call
7124 x_set_menu_resources_from_menu_face.
7125
7126 * dispextern.h (enum face_id): Add MENU_FACE_ID.
7127 (toplevel): Include X11/Intrinsic.h.
7128
7129 1999-10-03 Ken'ichi Handa <handa@gnu.org>
7130
7131 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
7132 correctly.
7133
7134 1999-09-30 Kenichi Handa <handa@etl.go.jp>
7135
7136 * category.c (modify_lower_category_set): Set default value of
7137 TABLE correctly.
7138
7139 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
7140 size correctly.
7141
7142 1999-09-29 Gerd Moellmann <gerd@gnu.org>
7143
7144 * editfns.c (Fpropertize): Renamed from Fproperties.
7145
7146 1999-09-29 Gerd Moellmann <gerd@gnu.org>
7147
7148 * xdisp.c (resize_mini_window): Do nothing if frame is an X
7149 frame that hasn't been initialized yet.
7150
7151 1999-09-28 Richard M. Stallman <rms@gnu.org>
7152
7153 * keymap.c (Fsingle_key_description): Make tem big enough.
7154 (describe_buffer_bindings): Make buf big enough.
7155
7156 1999-09-27 Richard M. Stallman <rms@gnu.org>
7157
7158 * intervals.c (get_local_map): Use indirect_function,
7159 not Findirect_function.
7160
7161 1999-09-27 Dave Love <fx@gnu.org>
7162
7163 * cm.h: Remove unneeded declaration of ospeed.
7164
7165 1999-09-26 Gerd Moellmann <gerd@gnu.org>
7166
7167 * lisp.h (toplevel): Add prototype for
7168 next_single_char_property_change.
7169
7170 * textprop.c (next_single_char_property_change): New.
7171
7172 * xdisp.c (display_prop_end, invisible_text_between_p): Use
7173 next_single_char_property_change.
7174
7175 1999-09-25 Gerd Moellmann <gerd@gnu.org>
7176
7177 * editfns.c (Fproperties): New.
7178 (syms_of_editfns): Defsubr it.
7179
7180 * xfns.c (lookup_image): Set image's timestamp because it's
7181 used when we look it up.
7182
7183 1999-09-23 Gerd Moellmann <gerd@gnu.org>
7184
7185 * window.c (enlarge_window): Add window parameter instead of using
7186 selected_window.
7187 (Fdisplay_buffer): Call it with window parameter instead of
7188 setting selected_window.
7189 (Fenlarge_window, Fshrink_window): Ditto.
7190 (shrink_mini_window): If there is no recorded height and position
7191 info, resize mini-window to height 1.
7192
7193 * xfns.c (image_error): Use add_to_log.
7194
7195 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
7196 (load_face_font_or_fontset, load_color,
7197 merge_face_vector_with_property): Ditto.
7198
7199 * dispextern.h: Add prototype for add_to_log.
7200
7201 * xfaces.c (add_to_log): Move to xdisp.c.
7202
7203 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
7204 parameter.
7205
7206 1999-09-23 Gerd Moellmann <gerd@gnu.org>
7207
7208 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
7209 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
7210
7211 * xdisp.c (resize_mini_window): Use grow_mini_window and
7212 shrink_mini_window.
7213
7214 * window.c (window_min_size): Add parameter ignore_fixed_p.
7215 (change_window_height): Call window_min_size with new parameter.
7216 (shrink_window_lowest_first, save_restore_orig_size,
7217 grow_mini_window, shrink_mini_window): New.
7218 (make_window, replace_window): Initialize orig_top and
7219 orig_height.
7220 (enlarge_window): Renamed from change_window_height. Make it
7221 static.
7222 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
7223 enlarge_window instead of change_window_height.
7224
7225 * window.h (struct window): New members orig_top, orig_height.
7226 (toplevel): Add prototypes for grow_mini_window and
7227 shrink_mini_window. Remove prototype for change_window_height.
7228
7229 1999-09-21 Eli Zaretskii <eliz@gnu.org>
7230
7231 * frame.c (frame_name_fnn_p): Fix previous change.
7232
7233 1999-09-20 Gerd Moellmann <gerd@gnu.org>
7234
7235 * minibuf.c (toplevel): Move include of stdio.h to other includes.
7236
7237 * dispnew.c (direct_output_for_insert): Cast arguments to
7238 safe_bcopy to char *.
7239
7240 * lread.c (readchar): Remove unused variables.
7241 (read_filtered_event, read1, Fmapatoms): Ditto.
7242 (toplevel): Include intervals.h.
7243
7244 * eval.c (Fsignal): Remove unused variables.
7245 (Fcommandp, do_autoload): Ditto.
7246
7247 * lisp.h: Add prototype for safe_bcopy, fatal.
7248
7249 * editfns.c (init_editfns): Remove unused variables.
7250 (Fgoto_char, Fchar_after, Fformat): Ditto.
7251 (message_text, message_length): Put in #ifndef HAVE_MENUS.
7252
7253 * data.c (find_symbol_value): Remove unused variables.
7254 (Faref, Fstring_to_number): Ditto.
7255 (toplevel): Include stdio.h.
7256 (Fnumber_to_string): Cast XINT to long for %ld.
7257
7258 * casefiddle.c (casify_object): Remove unused variables.
7259 (casify_region): Ditto.
7260
7261 * filelock.c (get_boot_time): Put local variable used in
7262 conditinally compiled section in #ifdef.
7263 (toplevel): Include stdio.h.
7264
7265 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
7266 keys_of_keymap, syms_of_keymap): Remove unused variables.
7267
7268 1999-09-20 Gerd Moellmann <gerd@gnu.org>
7269
7270 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
7271 whose corresponding window rows have been disabled in
7272 try_window_id.
7273
7274 1999-09-20 Gerd Moellmann <gerd@gnu.org>
7275
7276 * xdisp.c (compute_window_start_on_continuation_line): Handle case
7277 that window start is out of range.
7278 (handle_display_prop, handle_single_display_prop): Replace
7279 marginal area specifications like `left-margin' with `(margin
7280 left-margin)'.
7281 (Qmargin): New.
7282 (syms_of_xdisp): Initialize Qmargin.
7283
7284 1999-09-19 Gerd Moellmann <gerd@gnu.org>
7285
7286 * syntax.c (update_syntax_table, find_defun_start, back_comment,
7287 describe_syntax, skip_chars): Remove unused variables.
7288 (back_comment, forw_comment): Add braces to if-statement with
7289 if-else as dependent statement.
7290
7291 * process.c (list_processes_1): Remove unused variables.
7292 (Fopen_network_stream, create_process): Add parentheses to
7293 conditional expressions.
7294 (create_process): Put declaration of sigchld in #if 0.
7295 (Fopen_network_stream): Removed unused variables.
7296 (Fopen_network_stream, wait_reading_process_input,
7297 wait_reading_process_input, send_process, send_process): Ditto.
7298 (toplevel): Add prototypes for set_waiting_for_input and
7299 keyboard_bit_set.
7300
7301 * abbrev.c (Fexpand_abbrev): Remove unused variables.
7302
7303 * textprop.c (Fset_text_properties): Remove unused variables.
7304 (text_property_list, verify_interval_modification,
7305 interval_has_all_properties): Ditto.
7306
7307 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7308 (Fcall_process): Remove unused variable.
7309
7310 * keyboard.c (Frecursive_edit): Remove unused variable.
7311 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
7312 timer_check, make_lispy_event, menu_bar_items,
7313 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
7314 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
7315 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
7316 read_key_sequence): Ditto. Fread_key_sequence,
7317 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
7318 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
7319 used when GOBBLE_FIRST_EVENT is defined in #ifdef
7320 (Fexecute_extended_command): Cast XINT to long for %ld.
7321 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7322 (toplevel): Include sys/types.h.
7323
7324 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
7325 (toplevel): Add prototypes for stuff_char, and
7326 code_convert_string_norecord.
7327
7328 1999-09-19 Gerd Moellmann <gerd@gnu.org>
7329
7330 * buffer.h: Add prototype for r_re_alloc.
7331
7332 * insdel.c (copy_text): Removed unused variables.
7333 (count_combining_after, count_combining_after, insert_1_both,
7334 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
7335 (adjust_after_replace, replace_range): Add parentheses to logical
7336 expressions. Remove unused variables.
7337 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
7338 expression.
7339
7340 * alloc.c (Fgarbage_collect): Remove unused variable.
7341 (compact_strings): Add parentheses around assignments in
7342 conditional context.
7343 (toplevel): Put declaration of unused function clear_marks
7344 in #if 0 like its definition.
7345
7346 * lisp.h: Add prototype for shrink_regexp_cache,
7347 sweep_weak_hash_tables.
7348
7349 1999-09-19 Dave Love <fx@gnu.org>
7350
7351 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
7352
7353 * doc.c (read_bytecode_char): Declare arg.
7354
7355 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
7356 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
7357
7358 1999-09-18 Richard Stallman <rms@gnu.org>
7359
7360 * xdisp.c (echo_area_display): Turn off code that returned
7361 without doing anything when using a terminal frame.
7362
7363 1999-09-17 Richard M. Stallman <rms@gnu.org>
7364
7365 * unexelf.c (unexec): Don't get confused by a short section
7366 just before the bss section.
7367
7368 1999-09-16 Gerd Moellmann <gerd@gnu.org>
7369
7370 * emacs.c (main): Remove unused variables.
7371 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
7372
7373 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
7374 init_fileio_once, syms_of_sound, init_xfns, init_fns
7375 init_sound, check_message_stack.
7376
7377 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7378
7379 * intervals.c (rotate_right, rotate_left): Add braces to avoid
7380 ambiguous else warning.
7381 (split_interval_left): Remove unused variables.
7382 (previous_interval, adjust_intervals_for_deletion,
7383 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
7384 (icount, idepth, zero_length): Move into #if 0 section below
7385 original position where these are used.
7386
7387 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
7388
7389 * buffer.c (Fkill_buffer): Remove unused variables.
7390 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
7391 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
7392 init_buffer_once, (syms_of_buffer): Ditto.
7393
7394 * xrdb.c (get_fallback): Remove unused variable.
7395 (x_load_resources): Ditto. Put local variable used for Motif only
7396 in #ifdef USE_MOTIF.
7397
7398 1999-09-16 Gerd Moellmann <gerd@gnu.org>
7399
7400 * minibuf.c (read_minibuf): Remove unused variables.
7401 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
7402 (do_completion): Move assignment out of conditional context.
7403 (Fdisplay_completion_list): Add parentheses to conditional expression.
7404
7405 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
7406
7407 * lisp.h: Add prototype for no_switch_window.
7408
7409 * window.c (Fset_window_buffer): Remove unused variables.
7410 (Fset_window_margins): Ditto.
7411
7412 * xdisp.c (resize_mini_window): Temporarily set the selected
7413 window's or Vminibuf_scroll_window's height to "fixed" around
7414 the call the change_window_height.
7415
7416 * window.c (window_fixed_size_p): Check window's height_fixed_p
7417 flag.
7418
7419 * window.h (struct window): New member height_fixed_p.
7420
7421 * dispnew.c (direct_output_forward_char): Don't use this method
7422 if showing a message or a message was just cleared because we
7423 might need to resize the mini-window.
7424
7425 1999-09-16 Gerd Moellmann <gerd@gnu.org>
7426
7427 * frame.c (Fdelete_frame): Correct local variable pointing to
7428 selected frame after selecting new frame.
7429
7430 1999-09-15 Richard Stallman <rms@gnu.org>
7431
7432 * puresize.h (BASE_PURESIZE): Increase to 525000.
7433
7434 * filelock.c (Vtemporary_file_directory): New variable.
7435 (syms_of_filelock): Set up Lisp variable.
7436
7437 1999-09-15 Gerd Moellmann <gerd@gnu.org>
7438
7439 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7440 (encode_terminal_code): Remove unused variables.
7441 (turn_off_face): Ditto.
7442 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7443
7444 * dispnew.c (update_frame_line): If writing whole desired line,
7445 don't clear to end of line if already at the end.
7446
7447 1999-09-15 Gerd Moellmann <gerd@gnu.org>
7448
7449 * xdisp.c (resize_mini_window): Don't report changed window
7450 height if it actually hasn't changed.
7451
7452 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
7453 unused variables.
7454 (mark_shell_size_user_specified): Put in #if 0 because not used.
7455 (create_frame_gcs): Put in #if 0 because currently unused.
7456 (first_frame_p): Ditto.
7457
7458 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7459 single_submenu, update_frame_menubar, set_frame_menubar,
7460 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7461 variables.
7462
7463 * print.c (PRINTFULLP): Removed because it is no longer used and
7464 is misleading.
7465 (Ferror_message_string): Remove unused variables.
7466 (print_object): Cast argument of sprintf to long for `%ld'
7467 specifier. Remove unused variable.
7468
7469 1999-09-14 Gerd Moellmann <gerd@gnu.org>
7470
7471 * sound.c (Fplay_sound): Remove usused variables.
7472 (be2hs): Put in #if 0 because it's currently not used.
7473
7474 1999-09-14 Ken Raeburn <raeburn@gnu.org>
7475
7476 * print.c (Ferror_message_string, print_error_message,
7477 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7478 member access.
7479
7480 1999-09-14 Gerd Moellmann <gerd@gnu.org>
7481
7482 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7483
7484 * frame.c (Fnext_frame): Remove unused variable(s).
7485 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7486 (store_frame_param): Add parentheses to conditional expression.
7487 (Fmodify_frame_parameters): Remove unused variables.
7488 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7489 Ditto.
7490
7491 * xfns.c (x_set_background_color): Remove unused variable(s).
7492 (x_set_border_pixel): Ditto.
7493 (x_set_menu_bar_lines): Put local variable used only for
7494 non-toolkit case in #ifdef/#endif.
7495 (x_figure_window_size): Remove unused variable(s).
7496 (x_figure_window_size, x_window, lookup_image,
7497 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7498 png_load, jpeg_load, gif_load, x_create_tip_frame,
7499 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7500
7501 * xterm.c (x_scroll_bar_handle_click): Compile only if
7502 not USE_TOOLKIT_SCROLL_BARS.
7503 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7504
7505 * dispextern.h: Add prototypes for gamma_correct and
7506 x_kill_gs_process.
7507
7508 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7509 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7510 x_set_toolkit_scroll_bar_thumb): Ditto.
7511 (x_scroll_bar_create): Move local variable to the
7512 conditionally compiled section of code where it is used.
7513 (x_scroll_bar_create): Remove unused variable(s).
7514 (x_scroll_bar_remove, XTread_socket): Ditto.
7515 (XTread_socket) <ConfigureNotify>: Move variables used for
7516 non-toolkit case into conditionally compiled section of code.
7517
7518 * window.h (freeze_window_starts): Fix typo in prototype.
7519
7520 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7521 variable(s).
7522
7523 * lisp.h: Add prototype for debug_print.
7524
7525 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7526 to use do-while.
7527
7528 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7529 (Fchar_table_range, Fset_char_table_default, mapcar1,
7530 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7531
7532 * lisp.h: Add prototype for getloadavg.
7533
7534 1999-09-14 Andreas Schwab <schwab@gnu.org>
7535
7536 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7537
7538 * lisp.h: Declare close_file_unwind.
7539
7540 1999-09-14 Richard Stallman <rms@gnu.org>
7541
7542 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7543
7544 1999-09-13 Gerd Moellmann <gerd@gnu.org>
7545
7546 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7547 is always set correctly.
7548
7549 1999-09-13 Dave Love <fx@gnu.org>
7550
7551 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7552 declaration.
7553
7554 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7555
7556 * xdisp.c (QCfile): Move here from xfns.c.
7557 (syms_of_xdisp): Initialize it.
7558 (message2_nolog): Change for Lisp_Object selected_frame.
7559 (message3_nolog, message_with_string, message,
7560 setup_echo_area_for_printing, truncate_echo_area,
7561 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7562
7563 1999-09-13 Dave Love <fx@gnu.org>
7564
7565 * xterm.c: Don't continue #define args for benefit of old cc.
7566 (xt_action_hook): Indent #error for benefit of K&R cc.
7567
7568 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7569
7570 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7571 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7572 (XRINGBELL): Removed.
7573
7574 1999-09-13 Dave Love <fx@gnu.org>
7575
7576 * xfns.c (x_put_x_image): Make type consistent with declaration.
7577
7578 * fns.c (Fmake_hash_table): Fix string continuation.
7579
7580 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7581
7582 * xfns.c (QCfile): Moved to xdisp.c.
7583 (syms_of_xfns): Don't initialize QCfile.
7584 (check_x_frame): Change for Lisp_Object selected_frame.
7585 (check_x_display_info, x_get_resource_string): Ditto.
7586
7587 1999-09-13 Gerd Moellmann <gerd@gnu.org>
7588
7589 * minibuf.c (choose_minibuf_frame): Don't try to set the
7590 mini-buffer window's buffer, if the buffer is invalid.
7591
7592 * xfns.c (QCfile): Moved to xdisp.c.
7593 (syms_of_xfns): Don't initialize QCfile.
7594
7595 * xdisp.c (QCfile): Move here from xfns.c.
7596 (syms_of_xdisp): Initialize it.
7597
7598 * lisp.h (selected_frame): Add external declaration.
7599
7600 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7601 (Fx_store_cut_buffer_internal): Ditto.
7602 (Fx_rotate_cut_buffers_internal): Ditto.
7603
7604 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7605 selected_frame.
7606 (Finternal_set_lisp_face_attribute): Ditto.
7607 (Finternal_get_lisp_face_attribute): Ditto.
7608 (Finternal_lisp_face_empty_p): Ditto.
7609 (Fdump_face): Ditto.
7610
7611 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7612 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7613 set_terminal_window, set_scroll_region, reassert_line_highlight,
7614 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7615 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7616 encode_terminal_code, write_glyphs, term_init): Ditto.
7617
7618 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7619 (kbd_input_ast, read_input_waiting): Ditto.
7620
7621 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7622 selected_frame.
7623 (read_minibuf): Ditto.
7624
7625 * keyboard.c (command_loop_1): Change for Lisp_Object
7626 selected_frame.
7627 (cmd_error_internal, command_loop_1, read_char,
7628 kbd_buffer_get_event, read_avail_input,
7629 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7630 interrupt_signal, quit_throw_to_read_char): Ditto.
7631
7632 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7633 (Ffontset_info): DItto.
7634
7635 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7636
7637 * dispnew.c (selected_frame): Make it a Lisp_Object.
7638 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7639 (direct_output_for_insert, direct_output_forward_char,
7640 init_display): Ditto.
7641
7642 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7643 selected_frame.
7644 (set_internal): Ditto.
7645
7646 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7647 (record_buffer): Ditto.
7648
7649 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7650 (do_switch_frame): Change for Lisp_Object selected_frame.
7651 (Fselected_frame): Ditto.
7652 (Fframe_first_window): Use SELECTED_FRAME.
7653 (Fframe_root_window): Change for Lisp_Object selected_frame.
7654 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7655 Fprevious_frame, other_visible_frames, Fdelete_frame,
7656 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7657 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7658 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7659 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7660 Fset_frame_height, Fset_frame_width): Ditto.
7661
7662 1999-09-13 Gerd Moellmann <gerd@gnu.org>
7663
7664 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7665 (message3_nolog, message_with_string, message,
7666 setup_echo_area_for_printing, truncate_echo_area,
7667 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7668
7669 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7670 (Fx_popup_dialog): Ditto.
7671
7672 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7673 (check_x_display_info, x_get_resource_string): Ditto.
7674
7675 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7676 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7677 (XRINGBELL): Removed.
7678
7679 * window.c (Fminibuffer_window): Change for Lisp_Object
7680 selected_frame.
7681 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7682 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7683 Fcurrent_window_configuration, init_window_once): Ditto.
7684
7685 * frame.h (SELECTED_FRAME): New.
7686
7687 1999-09-12 Ken Raeburn <raeburn@gnu.org>
7688
7689 * category.c (word_boundary_p): Use XCAR and XCDR.
7690 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7691 Fregister_code_conversion_map): Likewise.
7692 * coding.c (setup_coding_system, detect_coding_system,
7693 Ffind_operation_coding_system, Fset_coding_priority_internal):
7694 Likewise.
7695 * doc.c (get_doc_string, Fdocumentation,
7696 store_function_docstring): Likewise.
7697 * editfns.c (save_restriction_restore): Likewise.
7698 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7699 skip_debugger, find_handler_clause, Fautoload, Fapply,
7700 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7701 Likewise.
7702 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7703 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7704 Fread_file_name): Likewise.
7705 * filelock.c (unlock_all_files): Likewise.
7706 * insdel.c (Fcombine_after_change_execute): Likewise.
7707 * intervals.c (adjust_intervals_for_insertion): Likewise.
7708 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7709 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7710 store_in_keymap, Fcopy_keymap, define_as_prefix,
7711 current_minor_maps, Faccessible_keymaps,
7712 accessible_keymaps_char_table, Fkey_description,
7713 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7714 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7715 describe_map): Likewise.
7716 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7717 read_list, init_lread): Likewise.
7718 * search.c (Fmatch_data): Likewise.
7719 * sunfns.c (Fsun_menu_internal): Likewise.
7720 * syntax.c (describe_syntax): Likewise.
7721 * undo.c (record_insert, record_delete, Fundo_boundary,
7722 truncate_undo_list): Likewise.
7723 * vmsproc.c (child_sig): Likewise.
7724
7725 * editfns.c (Fformat): Use XFLOAT_DATA.
7726
7727 1999-09-12 Gerd Moellmann <gerd@gnu.org>
7728
7729 * keyboard.c (command_loop_1): Resize mini-window to the
7730 exact size of a message displayed, if any.
7731
7732 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7733 to exact size if exact_p is non-zero.
7734 (display_echo_area_1): Call resize_mini_window with
7735 new parameter.
7736 (redisplay_internal): Ditto.
7737 (resize_echo_area_axactly): New.
7738
7739 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7740 new parameter.
7741
7742 * dispextern.h: Change prototype of resize_mini_window.
7743 Add prototype for resize_echo_area_axactly.
7744
7745 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7746 (syms_of_xfaces): Defsubr accordingly.
7747
7748 * xdisp.c (hscroll_window_tree): Choose cursor row from
7749 desired or current matrix.
7750 (redisplay_internal): Hscroll before updating.
7751
7752 1999-09-12 Gerd Moellmann <gerd@gnu.org>
7753
7754 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7755 of minibuffer_prompt_length.
7756
7757 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7758 of minibuffer_prompt_length.
7759 (read_minibuf_unwind): Ditto.
7760 (Fminibuffer_complete_and_exit): Ditto.
7761 (Fminibuffer_complete_word): Ditto.
7762 (Fminibuffer_prompt_end): Ditto.
7763
7764 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7765 of minibuffer_prompt_length.
7766 (Fline_beginning_position): Ditto.
7767
7768 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7769 of minibuffer_prompt_length.
7770 (Fmake_indirect_buffer): Ditto.
7771 (Fkill_buffer): Ditto.
7772 (Ferase_buffer): Ditto.
7773
7774 * buffer.h (prompt_end_charpos): Replaces
7775 minibuffer_prompt_length.
7776
7777 * minibuf.c (read_minibuf): Return mini-buffer contents
7778 without the prompt.
7779
7780 * editfns.c (make_buffer_string_both): Take out the code
7781 to handle mini-buffer prompts.
7782 (Fbuffer_string): Handle the prompt here, instead.
7783
7784 * xfaces.c (lface_from_face_name): Resolve face aliases.
7785 (Qmode_line): Replaces Qmodeline.
7786 (realize_basic_faces): Use Qmode_line.
7787 (syms_of_xfaces): Initialize Qmode_line.
7788
7789 1999-09-12 Gerd Moellmann <gerd@gnu.org>
7790
7791 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7792 current column after inserting prompt.
7793 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7794
7795 * xfaces.c (Qframe_update_face_colors): New.
7796 (syms_of_xfaces): Initialize call.
7797 (update_face_from_frame_parameter): Call that function when
7798 the frame's background changes.
7799
7800 1999-09-12 Richard Stallman <rms@gnu.org>
7801
7802 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7803
7804 1999-09-12 Ken Raeburn <raeburn@gnu.org>
7805
7806 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7807 mark_object, mark_buffer): Use XCAR and XCDR.
7808 * bytecode.c (Fbyte_code): Likewise.
7809 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7810 Likewise.
7811 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7812 getenv_internal): Likewise.
7813 * dired.c (file_name_completion): Likewise.
7814 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7815 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7816 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7817 * indent.c (Fcompute_motion): Likewise.
7818 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7819 list_processes_1, Fstart_process, Fopen_network_stream,
7820 wait_reading_process_input, read_process_output_call,
7821 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7822 status_notify, wait_reading_process_input): Likewise.
7823 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7824 extend_property_ranges): Likewise.
7825 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7826 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7827 x_report_frame_params, x_set_cursor_type, x_icon_type,
7828 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7829 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7830 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7831 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7832 x_display_info_for_name, Fx_display_list): Likewise.
7833 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7834 Fx_popup_menu, Fx_popup_dialog): Likewise.
7835 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7836 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7837 w32_term_init, x_delete_display): Likewise.
7838 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7839 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7840 x_top_window_to_frame, x_set_frame_parameters,
7841 x_report_frame_params, x_set_cursor_type, x_icon_type,
7842 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7843 Fx_display_list, x_create_tip_frame): Likewise.
7844 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7845 Fx_popup_menu, Fx_popup_dialog): Likewise.
7846 * xselect.c (x_own_selection, x_get_local_selection,
7847 x_handle_selection_request, x_handle_selection_clear,
7848 x_clear_frame_selections, wait_for_property_change_unwind,
7849 wait_for_property_change, x_handle_property_notify,
7850 copy_multiple_data, x_get_foreign_selection,
7851 lisp_data_to_selection_data, clean_local_selection_data,
7852 x_handle_selection_notify, Fx_get_selection_internal,
7853 x_disown_buffer_selections): Likewise.
7854 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7855 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7856 Likewise.
7857
7858 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7859 XFLOAT_DATA.
7860 * bytecode.c (Fbyte_code): Likewise.
7861 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7862 fmod_float): Likewise.
7863
7864 1999-09-11 Richard Stallman <rms@gnu.org>
7865
7866 * xdisp.c (run_window_scroll_functions): If hook functions switch
7867 buffers, switch back after.
7868
7869 1999-09-11 Ken Raeburn <raeburn@gnu.org>
7870
7871 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7872 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7873 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7874 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7875 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7876 XCDR.
7877 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7878 XCDR.
7879
7880 1999-09-10 Richard Stallman <rms@gnu.org>
7881
7882 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7883 not RevertToPointerRoot.
7884 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7885 Fix the code to clear around the scroll bar.
7886
7887 1999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7888
7889 * print.c: Support print-circle and related features.
7890 (Vprint_gensym_alist): Removed.
7891 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7892 Vprint_number_table): New variables.
7893 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7894 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7895 (print, print_preprocess, print_preprocess_string, print_object):
7896 New/modified functions with print-circle feature. Use
7897 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7898 (syms_of_print): Defined new Lisp variables `print-circle',
7899 `print-continuous-numbering', `print-number-table'.
7900
7901 1999-09-10 Gerd Moellmann <gerd@gnu.org>
7902
7903 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7904 as background color specification instead of an integer.
7905 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7906 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7907 (clear_image_cache, syms_of_xfns): Use it.
7908 (Qpostscript): Replaces Qghostscript.
7909 (gs_type): Use it.
7910 (gs_image_p): Ditto.
7911 (syms_of_xfns): Initialize Qpostscript.
7912
7913 1999-09-10 Richard Stallman <rms@gnu.org>
7914
7915 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7916
7917 1999-09-09 Richard Stallman <rms@gnu.org>
7918
7919 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7920
7921 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7922
7923 1999-09-09 Gerd Moellmann <gerd@gnu.org>
7924
7925 * fns.c (Fmakehash): Accept just one optional argument TEST.
7926
7927 * xfns.c (QCindex): New.
7928 (syms_of_xfns): Initialize QCindex.
7929 (gif_load): Use it instead of `:image'.
7930
7931 1999-09-09 Richard Stallman <rms@gnu.org>
7932
7933 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7934 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7935
7936 1999-09-08 Gerd Moellmann <gerd@gnu.org>
7937
7938 * xdisp.c (Qwhen): Replaces QCwhen.
7939 (syms_of_xdisp): Initialized it instead of QCwhen.
7940 (handle_single_display_prop): Use it instead of QCwhen.
7941
7942 1999-09-08 Ken'ichi Handa <handa@gnu.org>
7943
7944 * charset.c (translate_char): Reset MSBs of arguments of
7945 MAKE_CHAR.
7946 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7947
7948 1999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7949
7950 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7951
7952 * fns.c (Fbase64_decode_region): Don't place point outside of the
7953 current accessible portion.
7954
7955 1999-09-07 Richard Stallman <rms@gnu.org>
7956
7957 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7958 parent is an ancestor of SUBMAP; otherwise, add it as the
7959 ultimate ancestor.
7960
7961 1999-09-07 Gerd Moellmann <gerd@gnu.org>
7962
7963 * xdisp.c (handle_single_display_prop): Change conditional
7964 display property to `:when FORM . VALUE'.
7965
7966 1999-09-07 Richard Stallman <rms@gnu.org>
7967
7968 * fileio.c (Fwrite_region): Doc fix.
7969
7970 1999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7971
7972 * fileio.c (Qexcl): New variable.
7973 (report_file_error): Handle EEXIST specially.
7974 (Fwrite_region): Special handling for CONFIRM = `excl'.
7975 (syms_of_fileio): Initialize Qexcl.
7976
7977 1999-09-07 Gerd Moellmann <gerd@gnu.org>
7978
7979 * xfns.c (x_set_foreground_color): Call
7980 update_face_from_frame_parameter.
7981 (x_set_background_color): Ditto.
7982 (x_set_mouse_color): Ditto.
7983 (x_set_cursor_color): Ditto.
7984 (x_set_border_color): Ditto.
7985 (x_set_scroll_bar_foreground): Ditto.
7986 (x_set_scroll_bar_background): Ditto.
7987
7988 * xfaces.c (recompute_basic_faces): Clear face cache.
7989 (Finternal_set_lisp_face_attribute): Modify frame parameters
7990 if attributes of certain faces are changed.
7991 (update_face_from_frame_parameter): New.
7992
7993 * xfaces.c (realize_basic_faces): Realize new basic faces.
7994
7995 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7996 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7997
7998 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7999 (syms_of_xfaces): Intialize new symbols.
8000
8001 * fns.c (Fmakehash): Take one argument, test, make all the
8002 rest keyword arguments.
8003
8004 * window.c (Fset_window_margins): Make window the first argument.
8005 (set_window_buffer): Call Fset_window_margins with window as first
8006 argument.
8007
8008 1999-09-07 Gerd Moellmann <gerd@gnu.org>
8009
8010 * xfaces.c (Qfringe): Replaces Qmargin.
8011
8012 1999-09-07 Kenichi Handa <handa@etl.go.jp>
8013
8014 * charset.h: Lots of comments fixed.
8015 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
8016 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
8017
8018 * charset.c : Lots of comments fixed.
8019 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
8020 (CHAR_COMPONENTS_VALID_P): Name changed from
8021 CHAR_COMPONENT_VALID_P. Caller changed.
8022
8023 1999-09-06 Richard Stallman <rms@gnu.org>
8024
8025 * insdel.c (syms_of_insdel): Define Lisp variable
8026 inhibit-modification-hooks.
8027
8028 1999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
8029
8030 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
8031 unexaix.c.
8032
8033 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
8034
8035 1999-09-06 Dave Love <fx@gnu.org>
8036
8037 * unexaix.c: New version incorporating Michael Sperber's changes
8038 from XEmacs. Should solve problems on AIX 4.3.
8039
8040 * lread.c (Vbyte_boolean_vars): New variable.
8041 (defvar_bool, syms_of_lread): Use it.
8042
8043 1999-09-05 Richard Stallman <rms@gnu.org>
8044
8045 * minibuf.c (read_minibuf): Put all three properties on the
8046 same range, the whole prompt.
8047
8048 1999-09-05 Gerd Moellmann <gerd@gnu.org>
8049
8050 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
8051 (Fplay_sound, syms_of_sound): Use it.
8052 (parse_sound): Allow float volume values in the range [0, 1].
8053 (Fplay_sound): Ditto.
8054
8055 * window.c (Fset_window_vscroll): Make window the first argument,
8056 amount to scroll the second. Take non-negative vscroll as
8057 argument.
8058 (Fwindow_vscroll): Return non-negative vscroll.
8059
8060 * xfns.c (Fx_show_tip): Improve documentation.
8061
8062 1999-09-05 Gerd Moellmann <gerd@gnu.org>
8063
8064 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
8065 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
8066 `top-line' and `top_line' to `header-line' and `header_line'.
8067 Likewise for similar spellings.
8068
8069 1999-09-05 Gerd Moellmann <gerd@gnu.org>
8070
8071 * xdisp.c (row_containing_pos): New.
8072 (try_window_id): Use it.
8073
8074 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
8075 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
8076 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
8077 Likewise for upper-case etc.
8078
8079 1999-09-05 Gerd Moellmann <gerd@gnu.org>
8080
8081 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
8082 Fix reference to renamed variable.
8083
8084 1999-09-04 Gerd Moellmann <gerd@gnu.org>
8085
8086 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
8087 (window_fixed_size_p): Use Qwindow_size_fixed instead of
8088 Qfixed_window_size.
8089 (syms_of_window): Ditto.
8090
8091 * fns.c (Fmakehash): Exchange optional test and size arguments.
8092
8093 1999-09-03 Gerd Moellmann <gerd@gnu.org>
8094
8095 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
8096 under newly created scroll bar.
8097 (expose_window): If window is not yet fully initialized, do
8098 nothing. This can happen when toolkit scroll bars are used and a
8099 window is split. Reconfiguring the scroll bars will generate an
8100 expose for a newly created window.
8101
8102 * frame.h (struct frame): New member `gamma'.
8103
8104 * xfns.c: Include math.h. Add extern declaration for atof in case
8105 we don't see one.
8106 (Qscreen_gamma): New.
8107 (struct x_frame_parm_table): Add prototypes, add
8108 x_set_screen_gamma.
8109 (gamma_correct): New function.
8110 (defined_color): Call it.
8111 (x_set_screen_gamma): New.
8112 (x_set_title): Add parameter old_value.
8113 (RES_TYPE_FLOAT): New.
8114 (x_get_arg): Handle RES_TYPE_FLOAT.
8115 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
8116 (lookup_pixel_color): Change call to x_alloc_nearest_color to
8117 new prototype.
8118 (lookup_rgb_color): Ditto.
8119 (syms_of_xfns): Initialize Qscreen_gamma.
8120
8121 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
8122 New. Allocate color for lwlib widgets.
8123 (x_alloc_nearest_color): Change parameter list include the
8124 frame on which to allocate colors. Gamma-correct colors.
8125 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
8126 parameter list.
8127
8128 * xterm.h: Change protorype of x_alloc_nearest_color.
8129
8130 1999-09-03 Richard Stallman <rms@gnu.org>
8131
8132 * callproc.c: Delete the system-independent include of stdlib.h
8133 (leaving only the one in the WINDOWSNT conditional).
8134
8135 1999-09-03 Andrew Choi <choi@cs.hku.hk>
8136
8137 * callproc.c (call-process) [macintosh]: Call mac_run_command in
8138 sysdep.c. The Mac code is modeled after the DOS code.
8139
8140 * dispextern.h [macintosh]: Include macterm.h to define substitute X
8141 Window types and macros.
8142
8143 * frame.h: Do nothing if included a second time.
8144 (enum output_method): Add mac_output frame type.
8145 (union output_data): Add new alternative `mac'.
8146 (FRAME_MAC_P): New macro.
8147
8148 * frame.c (Fframep) [macintosh]: Handle mac frame type.
8149 (syms_of_frame_1): Initialize Qmac.
8150 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
8151 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
8152 (Fmodify_frame_parameters) [macintosh]: Call
8153 mac_set_frame_parameter in macterm.c.
8154
8155 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
8156 (512) because Mac compilers limit local data of a function to 32K.
8157
8158 * make-docfiles.c: Correctly handle input files with Mac-style
8159 eol's.
8160
8161 * sysdep.c: Define numerous routines to emulate Unix system calls.
8162
8163 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
8164 file of an X Window environment.
8165
8166 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
8167 x-display-grayscale, x-color-defined-p, and x-color-values.
8168
8169 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
8170 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
8171 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
8172 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
8173 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
8174 New functions, replacing POSIX features.
8175
8176 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
8177 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
8178 (InitEmacsPasswdDir, run_mac_command): New subroutines.
8179
8180 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
8181 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
8182 (myPasswdDir, TempDirName, sys_siglist): New variables.
8183
8184 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
8185 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
8186 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
8187 Define empty stubs so Emacs will link.
8188
8189 1999-09-03 Gerd Moellmann <gerd@gnu.org>
8190
8191 * xdisp.c: Use XCAR and XCDR instead of XCONS.
8192
8193 * window.h: New member frozen_window_start_p.
8194
8195 * window.c (foreach_window, foreach_window_1): New.
8196 (freeze_window_start, freeze_window_starts): New.
8197 (make_window): Initialize frozen_window_start_p.
8198 (replace_window): Ditto.
8199 (Fset_window_point): Remove references to deleted variables.
8200 (Fset_window_start): Ditto.
8201
8202 * xdisp.c (Vresize_mini_config, resize_mini_frame,
8203 resize_mini_initial_height): Removed.
8204 (syms_of_xdisp): Remove references to these variables.
8205 (resize_mini_window): Don't save window configuration, freeze
8206 window starts instead. Enlarge window until displaying an empty
8207 buffer, then shrink it. Make the function externally visible.
8208 (redisplay_window): Treat frozen window start like forced start,
8209 but accept point outside of the window.
8210
8211 * dispextern.h: Add function prototype for resize_mini_window.
8212
8213 * minibuf.c (read_minibuf_unwind): Resize mini-window when
8214 reaching minibuf_level 0.
8215
8216 * lisp.h: Remove extern declarations for variables deleted from
8217 xdisp.c.
8218
8219 * dispnew.c (adjust_frame_glyphs): Remove reference to
8220 Vresize_mini_config.
8221
8222 1999-09-03 Gerd Moellmann <gerd@gnu.org>
8223
8224 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
8225 to USE_TOOLKIT_SCROLL_BARS.
8226
8227 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
8228 here.
8229 (XTset_vertical_scroll_bar): Clarify position computations. Clear
8230 under newly created scroll bar. Put toolkit scroll bars in the
8231 middle of the area reserved for the scroll bar.
8232
8233 1999-09-03 Kenichi Handa <handa@etl.go.jp>
8234
8235 The following changes are for the new handling of mulitbyte
8236 sequence. Now, except for a composite character, no multibyte
8237 character in string/buffer has trailing garbage bytes. For
8238 instance, the length of string "\201\300\300" is now 2, the first
8239 character is Latin-1 A-grave, the second is raw \300.
8240
8241 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
8242 are negative.
8243 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
8244 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
8245 (PARSE_COMPOSITE_SEQ): New macro.
8246 (PARSE_CHARACTER_SEQ): New macro.
8247 (PARSE_MULTIBYTE_SEQ): New macro.
8248 (CHAR_PRINTABLE_P): New macro.
8249 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
8250 (STRING_CHAR_AND_LENGTH): Likewise.
8251 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
8252 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
8253 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
8254
8255 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
8256 (SPLIT_CHARACTER_SEQ): New macro.
8257 (SPLIT_MULTIBYTE_SEQ): New macro.
8258 (CHAR_COMPONENT_VALID_P): New macro.
8259 (non_ascii_char_to_string): Generate a multibyte sequence as far
8260 as possible.
8261 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
8262 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
8263 (split_non_ascii_string): Likewise.
8264 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
8265 (char_printable_p): New function.
8266 (translate_char): Check character by NATNUMP instead of INTEGERP.
8267 (unibyte_char_to_multibyte): Call char_valid_p instead of
8268 VALID_MULTIBYTE_CHAR_P.
8269 (Fmake_char_internal): Check the arguments more rigidly.
8270 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
8271 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
8272 (Fmultibyte_char_to_unibyte): Check the validity of character by
8273 CHAR_VALID_P.
8274 (chars_in_text): Call multibyte_chars_in_text.
8275 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
8276 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
8277 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
8278
8279 * data.c (Faset): Adjust the way to check byte-combining
8280 possibility for the new handling of multibyte sequence.
8281
8282 * editfns.c (Fsubst_char_in_region): Likewise.
8283
8284 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
8285 (string_char_to_byte): Likewise.
8286 (string_byte_to_char): Likewise.
8287
8288 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
8289 macro STRING_CHAR_AND_LENGTH. Caller changed.
8290
8291 * insdel.c (count_combining_composition): New function.
8292 (count_combining_before): Adjust the way to check byte-combining
8293 possibility for the new handling of multibyte sequence. Call
8294 count_combining_composition for a composite character.
8295 (count_combining_after): Likewise.
8296
8297 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
8298 (print): Likewise.
8299
8300 * dispextern.h (struct it): Change the size of the member
8301 `ctl_chars'.
8302
8303 * xdisp.c (get_next_display_element): Display incomplete multibyte
8304 sequence (e.g. \222\300) by octal form.
8305
8306 1999-09-02 Gerd Moellmann <gerd@gnu.org>
8307
8308 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
8309
8310 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
8311 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
8312
8313 1999-09-02 Gerd Moellmann <gerd@gnu.org>
8314
8315 * buffer.c (set_buffer_internal): Never set
8316 windows_or_buffers_changed.
8317
8318 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
8319 if we have displayed to the bottom of the window.
8320
8321 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
8322 in both directions. Extend documentation.
8323
8324 1999-09-01 Gerd Moellmann <gerd@gnu.org>
8325
8326 * minibuf.c (read_minibuf): Flush display after setting cursor to
8327 column 0.
8328
8329 1999-08-31 Gerd Moellmann <gerd@gnu.org>
8330
8331 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
8332 already defined. This avoids a warning from buffer.c.
8333
8334 1999-08-30 Gerd Moellmann <gerd@gnu.org>
8335
8336 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
8337 of both margins.
8338 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
8339 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
8340 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
8341
8342 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
8343 once instead of twice.
8344 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
8345
8346 * xterm.c: Remove unused bitmaps.
8347 (continued_bits, continuation_bits, overlay_bits): Change images.
8348 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
8349 instead of FRAME_X_FLAGS_AREA_WIDTH.
8350 (x_after_update_window_line): Ditto.
8351 (x_draw_bitmap): Likewise.
8352 (x_draw_row_bitmaps): Likewise.
8353 (x_draw_glyph_string_box): Likewise.
8354 (x_draw_glyphs): Likewise.
8355 (x_scroll_run): Likewise.
8356 (expose_window_tree): Likewise.
8357 (note_mode_line_highlight): Likewise.
8358 (XTset_vertical_scroll_bar): Likewise.
8359 (x_clip_to_row): Likewise.
8360 (x_set_window_size): Likewise.
8361
8362 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
8363 of 2 * that value.
8364
8365 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
8366 2 * that value.
8367 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
8368 FRAME_FLAGS_AREA_WIDTH.
8369
8370 * window.c (coordinates_in_window): Use
8371 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8372 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
8373 instead of twice.
8374
8375 * widget.c (set_frame_size): Set flags_area_extra to
8376 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
8377 (EmacsFrameSetCharSize): Ditto.
8378
8379 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
8380 instead of FRAME_FLAGS_AREA_WIDTH.
8381
8382 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
8383 FRAME_FLAGS_AREA_COLS once.
8384 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
8385 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8386
8387 1999-08-30 Gerd Moellmann <gerd@gnu.org>
8388
8389 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
8390 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
8391
8392 1999-08-30 Gerd Moellmann <gerd@gnu.org>
8393
8394 * fns.c (QCweakness): Replaces QCweak.
8395 (Fmake_hash_table): Ditto.
8396 (Fmakehash): Ditto.
8397 (syms_of_fns): Ditto.
8398
8399 1999-08-29 Richard Stallman <rms@gnu.org>
8400
8401 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
8402
8403 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
8404
8405 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
8406 Add support for nested comments.
8407
8408 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
8409 Consolidate the forward comment code into the new `forw_comment'.
8410 (forw_comment): New subroutine. Added support for nested comments.
8411 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
8412 (Fparse_partial_sexp): Add support for nested comments.
8413
8414 1999-08-28 Ken Raeburn <raeburn@gnu.org>
8415
8416 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
8417 names of structure elements if HIDE_LISP_IMPLEMENTATION is
8418 defined, to help detect code that uses knowledge of the Lisp
8419 internals that it shouldn't have.
8420 (XFLOAT_DATA): New macro.
8421
8422 1999-08-25 Gerd Moellmann <gerd@gnu.org>
8423
8424 * syntax.c (Fforward_word): If in a mini-buffer and moving
8425 backwards, stop in front of the prompt to prevent accidentially
8426 moving into the read-only prompt.
8427
8428 * window.c (Frecenter): Clear frame if called with nil or no arg.
8429
8430 * xdisp.c (resize_mini_window): Don't resize if
8431 Vmax_mini_window_height is nil. Otherwise, use a default if
8432 Vmax_mini_window_height is not ot a number.
8433 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8434
8435 1999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8436
8437 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8438 * m/iris4d.h: Use unexelf for IRIX 5.*.
8439 * m/iris5d.h: Use unexelf for IRIX 6.*.
8440 * unexsgi.c: Deleted.
8441
8442 * unexelf.c: Auto-detect .sbss section.
8443 (round_up): Make it static.
8444 (unexec): Declare alignment as Elf Word. Skip ``Program
8445 segment above .bss'' test on MIPS without .sbss.
8446 Copy sections .got and .sdata1 sections. Adjust offsets in
8447 sections .sdata, .lit4, .lit8, .got and .sdata1.
8448
8449 1999-08-25 Gerd Moellmann <gerd@gnu.org>
8450
8451 * xdisp.c (try_window_id): Remove typo.
8452
8453 1999-08-24 Gerd Moellmann <gerd@gnu.org>
8454
8455 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8456 unchanged text at the bottom when computing the cursor position.
8457 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8458 set.
8459
8460 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8461
8462 1999-08-24 Gerd Moellmann <gerd@gnu.org>
8463
8464 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8465 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8466 (syms_of_xfaces): Ditto.
8467
8468 * window.c (Fset_window_point): Reset Vresize_mini_config.
8469 (Fset_window_start): Ditto.
8470 (set_window_buffer): Ditto.
8471
8472 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8473
8474 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8475 before calling try_window.
8476 (echo_area_display): If height has changed, update other windows.
8477 (resize_mini_frame, resize_mini_initial_height): New.
8478 (resize_mini_window): Save/restore window configuration
8479 differently.
8480
8481 * lisp.h (Vresize_mini_config, resize_mini_frame,
8482 resize_mini_initial_height): Add extern declarations.
8483
8484 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8485 CANON_X_UNIT.
8486
8487 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8488 being redefined in jconfig.h.
8489
8490 1999-08-23 Ken'ichi Handa <handa@gnu.org>
8491
8492 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8493
8494 1999-08-22 Gerd Moellmann <gerd@gnu.org>
8495
8496 * alloc.c (mark_glyph_matrix): Mark strings only.
8497
8498 * xdisp.c (redisplay_internal): Clear garbaged frames after
8499 resizing mini-window.
8500
8501 1999-08-22 Gerd Moellmann <gerd@gnu.org>
8502
8503 * xdisp.c (unwind_with_echo_area_buffer): Use
8504 set_buffer_internal_1 instead of set_buffer_internal.
8505 (with_echo_area_buffer): Ditto.
8506
8507 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8508 only if buffer is displayed somewhere.
8509
8510 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8511
8512 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8513 (gap_right): Ditto.
8514 (modify_region): Ditto.
8515
8516 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8517
8518 * xdisp.c (Vresize_mini_config): New.
8519 (resize_mini_window): Use it to save restore original window
8520 configuration
8521 (syms_of_xdisp): Initialize it.
8522
8523 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8524
8525 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8526
8527 * xdisp.c (reconsider_clip_changes): New.
8528 (redisplay_internal, redisplay_window): Call it.
8529 (mark_window_display_accurate, redisplay_internal): Set current
8530 matrix' buffer, begv, zv.
8531
8532 * window.c (Fset_window_hscroll): Set
8533 prevent_redisplay_optimizations_p instead of clip_changed.
8534 (Fset_window_hscroll): Ditto.
8535 (temp_output_buffer_show): Ditto.
8536 (Fset_window_vscroll): Ditto.
8537
8538 * buffer.c (reset_buffer): Set clip_changed to 0 and
8539 prevent_redisplay_optimizations_p to 1.
8540 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8541
8542 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8543 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8544 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8545 END_UNCHANGED): New.
8546 (struct buffer_text): Add beg_unchanged, end_unchanged,
8547 unchanged_modified, overlay_unchanged_modified.
8548
8549 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8550 overlay_unchanged_modified): Removed.
8551 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8552 (unwind_with_echo_area_buffer): Don't restore them.
8553 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8554 (text_outside_line_unchanged_p, redisplay_internal,
8555 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8556 (redisplay_window): Let try_window_id be called if more than one
8557 window is displayed. Use/set buffer-specific beg/end_unchanged.
8558 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8559 try_window_id):
8560 Use buffer-specific beg/end_unchanged.
8561
8562 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8563 overlay_unchanged_modified): Remove extern declarations.
8564
8565 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8566 buffer.
8567
8568 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8569 (gap_right): Ditto.
8570 (adjust_after_replace): Likewise.
8571 (replace_range, del_range_2, modify_region): Likewise.
8572
8573 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8574 and unchanged_modified per buffer.
8575
8576 * coding.c (code_convert_region): Compute beg/end_unchanged per
8577 buffer.
8578
8579 * buffer.c (modify_overlay): Compute beg/end_unchanged
8580 per buffer.
8581 (Fget_buffer_create): Initialize new members of the buffer
8582 structure.
8583
8584 1999-08-22 Gerd Moellmann <gerd@gnu.org>
8585
8586 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8587
8588 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8589 (Qkey_value_weak): Removed.
8590 (make_hash_table): Use nil, `key', `value', t for weakness.
8591 (Fmake_hash_table): Ditto.
8592 (copy_hash_table): New.
8593 (Fcopy_hash_table): New.
8594
8595 1999-08-22 Gerd Moellmann <gerd@gnu.org>
8596
8597 * xfns.c: Call change_frame_size and do_pending_window_change with
8598 new parameter.
8599
8600 1999-08-21 Gerd Moellmann <gerd@gnu.org>
8601
8602 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8603 well.
8604 (redisplay_internal): Resize mini-window only if text might
8605 have changed.
8606 (display_echo_area): Reset displayed echo_area_buffer to nil
8607 at the end if we're displaying a nil message.
8608
8609 1999-08-21 Gerd Moellmann <gerd@gnu.org>
8610
8611 * fns.c (hash_lookup): Test with EQ before calling key comparion
8612 function.
8613 (hash_remove): Ditto.
8614 (cmpfn_eq): Removed.
8615 (cmpfn_eql): Don't test with EQ.
8616 (cmpfn_equal): Ditto.
8617 (make_hash_table): Set comparison function for `eq' to null.
8618
8619 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8620 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8621
8622 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8623
8624 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8625 xterm.c: Call change_frame_size and do_pending_window_change with
8626 new parameter.
8627
8628 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8629 (change_frame_size): Ditto.
8630 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8631 and not called from a safe place.
8632 (window_change_signal): Call change_frame_size with new parameter.
8633
8634 * dispextern.h: Change prototypes for do_pending_window_change
8635 and change_frame_size.
8636
8637 * xfaces.c (face_at_buffer_position): Don't xassert that
8638 window's buffers equals current_buffer; this is not the
8639 case during echo area display.
8640
8641 1999-08-21 Gerd Moellmann <gerd@gnu.org>
8642
8643 * xdisp.c, minibuf.c: Remove conditional compilation on
8644 NO_PROMPT_IN_BUFFER.
8645
8646 * minibuf.c (Fminibuffer_prompt_end): New.
8647 (syms_of_minibuf): Defsubr it. Remove
8648 minibuffer-prompt-in-buffer.
8649 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8650 Extend documentation.
8651
8652 * xdisp.c (get_next_display_element): Display \r as ^M.
8653
8654 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8655 under scroll bar widget.
8656
8657 1999-08-21 Gerd Moellmann <gerd@gnu.org>
8658
8659 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8660 anywhere.
8661 (unwind_redisplay): Return nil.
8662 (clear_garbaged_frames): New.
8663 (redisplay_internal): Use it.
8664 (echo_area_display): Ditto.
8665 (resize_mini_window): Mew.
8666 (display_echo_area_1): Use it to resize echo area window.
8667 (redisplay_internal): Use it to resize active mini-window.
8668
8669 * dispextern.h, lisp.h: Add function prototypes.
8670
8671 * dispnew.c (set_window_cursor_after_update): Do the
8672 cursor_in_echo_area case only for a mini-window showing
8673 a message. Don't let cursor end up after the end of a row.
8674
8675 * xdisp.c (echo_area_glyphs, echo_area_message,
8676 echo_area_glyphs_length, previous_echo_glyphs,
8677 previous_echo_area_message, previous_echo_area_glyphs_length):
8678 Removed.
8679 (Vmessage_stack, echo_area_buffer, echo_buffer,
8680 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8681 (message2_nolog): Use set_message and clear_message.
8682 (message3): Rename parameter len to nbytes to make clear what
8683 it is.
8684 (message3_nolog): Ditto. Use set_message and clear_message.
8685 (update_echo_area): Rewritten.
8686 (with_echo_area_buffer): New.
8687 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8688 (setup_echo_area_for_printing): New.
8689 (display_echo_area, display_echo_area_1): New.
8690
8691 (current_message, current_message_1): New.
8692 (push_message, restore_message, pop_message,
8693 check_message_stack): New.
8694 (truncate_echo_area): Rewritten.
8695 (truncate_message_1): New.
8696 (set_message, set_message_1, clear_message): New.
8697 (echo_area_display): Rewritten.
8698 (redisplay_internal): Check for needed echo area update
8699 differently.
8700 (redisplay_preserve_echo_area): Rewritten.
8701 (redisplay_window): Check for mini-window displaying echo area
8702 message differently.
8703 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8704 Remove initialzation of removed variables.
8705 (init_xdisp): Remove references to removed variables.
8706
8707 * dispnew.c (adjust_frame_message_buffer): Removed references
8708 to echo_area_glyphs and previous_echo_glyphs.
8709 (direct_output_for_insert): Check for mini-window displaying
8710 echo area message differently.
8711 (update_frame): Likewise.
8712 (set_window_cursor_after_update): Likewise. In echo area,
8713 don't try to set cursor on rows that aren't enabled.
8714
8715 * print.c: Remove conditional compilation on `standalone'.
8716 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
8717 glyph_to_str_cpy): Remove that section because GLYPHs are no
8718 longer used in that way.
8719 (PRINTDECLARE): Add multibyte.
8720 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8721 (printbufidx): Removed.
8722 (printchar, strout): Rewritten.
8723
8724 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8725 a struct kboard.
8726 (echo_kboard): New.
8727 (echo_now): Set echo_kboard to the current kboard.
8728 (cancel_echoing): Set echo_kboard to null.
8729 (cmd_error_internal): Use clear_message, remove references
8730 to echo_area_glyphs and echo_area_message.
8731 (command_loop_1): Check for echo area messages differently.
8732 (read_char): Likewise.
8733 (record_menu_key): Use clear_message.
8734 (Fexecute_extended_command): Check for echo area messages
8735 differently. Use push_message, restore_message, pop_message.
8736
8737 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8738 pop_message.
8739
8740 * emacs.c (shut_down_emacs): Call check_message_stack.
8741
8742 * lisp.h: Add function prototypes and extern declarations for
8743 new functions and variables.
8744
8745 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8746 pop_message.
8747
8748 * minibuf.c (read_minibuf): Use clear_message instead of
8749 setting echo_area_glyphs.
8750 (Fminibuffer_completion_help): Ditto.
8751
8752 * editfns.c (Fcurrent_message): Rewritten.
8753
8754 * frame.c, window.h: Remove references to echo_area_glyphs
8755 and previous_echo_glyphs.
8756
8757 1999-08-21 Dave Love <fx@gnu.org>
8758
8759 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8760 * aix4-1.h: Likewise.
8761
8762 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8763
8764 1999-08-20 Gerd Moellmann <gerd@gnu.org>
8765
8766 * xfns.c: Remove tiff34 prefix from include.
8767
8768 1999-08-20 Dave Love <fx@gnu.org>
8769
8770 * cm.c: Revert previous change.
8771
8772 1999-08-19 Gerd Moellmann <gerd@gnu.org>
8773
8774 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8775 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8776
8777 1999-08-18 Dave Love <fx@gnu.org>
8778
8779 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8780 stdlib.h.
8781
8782 * doprnt.c: Use stdlib.h, unistd.h.
8783
8784 * config.in: Add HAVE_TERMCAP_H.
8785
8786 * cm.c: Use termcap.h.
8787
8788 1999-08-18 Gerd Moellmann <gerd@gnu.org>
8789
8790 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8791 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8792 cannot be created we will already have crashed earlier. Call
8793 lw_set_main_areas with a null menu-bar widget, so that we have
8794 a reasonable default.
8795 (Fx_create_frame): Rearranged so that Lisp errors during frame
8796 initialization cause less damage. Initialize menu bar widget
8797 here.
8798
8799 1999-08-18 Gerd Moellmann <gerd@gnu.org>
8800
8801 * dispnew.c (update_frame_line): Fix previous change. If writing
8802 whole line clear to end of frame.
8803
8804 1999-08-17 Gerd Moellmann <gerd@gnu.org>
8805
8806 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8807 and `right-bitmap-area' if position is in the bitmap areas. This
8808 avoids an error when clicking on the bitmap areas. Instead, they
8809 are currently treated like clicks inside the window.
8810 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8811 (Qleft_bitmap_area, Qright_bitmap_area): New.
8812 (syms_of_window): Initialize new symbols.
8813
8814 * dispnew.c (update_frame_line): If writing whole line,
8815 don't write trailing spaces unless we must.
8816
8817 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8818 (redisplay_internal): Register unwind_redisplay with
8819 register_unwind_protect.
8820 (try_window_reusing_current_matrix): If new start > old start,
8821 give up if start pos of first reusable row is not equal to new
8822 start.
8823
8824 * eval.c (Fsignal): Don't reset redisplaying_p here.
8825
8826 * xterm.c (expose_area): If row extends face to end of line,
8827 write the whole line.
8828
8829 1999-08-16 Gerd Moellmann <gerd@gnu.org>
8830
8831 * dispextern.h (struct it): Remove member
8832 show_trailing_whitespace_p.
8833
8834 * dispnew.c (direct_output_for_insert): Use
8835 Vshow_trailing_whitespace instead of former iterator member
8836 show_trailing_whitespace_p.
8837 (direct_output_forward_char): Don't do it if hightlighting
8838 trailing whitespace.
8839
8840 * xdisp.c (Qshow_trailing_whitespace): Removed.
8841 (Vshow_trailing_whitespace): Added.
8842 (init_iterator): Remove initialization code for
8843 show_trailing_whitespace_p.
8844 (redisplay_internal): Don't try cursor movement in this_line
8845 if showing trailing whitespace.
8846 (redisplay_window): Likewise for cursor movement in current
8847 matrix and try_window_id.
8848 (try_window_reusing_current_matrix): Likewise.
8849 (trailing_whitespace_p): Return 0 if trailing whitespace is
8850 in front of point.
8851 (display_line): Use Vshow_trailing_whitespace instead of
8852 former iterator member show_trailing_whitespace_p.
8853 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8854
8855 1999-08-16 Gerd Moellmann <gerd@gnu.org>
8856
8857 * window.c (Fpos_visible_in_window_p): Rewritten.
8858
8859 * xfaces.c (add_to_log): Renamed from display_message.
8860 Don't display messages in echo area.
8861
8862 * xterm.c (x_draw_glyph_string_box): Use the background width
8863 of the glyph string for the width of the box.
8864
8865 1999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8866
8867 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8868
8869 1999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8870
8871 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8872 background first, and then set other parameters that might
8873 depend upon their new values.
8874
8875 1999-08-15 Gerd Moellmann <gerd@gnu.org>
8876
8877 * xfaces.c (Vfont_list_limit): New.
8878 (syms_of_xfaces): Make it a user-variable.
8879 (DEFAULT_FONT_LIST_LIMIT): New.
8880 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8881 maximally that number of fonts, otherwise use
8882 DEFAULT_FONT_LIST_LIMIT.
8883 (Fx_font_family_list): Bind `font-list-limit' to higher values
8884 until we have all fonts.
8885 (Fxfont_list): Additionally return the full names of fonts and
8886 their registry and encoding.
8887
8888 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
8889 Simplify clearing "under" scroll bar.
8890
8891 * window.c (Qfixed_window_size): New.
8892 (syms_of_window): Initialiaze it.
8893 (check_all_windows): Add return type void.
8894 (window_fixed_size_p): New. Return non-zero if window
8895 is fixed-size.
8896 (window_min_size_1): New.
8897 (window_min_size): Handle fixed-size windows.
8898 (size_window): New. Rewritten combination of set_window_height and
8899 set_window_width that handles fixed-size windows.
8900 (set_window_height): Call it.
8901 (set_window_width): Call it.
8902 (Fsplit_window): Give an error on attempt to split a fixed-size
8903 window.
8904 (change_window_height): Partly rewritten to handle fixed-size
8905 windows.
8906
8907 1999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8908
8909 * process.c (Fopen_network_stream): Fix previous change.
8910
8911 1999-08-13 Karl Heuer <kwzh@gnu.org>
8912
8913 * xdisp.c (line_number_display_limit_width): New var.
8914 (decode_mode_spec): Use it instead of hardcoded value.
8915 (syms_of_xdisp): Defvar it.
8916
8917 1999-08-13 Richard M. Stallman <rms@gnu.org>
8918
8919 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8920 (run_hook_with_args): Likewise.
8921
8922 * window.h (struct window): New field too_small_ok.
8923
8924 * window.c (set_window_height, set_window_width):
8925 If window starts out "too small", set its too_small_ok flag.
8926 If window's too_small_ok flag is set, don't delete it
8927 unless it is so small it would cause a crash.
8928
8929 1999-08-13 Gerd Moellmann <gerd@gnu.org>
8930
8931 * window.c (MINSIZE): Removed.
8932 (window_min_size): New.
8933 (set_window_height): Use window_min_size.
8934 (change_window_height): Ditto.
8935
8936 1999-08-12 Gerd Moellmann <gerd@gnu.org>
8937
8938 * indent.c (vmotion): Don't add in mini-buffer prompt width
8939 if prompts are inserted into mini-buffer.
8940
8941 1999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8942
8943 * config.in: Add HAVE_GETADDRINFO.
8944 * process.c (Fopen_network_stream): Use getaddrinfo.
8945
8946 1999-08-11 Gerd Moellmann <gerd@gnu.org>
8947
8948 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8949 glyphs to -1.
8950
8951 * xdisp.c (face_before_or_after_it_pos): If position after
8952 or before iterator's current position in the buffer is out
8953 of bounds, return the iterator's original face id.
8954
8955 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8956 just swap glyphs pointers between current and desired row.
8957 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8958 desired matrix method string to current matrix.
8959
8960 1999-08-11 Kenichi Handa <handa@etl.go.jp>
8961
8962 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8963
8964 * lread.c (read_escape): For Control modifier, pay attention to
8965 multibyte character.
8966 (read1): Likewise. Singal error or a multibyte character which
8967 has a modifer bit. Check validity of Shift modifer.
8968
8969 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8970 the same as Lisp reader.
8971
8972 1999-08-10 Richard M. Stallman <rms@gnu.org>
8973
8974 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8975
8976 1999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8977
8978 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8979
8980 1999-08-10 Eli Zaretskii <eliz@gnu.org>
8981
8982 * msdos.c (IT_set_face): Abort if the default face is not realized
8983 and cached.
8984 (IT_write_glyphs): Reset the screen face to the default face
8985 before writing glyphs.
8986
8987 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8988 colors from the frame here.
8989 (realize_tty_face) [MSDOS]: Do it here. Update the face
8990 attributes with the actual name of the color taken from the
8991 frame.
8992
8993 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8994 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8995
8996 * frame.c (Fframe_parameters): Swap foreground and background
8997 colors returned in frame parameters if the frame has reverse in
8998 its parameter alist.
8999 (Fmake_terminal_frame): Make a unique copy of face_alist for
9000 each frame.
9001
9002 1999-08-07 Richard Stallman <rms@gnu.org>
9003
9004 * buffer.c (Fprevious_overlay_change): Just return
9005 the answer obtained from overlays_at.
9006
9007 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
9008 Use XpmCloseness and attrs.closeness instead.
9009
9010 1999-08-06 Richard Stallman <rms@gnu.org>
9011
9012 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
9013
9014 1999-08-06 Geoff Voelker <voelker@cs.washington.edu>
9015
9016 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
9017 Ffile_attributes_lessp): New functions.
9018 (Fdirectory_files): Use directory_files_internal.
9019 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
9020 Ffile_attributes_lessp.
9021
9022 * w32.c (stat): Check for directory ending in separator when
9023 doing readdir fast path.
9024
9025 * w32fns.c (x_set_icon_type): Support setting frame icons.
9026 * w32term.c (x_bitmap_icon): New function.
9027 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
9028
9029 1999-08-06 Gerd Moellmann <gerd@gnu.org>
9030
9031 * xdisp.c (set_iterator_to_next): After delivering a character
9032 from a display vector, restore face and charset to what they were
9033 before the display vector was processed.
9034
9035 1999-08-06 Gerd Moellmann <gerd@gnu.org>
9036
9037 * xdisp.c (reseat_at_next_visible_line_start): New parameter
9038 on_newline_p.
9039 (set_iterator_to_next): After delivering last char
9040 from display vector, reseat on next visible line start if
9041 dpvec_char_len < 0.
9042 (next_element_from_buffer): Set dpvec_char_len to -1 for
9043 selective display.
9044
9045 1999-08-06 Gerd Moellmann <gerd@gnu.org>
9046
9047 * xdisp.c (compute_line_metrics): If first line's physical ascent
9048 is larger than its logical ascent, use the physical ascent, and
9049 make the row taller. Set row's overlapping_p flag.
9050
9051 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
9052 (direct_output_for_insert): Ditto.
9053
9054 * dispextern.h (struct glyph_row): Add overlapping_p.
9055
9056 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
9057
9058 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
9059 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
9060
9061 * dispnew.c (direct_output_for_insert): Don't use this method if
9062 row is overlapped by others.
9063 (update_text_area): Write full line if current line is overlapped.
9064 (redraw_overlapped_rows): New.
9065 (update_window): Call it.
9066 (redraw_overlapping_rows): New.
9067 (update_window): Call it.
9068 (scrolling_window): Make sure overlapped_p flag in current rows is
9069 unchanged.
9070 (row_equal_p): Take rows overlapped_p flag into account.
9071
9072 * dispextern.h (struct glyph_row): Add flag overlapped_p.
9073
9074 * xterm.c (x_fix_overlapping_area): New.
9075 (x_redisplay_interface): Add x_fix_overlapping_area.
9076
9077 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
9078
9079 1999-08-06 Gerd Moellmann <gerd@gnu.org>
9080
9081 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
9082 (struct glyph_string): Add member for_overlaps_p.
9083 (x_get_glyph_string_clip_rect): If glyph string draws foreground
9084 of overlapping rows, clip to window bottom.
9085 (x_fill_glyph_string): Add parameter overlaps_p.
9086 (x_fill_composite_glyph_string): Ditto.
9087 (BUILD_GLYPH_STRINGS): Ditto.
9088 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
9089 (x_draw_glyph_string): Don't draw anything but the foreground
9090 if glyph string draws row overlaps.
9091
9092 * dispnew.c (direct_output_for_insert): Don't use this
9093 optimization for rows that overlap others.
9094 (update_window_line): Return non-zero if display has changed.
9095 (update_text_area): Ditto.
9096 (update_window): Record if display has been changed.
9097
9098 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
9099
9100 * dispextern.h (struct redisplay_interface): Add
9101 fix_overlapping_area.
9102
9103 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
9104
9105 * dispextern.h (struct glyph): Add overlaps_vertically_p.
9106
9107 * xterm.c (x_produce_image_glyph): Compute iterator's physical
9108 ascent and descent.
9109 (x_produce_stretch_glyph): Ditto.
9110 (x_produce_glyphs): Ditto.
9111
9112 * xdisp.c (init_iterator): Reset physical line height info
9113 after producing special glyphs.
9114 (display_toolbar_line): Set physical line height info.
9115 (compute_line_metrics): Ditto.
9116 (display_line): Ditto.
9117 (display_string): Ditto.
9118
9119 * term.c (produce_glyphs): Set iterator's physical height
9120 information.
9121
9122 * dispnew.c (blank_row): Compute glyph row's physical height.
9123 (row_equal_p): Take physical row heights into account.
9124 (direct_output_for_insert): Ditto.
9125 (update_text_area): Ditto.
9126
9127 * dispextern.h (struct glyph_row): Add phys_ascent and
9128 phys_height.
9129 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
9130 max_phys_descent.
9131
9132 1999-08-04 Stefan Monnier <monnier@cs.yale.edu>
9133
9134 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
9135 Fswitch_to_buffer.
9136 (no_switch_buffer): New function.
9137 (Fswitch_to_buffer): Call them. Don't get confused
9138 by "same-window" buffers in a dedicated frame.
9139
9140 * window.c (display-buffer): Don't get confused
9141 by "same-window" buffers in a dedicated frame.
9142
9143 1999-08-04 Andreas Schwab <schwab@gnu.org>
9144
9145 * insdel.c (insert_from_string_1): Check gap size against number
9146 of outgoing bytes, not incoming bytes.
9147
9148 1999-08-03 Tom Breton <tob@world.std.com>
9149
9150 * lread.c (read1): Added circular reading code to #N=.
9151 (SUBSTITUTE): New macro.
9152 (seen_list): New variable.
9153 (substitute_object_in_subtree): New function.
9154 (substitute_object_recurse): New function.
9155 (substitute_in_interval): New function.
9156
9157 1999-08-02 Eli Zaretskii <eliz@gnu.org>
9158
9159 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
9160
9161 * frame.c (make_terminal_frame): Don't call init_frame_faces if
9162 noninteractive, for termcap frames as well.
9163
9164 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
9165 frames.
9166
9167 1999-08-01 Richard Stallman <rms@gnu.org>
9168
9169 * fns.c (internal_equal): Correct overlay comparison.
9170
9171 1999-07-31 Richard M. Stallman <rms@gnu.org>
9172
9173 * xfns.c (x_set_internal_border_width):
9174 Call do_pending_window_change. Don't block input, don't call XFlush.
9175 (x_set_vertical_scroll_bars): Call do_pending_window_change.
9176 (x_set_scroll_bar_width, x_set_font): Likewise.
9177
9178 * frame.c (Fset_frame_height): Call do_pending_window_change.
9179 (Fset_frame_width, Fset_frame_size): Likewise.
9180
9181 * xterm.c (x_set_window_size): When calling change_frame_size,
9182 specify 1 for DELAY.
9183
9184 * widget.c (EmacsFrameSetCharSize): Don't call
9185 do_pending_window_change here.
9186
9187 1999-07-30 Dave Love <fx@gnu.org>
9188
9189 * config.in: Add HAVE_STDLIB_H.
9190
9191 1999-07-30 Richard M. Stallman <rms@gnu.org>
9192
9193 * process.c (create_process): Detect failure of `pipe'.
9194
9195 1999-07-30 Keisuke Nishida <kei@psn.net>
9196
9197 * alloc.c (allocate_vectorlike): Add missing increment.
9198
9199 * data.c (Fdefalias): Call Ffset instead of duplicating code.
9200
9201 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
9202 before calling indirect_function.
9203
9204 1999-07-30 Eli Zaretskii <eliz@gnu.org>
9205
9206 * dispextern.h (load_color, lookup_derived_face): Declare
9207 prototypes.
9208
9209 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
9210 it will be done later.
9211
9212 * frame.c (make_terminal_frame) [MSDOS]: Don't call
9213 init_frame_faces if non-interactive.
9214 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
9215 array with a call to msdos_stdcolor_name. The font name is now
9216 "ms-dos", consistent with realize_tty_face.
9217
9218 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
9219 MSDOS frame.
9220
9221 * window.c (Fset_window_configuration) [MSDOS]: Don't call
9222 x_set_toolbar_lines.
9223
9224 * xfaces.c (load_color): Remove static from definition and remove
9225 prototype.
9226 [MSDOS]: Add a DOS-specific version of load_color.
9227 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
9228 (lookup_derived_face): New function.
9229 (realize_default_face): Support MSDOS frames.
9230 [MSDOS]: If fore/background colors are unspecified, inherit them
9231 from the frame.
9232 (realize_face): Support MSDOS frames.
9233 (realize_tty_face): Support MSDOS frames.
9234 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
9235 load_color to try to find a suitable approximation. If the face
9236 is inverse-video, swap the foreground and background colors.
9237
9238 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
9239 functions.
9240
9241 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
9242
9243 * msdos.h: Remove redundant declarations (most of them are now in
9244 dispextern.h).
9245
9246 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
9247 Use default frame colors if the face doesn't specify them; invert
9248 the colors if highlight is ON.
9249 (IT_write_glyphs): Rewritten for the new redisplay engine.
9250 (IT_change_line_highlight): Add (unused) parameter Y, since that's
9251 how the hook is called by term.c.
9252 (IT_copy_glyphs): New function, copies an area of the display in
9253 video RAM.
9254 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
9255 redisplay now calls it even if char_ins_del_ok is zero.
9256 (IT_set_frame_parameters): Prototype changed. Calls the new
9257 load_color. Puts the new fore/background colors into the default
9258 face on current frame.
9259 (IT_menu_display): Rewritten to handle the new struct glyph
9260 instead of a char array.
9261 (XMenuActivate): Call lookup_derived_face to create and use
9262 special faces for the pop-up and drop-down menus.
9263
9264 1999-07-29 Gerd Moellmann <gerd@gnu.org>
9265
9266 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
9267 XawScrollbarSetThumb if thumb parameters haven't changed because
9268 that function apparently isn't optimized for this case.
9269
9270 1999-07-29 Eli Zaretskii <eliz@gnu.org>
9271
9272 * msdos.c (getdefdir): Don't return failure indication when
9273 _fixpath sets errno to ENOSYS.
9274
9275 1999-07-28 Gerd Moellmann <gerd@gnu.org>
9276
9277 * xdisp.c (string_char_and_length): New. Use it everywhere
9278 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
9279
9280 1999-07-28 Kenichi Handa <handa@etl.go.jp>
9281
9282 * fns.c (count_combining): New function.
9283 (struct textprop_rec): New structure.
9284 (concat): Copy text properties correctly when byte combining
9285 occurs.
9286
9287 1999-07-28 Gerd Moellmann <gerd@gnu.org>
9288
9289 * xterm.c (x_setup_relief_color): Don't try smart color allocation
9290 if display is mono.
9291 (x_draw_row_bitmaps): If face has stipple, don't switch
9292 to foreground color for clearing areas, and set the fill style.
9293
9294 * xfaces.c (load_face_colors): Load background color if setting
9295 stipple, too.
9296 (prepare_face_for_display): Use FillOpaqueStippled instead of
9297 FillStippled.
9298
9299 1999-07-26 Ken'ichi Handa <handa@gnu.org>
9300
9301 * xterm.c (x_find_ccl_program): Add casting.
9302
9303 * w32fns.c (w32_find_ccl_program): Add casting.
9304
9305 1999-07-27 Gerd Moellmann <gerd@gnu.org>
9306
9307 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
9308
9309 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
9310 because this will try to access a nonexisting widget.
9311
9312 1999-07-26 Markus Rost <rost@gnu.org>
9313
9314 * fns.c (Fgethash): Fix order of variables (patch by gerd).
9315 (Fputhash): Ditto.
9316 (Fremhash): Ditto.
9317
9318 1999-07-26 Gerd Moellmann <gerd@gnu.org>
9319
9320 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
9321 value to frame width and height.
9322
9323 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
9324 into account for full-width windows. Don't add scroll bar width
9325 to width of clip rect.
9326 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
9327 (x_set_glyph_string_background_width): Add 1 to background width.
9328 (x_draw_glyphs): Take internal border into account for full-width
9329 lines.
9330
9331 1999-07-26 Richard M. Stallman <rms@gnu.org>
9332
9333 * xfns.c (x_set_mouse_color): Always unload the old color.
9334 Don't allow nil as color value.
9335 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
9336 Always unload the old color.
9337
9338 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
9339
9340 1999-07-26 Karl Heuer <kwzh@gnu.org>
9341
9342 * fns.c (Fy_or_n_p): Doc fix.
9343
9344 1999-07-26 Kenichi Handa <handa@etl.go.jp>
9345
9346 * ccl.h (setup_ccl_program): The type is changed to `int'.
9347
9348 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
9349 stored in the following CCL code. Adjusted for the change of
9350 Vccl_program_table.
9351 (resolve_symbol_ccl_program): Adjusted for the new style of
9352 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
9353 is resolving failed.
9354 (ccl_get_compiled_code): New function.
9355 (setup_ccl_program): Function type changed from `void' to `int'.
9356 Resolve symbols in CCL_PROG.
9357 (Fccl_program_p): New function.
9358 (Fccl_execute): Get compiled CCL code by just calling
9359 setup_ccl_program.
9360 (Fccl_execute_on_string): Likewise.
9361 (Fregister_ccl_program): Adjusted for the change of
9362 Vccl_program_table.
9363
9364 * coding.c (setup_coding_system): Get compiled CCL code by just
9365 calling setup_ccl_program.
9366
9367 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
9368 calling setup_ccl_program.
9369
9370 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
9371 calling setup_ccl_program.
9372
9373 1999-07-23 Gerd Moellmann <gerd@gnu.org>
9374
9375 * xfaces.c (frame_update_line_height): Just use the height of the
9376 frame's fontset or font, instead of taking face fonts into
9377 account.
9378
9379 * xdisp.c (get_next_display_element): Display DEL as `^?'.
9380
9381 1999-07-23 Richard M. Stallman <rms@gnu.org>
9382
9383 * window.c (Fsplit_window): For default size, round up for left window.
9384
9385 1999-07-21 Joe Ramey <ramey@ti.com>
9386
9387 * filelock.c (lock_if_free): Return -1 if check_lock_owner
9388 has returned -1 (lockfile exists but is not a symlink?).
9389
9390 1999-07-20 Gerd Moellmann <gerd@gnu.org>
9391
9392 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
9393 because of a change in cursor_gc made in 20.4.
9394
9395 1999-07-19 Gerd Moellmann <gerd@gnu.org>
9396
9397 * xterm.c (x_calc_absolute_position): Subtract menu bar height
9398 for YNegative, if using X toolkit.
9399
9400 * xfns.c (x_real_positions): Don't subtract window borders
9401 from positions returned.
9402
9403 1999-07-17 Gerd Moellmann <gerd@gnu.org>
9404
9405 * xrdb.c (x_load_resources): Set double-click time defaults
9406 for Motif list boxes from double-click-time.
9407
9408 * fns.c (Vhash_table_tests): Remvoed.
9409 (Qhash_table_test): New.
9410 (syms_of_fns): Initialize Qhash_table_test.
9411 (Fmake_hash_table): Look up user-defined tests in symbol prop
9412 `hash-table-test'.
9413 (Fdefine_hash_table_test): Store test and hash function as
9414 symbol prop `hash-table-test'.
9415 (make_hash_table): Add parameters user_test and user_hash.
9416
9417 * window.c (set_window_buffer): Set window margins for tty
9418 frames, too.
9419 (Fset_window_margins): Ditto.
9420
9421 * term.c (append_glyph): Use glyph area of iterator instead of
9422 always TEXT_AREA.
9423
9424 * dispnew.c (update_frame_1): Add left margin width to cursor
9425 hpos.
9426 (direct_output_for_insert): Ditto.
9427 (direct_output_forward_char): Ditto.
9428
9429 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9430
9431 * dispextern.h (struct glyph_matrix): Add top_line_p.
9432
9433 1999-07-16 Gerd Moellmann <gerd@gnu.org>
9434
9435 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9436 instead.
9437
9438 * fns.c (cmpfn_eq): Add hash code parameters.
9439 (cmpfn_eql): Ditto.
9440 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9441 (cmpfn_user_defined): Likewise.
9442
9443 1999-07-15 Gerd Moellmann <gerd@gnu.org>
9444
9445 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9446
9447 * fns.c (maybe_resize_hash_table): Correct computation of
9448 index vector size.
9449 (make_hash_table): Ditto.
9450 (Fmakehash): New.
9451
9452 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9453
9454 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9455 (survives_gc_p): Make it externally visible.
9456 (mark_object): Ditto.
9457
9458 * fns.c (remove_hash_entry): Removed.
9459 (sweep_weak_hash_tables): New.
9460
9461 * print.c (print): Print more information about hash tables.
9462
9463 * xfns.c (image_spec_hash): Removed.
9464 (lookup_image): Use sxhash instead of image_spec_hash.
9465 (image_spec_equal_p): Removed.
9466 (lookup_image): Use Fequal instead of image_spec_equal_p.
9467
9468 1999-07-14 Gerd Moellmann <gerd@gnu.org>
9469
9470 * lisp.h (P_): Moved to top of file.
9471
9472 * fns.c (make_hash_table): Set new members.
9473
9474 * alloc.c (mark_object): Mark hash table's user_hash_function.
9475 Mark index vector for weak hash tables.
9476
9477 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9478 user_hash_function, cmpfn, and hashfn.
9479
9480 * fns.c (build_hash): Removed.
9481 (hash_test): Removed.
9482 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9483 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9484
9485 1999-07-13 Gerd Moellmann <gerd@gnu.org>
9486
9487 * alloc.c (survives_gc_p): New.
9488
9489 * print.c (print): Add hash table handling.
9490
9491 * alloc.c (mark_object): Add code to mark hash tables.
9492
9493 * lisp.h (GC_HASH_TABLE_P): New.
9494
9495 * emacs.c (main): Call init_fns.
9496
9497 * fns.c (init_fns): New.
9498
9499 * fns.c: Add hash table implementation.
9500
9501 * lisp.h (PVEC_HASH_TABLE): New.
9502 (struct Lisp_Hash_Table): New.
9503 (XHASH_TABLE): New.
9504 (XSET_HASH_TABLE): New.
9505 (HASH_TABLE_P): New.
9506 (CHECK_HASH_TABLE): New.
9507 (DEFAULT_HASH_SIZE): New.
9508 (DEFAULT_REHASH_THRESHOLD): New.
9509 (DEFAULT_REHASH_SIZE): New.
9510
9511 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9512 (x_write_glyphs): Compute overwritten cursor using real start
9513 and end positions of display.
9514 (x_insert_glyphs): Ditto.
9515
9516 1999-07-10 Gerd Moellmann <gerd@gnu.org>
9517
9518 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9519
9520 * dispnew.c (blank_row): Add y-position as parameter. Compute
9521 visible height.
9522
9523 * xdisp.c (next_element_from_string): Give padding spaces
9524 a position of -1.
9525
9526 * dispnew.c (adjust_glyph_matrix): Some work to support
9527 marginals areas on tty frames in a future version.
9528 (allocate_matrices_for_frame_redisplay): Ditto.
9529
9530 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9531 to zero if number of glyphs in the row is <= 1.
9532
9533 1999-07-09 Gerd Moellmann <gerd@gnu.org>
9534
9535 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9536 into account.
9537
9538 * xdisp.c (handle_display_prop): Don't reset area if handing
9539 a property from a string that came from a `display' property.
9540 (handle_single_display_prop): Don't handle recursive `display'
9541 properties.
9542 (handle_single_display_prop): Handle some display property
9543 forms for terminal frames.
9544 (Qimage): Moved here from xfns.c.
9545
9546 * dispextern.h (struct it): New field string_from_display_prop_p.
9547
9548 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9549 line.
9550
9551 1999-07-08 Gerd Moellmann <gerd@gnu.org>
9552
9553 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9554
9555 * window.c (set_window_buffer): Set window's vscroll to zero.
9556
9557 * xdisp.c (QCwhen): New.
9558 (display_prop_end): New.
9559 (handle_single_display_prop): Use it.
9560 (debug_method_add): Print buffer name if tracing.
9561 (try_window_reusing_current_matrix): Compute visible height
9562 of reused rows. Fix cursor position calculation in case of
9563 top-line.
9564
9565 * dispextern.h (struct redisplay_interface): Add parameter
9566 cursor_on_p to update_window_end_hook.
9567
9568 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9569
9570 1999-07-07 Gerd Moellmann <gerd@gnu.org>
9571
9572 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
9573 doesn't become negative when decrementing it.
9574
9575 * eval.c (Fsignal): Reset redisplaying_p to zero.
9576
9577 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9578 for window update.
9579 (try_window_id): Ditto.
9580
9581 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9582 (x_scroll_run): Ditto.
9583 (any_help_event_p): New.
9584 (x_initialize): Set it to zero.
9585 (XTread_socket): Clear help echo only if any_help_event_p.
9586
9587 * xdisp.c (init_iterator): Set top_line_p.
9588 (start_display): Use correct initial y if top-line is present.
9589 (make_cursor_line_fully_visible): Bug fixes for top-line.
9590 (try_scrolling): Ditto.
9591 (try_window_reusing_current_matrix): Ditto.
9592
9593 * dispextern.h (struct it): Add top_line_p.
9594
9595 * dispnew.c (shift_glyph_matrix): Move some computations out
9596 of the loop.
9597
9598 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
9599 XFLOATINT.
9600
9601 1999-07-06 Gerd Moellmann <gerd@gnu.org>
9602
9603 * dispnew.c (update_frame_1): When setting cursor in echo area,
9604 skip only over padding spaces at the end.
9605
9606 * xfaces.c (realize_tty_face): Set face's font_name field to
9607 "tty".
9608
9609 * term.c (update_end): Turn cursor on only if selected window's
9610 cursor_off_p flag is not set.
9611
9612 1999-07-05 Gerd Moellmann <gerd@gnu.org>
9613
9614 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9615 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9616 (TS_cursor_invisible): New.
9617 (term_init): Initialize TS_cursor_invisible.
9618 (tty_hide_cursor): New.
9619 (tty_show_cursor): New.
9620 (update_end): Show tty cursor.
9621 (update_begin): Hide tty cursor to prevent cursor flickering
9622 during redisplays triggered by timers (stealth fontification).
9623
9624 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9625
9626 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9627 in scroll bars.
9628 (x_handle_toolbar_click): Set modifier bits.
9629
9630 1999-07-04 Gerd Moellmann <gerd@gnu.org>
9631
9632 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9633 instead of a pointer to a volatile input_event.
9634 (kbd_buffer_store_event): Remove volatile modifier from
9635 declaration of local variable `sp'.
9636 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9637 to kbd_fetch_ptr.
9638
9639 1999-07-03 Gerd Moellmann <gerd@gnu.org>
9640
9641 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9642 only if buffer is modified. Return quickly if changes are
9643 above window start.
9644
9645 1999-07-02 Gerd Moellmann <gerd@gnu.org>
9646
9647 * dispextern.h (HSCROLL_WINDOWS): Removed.
9648
9649 * xdisp.c (mark_window_display_accurate): Don't set
9650 w->region_showing.
9651 (redisplay_internal): Don't call redraw_garbaged_frames.
9652
9653 1999-07-01 Gerd Moellmann <gerd@gnu.org>
9654
9655 * xdisp.c (echo_area_display): Don't display truncation marks
9656 for messages because 20.4 doesn't do it either.
9657 (redisplay_window): Case same window start. Instead of giving
9658 up when cursor is partially visible, make it fully visible.
9659 (mark_window_display_accurate): Some cleanup. Record window's
9660 last cursor information.
9661 (debug_method_add): Improved.
9662 (redisplay_internal): Record last cursor info only if not
9663 consider_all_windows_p.
9664
9665 * dispnew.c (update_window): Update top line after scrolling.
9666 (blank_row): Renamed from make_empty_enabled_row.
9667 (increment_glyph_row_buffer_positions): Increment positions
9668 in buffers, only.
9669
9670 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9671 string.
9672
9673 1999-06-30 Gerd Moellmann <gerd@gnu.org>
9674
9675 * dispnew.c (update_window): Check that updated row is visible.
9676
9677 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9678 top of window differently.
9679
9680 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9681 if region is showing.
9682
9683 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9684 avoiding matrix reallocation. Set window_vscroll in matrix.
9685
9686 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9687
9688 * xdisp.c (debug_method_add): New.
9689 (debug_redisplay_method): Removed.
9690 (try_window_reusing_current_matrix): Handle case where old
9691 window start is the same as new window start.
9692
9693 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9694 an array instead of a pointer.
9695
9696 * xfns.c (Fx_show_tip): Undo previous change.
9697
9698 * xterm.c (x_append_glyph): Clear glyph->u.val.
9699
9700 * dispextern.h (struct glyph): Increase size of face_id bit-field
9701 for CHAR_GLYPH to 12.
9702
9703 1999-06-29 Gerd Moellmann <gerd@gnu.org>
9704
9705 * xfaces.c (x_charset_registry): Make it externally visible.
9706
9707 1999-06-28 Gerd Moellmann <gerd@gnu.org>
9708
9709 * dispnew.c (update_window): Use mode_line_p flag of rows
9710 instead of WINDOW_WANTS_MODELINE_P.
9711
9712 * xterm.c (clear_mouse_face): Make externally visible.
9713
9714 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9715
9716 * xterm.c (expose_line): Handle exposure of top-lines.
9717
9718 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9719 if mouse_face_mouse_frame is null.
9720
9721 * xdisp.c (redisplay_window): If window is echo_area_window,
9722 and update_mode_line is set, update menubar and toolbar.
9723
9724 * dispnew.c (space_glyph): Set its charpos to -1.
9725 (update_frame_1): Ignore trailing padding spaces.
9726
9727 * xdisp.c (next_element_from_c_string): Set position of padding
9728 glyphs to -1.
9729
9730 1999-06-27 Gerd Moellmann <gerd@gnu.org>
9731
9732 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9733 XQueryColor.
9734
9735 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9736 (set_cursor_from_row): Skip over glyphs having a null object at
9737 the start of rows.
9738 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9739 glyphs.
9740 (handle_invisible_prop): Compute next change only when needed.
9741 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9742 line.
9743
9744 1999-06-26 Gerd Moellmann <gerd@gnu.org>
9745
9746 * xrdb.c (x_load_resources): Don't set resource for double-click
9747 time.
9748
9749 * xdisp.c (try_window_id): Return quickly if all changes are
9750 below the window's current matrix end.
9751
9752 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9753 parameter.
9754
9755 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9756 in desired not in current matrix.
9757 (try_window_reusing_current_matrix): Rotate matrices starting
9758 at start_vpos instead of 0.
9759
9760 * xterm.c (expose_window): Use window_text_bottom_y.
9761 (fast_find_position): Ditto.
9762
9763 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9764 (try_window_reusing_current_matrix): Ditto.
9765 (get_last_unchanged_at_beg_row): Ditto.
9766 (init_iterator): Ditto.
9767
9768 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9769 more row.
9770 (check_matrix_invariants): Use window_text_bottom_y.
9771 (update_window): Ditto.
9772 (scrolling_window): Ditto.
9773
9774 * xdisp.c (window_text_bottom_y): New.
9775
9776 1999-06-25 Gerd Moellmann <gerd@gnu.org>
9777
9778 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9779 clearing mouse face.
9780 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9781 event.xcrossing.focus is not set, and focus is in the menu bar,
9782 set focus frame as if event.xcrossing.focus were set.
9783
9784 1999-06-24 Gerd Moellmann <gerd@gnu.org>
9785
9786 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9787 * keyboard.c (make_lispy_movement): Ditto.
9788
9789 * window.c (coordinates_in_window): Return 4 if on top line.
9790 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9791
9792 * xdisp.c (window_box_height): Subtract top line height.
9793 (window_box): Add top line height to top y position if top line
9794 exists.
9795 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9796 the top line row of the window. Set initial y-position to
9797 window's top line height plus delta.
9798 (start_display): Choose start glyph row depending on whether
9799 window has a top line.
9800 (try_scrolling): Take top line height into account for aggressive
9801 scrolling.
9802 (compute_window_start_on_continuation_line): Take top line into
9803 account.
9804 (redisplay_window): Ditto. If top line height has changed,
9805 trigger a new redisplay.
9806 (try_window_reusing_current_matrix): Take top line into account.
9807 (find_last_row_displaying_text): Ditto.
9808 (get_last_unchanged_at_beg_row): DItto.
9809 (try_window_id): Ditto.
9810 (compute_line_metrics): Ditto.
9811
9812 * dispnew.c (shift_glyph_matrix): Compute visible row height
9813 taking top line of window into account.
9814 (update_window): Update top line. If scrolling_window detects
9815 that all rows are equal, only set cursor.
9816 (update_window_line): Call after_update_window_line_hook if
9817 mode_line_p flag of rows has changed.
9818 (scrolling_window): Add parameter top_line_p. Return -1 if
9819 all rows are equal.
9820 (mode_line_string): Add parameter mode_line_p. Handle strings
9821 in top lines.
9822
9823 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9824 (MATRIX_FIRST_TEXT_ROW): New.
9825 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9826 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9827 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9828 (MATRIX_TOP_LINE_HEIGHT): New.
9829 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9830 (CURRENT_TOP_LINE_HEIGHT): New.
9831 (DESIRED_TOP_LINE_HEIGHT): New.
9832 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9833 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9834 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9835 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9836
9837 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9838 lines.
9839 (x_draw_row_bitmaps): Take top line into account when clearing
9840 bitmap area.
9841 (x_estimate_mode_line_height): Replacement for
9842 x_frame_mode_line_height.
9843 (x_get_glyph_string_clip_rect): Take top line into account.
9844 (x_clear_end_of_line): Ditto.
9845 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9846 top lines.
9847 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9848 (x_erase_phys_cursor): Take top line into account.
9849
9850 * xdisp.c (window_box_height): Subtract top line height if
9851 window wants a top line.
9852 (display_mode_lines): New.
9853 (redisplay_window): Call it.
9854 (display_mode_line): Add parameters face_id and format.
9855
9856 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9857 (MATRIX_TOP_LINE_HEIGHT): New.
9858
9859 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9860
9861 * term.c (estimate_mode_line_height): Renamed from
9862 frame_mode_line_height. Add parameter face_id.
9863 (estimate_mode_line_height_hook): Renamed from
9864 frame_mode_line_height_hook.
9865 (produce_special_glyphs_hook): Removed.
9866 (produce_glyphs_hook): Removed.
9867
9868 1999-06-23 Gerd Moellmann <gerd@gnu.org>
9869
9870 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9871 (struct glyph_row): Add mode_line_p.
9872
9873 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9874 (Qtop_line): New.
9875 (syms_of_xfaces): Initialize Qtop_line.
9876
9877 * dispextern.h (TOP_LINE_FACE_ID): New.
9878
9879 * buffer.c (init_buffer_once): Set default for
9880 top_line_format to nil.
9881 (init_buffer_once): Init top_line_format.
9882 (default-top-line-format): New.
9883 (top-line-format): New buffer-local variable.
9884
9885 * buffer.h: Add top_line_format.
9886
9887 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9888
9889 1999-06-17 Dave Love <fx@gnu.org>
9890
9891 * xfns.c: Move the PNG section before the JPEG one to avoid
9892 problems surrounding setjmp.h/png.h on GNU/Linux.
9893
9894 1999-06-17 Gerd Moellmann <gerd@gnu.org>
9895
9896 * xfns.c (x_kill_gs_process): Don't free colors.
9897
9898 1999-06-17 Dave Love <fx@gnu.org>
9899
9900 * s/gnu-linux.h: Zap spurious ~.
9901
9902 1999-06-16 Gerd Moellmann <gerd@gnu.org>
9903
9904 * xfns.c (gif_load): Improve multi-image support.
9905
9906 1999-06-15 Gerd Moellmann <gerd@gnu.org>
9907
9908 * xfns.c (gif_load): Support multi-image files.
9909
9910 * Makefile.in (LIBGIF): Use libungif.
9911
9912 * configure.in (HAVE_GIF): Use libungif instead of libgif
9913 because the former doesn't contain patented compression code.
9914
9915 * xdisp.c (compute_window_start_on_continuation_line): Don't
9916 do it if line start is too far away from window start.
9917
9918 1999-06-14 Gerd Moellmann <gerd@gnu.org>
9919
9920 * buffer.c (init_buffer_once): Set buffer_local_flags for
9921 scroll_*_aggressively.
9922 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9923 (init_buffer_once): Set defaults for these variables.
9924 (syms_of_buffer): Add default-scroll-*-aggressively.
9925
9926 * buffer.h (scroll_up_aggressively): New.
9927 (scroll_down_aggressively): New.
9928
9929 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9930 a static PNG library.
9931
9932 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9933 in case it's a static library.
9934
9935 * Makefile.in (ctagsfiles): Split so that files starting
9936 with an `x' are found before files starting with `w32'.
9937 (ctagsfiles1): New.
9938 (ctagsfiles2): New.
9939 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9940
9941 * xdisp.c (compute_window_start_on_continuation_line): New.
9942 (redisplay_window): Use it.
9943 (INFINITY): New.
9944 (reseat_to_string): Use it.
9945 (hscroll_window_tree): Ditto.
9946 (compute_window_start_on_continuation_line): Ditto.
9947 (redisplay_window): Don't force display with a new window start.
9948
9949 1999-06-06 Gerd Moellmann <gerd@gnu.org>
9950
9951 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9952 if widget not present.
9953
9954 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9955
9956 1999-06-04 Gerd Moellmann <gerd@gnu.org>
9957
9958 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9959 value of realize_basic_faces.
9960 (load_face_font_or_fontset): Store full font name in face.
9961 (realize_default_face): Use full font name.
9962
9963 * xterm.c (x_produce_glyphs): Set member char_to_display.
9964 (x_append_glyph): Store char_to_display in glyphs.
9965
9966 * dispextern.h (struct it): Add char_to_display.
9967
9968 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9969 if faces haven't been initialized.
9970 (Fx_create_frame): Call face-set-after-frame-default after
9971 faces have been initialized, and widget has been created.
9972
9973 * puresize.h (BASE_PURESIZE): Increased.
9974
9975 1999-06-01 Gerd Moellmann <gerd@gnu.org>
9976
9977 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9978 (Finternal_set_lisp_face_attribute): If frame is t when
9979 :font attribute is set, use the selected frame.
9980 (clear_face_cache): Add parameter clear_fonts_p.
9981 (Fclear_face_cache): Add optional parameter thorougly.
9982
9983 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9984 in table.
9985 (Fclear_face_cache): New.
9986 (choose_face_fontset_font): If fontset doesn't contain font
9987 pattern for the given charset, use CHARSET_ASCII.
9988 (Finternal_set_lisp_face_attribute): Fix handling of nil
9989 stipple attribute.
9990 (Finternal_set_lisp_face_attribute): Fix handling of changing
9991 font-related face attributes of the default face.
9992 (set_lface_from_font_name): Set only attributes that aren't
9993 specified.
9994
9995 1999-05-31 Gerd Moellmann <gerd@gnu.org>
9996
9997 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9998 font support.
9999 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
10000 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
10001 scalable fonts depending on the setting of SCALABLE_FONTS.
10002 (first_font_matching): List more than one font to find the
10003 first non-scalable matching font.
10004 (sorted_font_list): Let x_face_list_fonts return scalable fonts
10005 depending on SCALABLE_FONTS.
10006 (better_font_p): New parameter compare_pt_p. If zero, don't
10007 compare point sizes of fonts.
10008 (exact_face_match_p) [SCALABLE_FONTS]: New.
10009 (build_scalable_font_name) [SCALABLE_FONTS]: New.
10010 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
10011 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
10012 (syms_of_xfaces): Add scalable-fonts-allowed.
10013
10014 1999-05-26 Gerd Moellmann <gerd@gnu.org>
10015
10016 * xfns.c (png_load): Let PNG lib handle gamma. Construct
10017 mask only if image contains simple transparency information.
10018 Otherwise, combine image with frame background color.
10019
10020 * configure.in (--with-png, HAVE_PNG): New.
10021
10022 * config.in (HAVE_PNG): New.
10023
10024 * Makefile.in: Add PNG library.
10025
10026 * xfns.c: Add PNG support.
10027
10028 1999-05-25 Gerd Moellmann <gerd@gnu.org>
10029
10030 * xdisp.c (init_xdisp): Initialize echo_area_message and
10031 previous_echo_area_message to nil.
10032
10033 * keyboard.c (read_char): Rename local variable echo_area_message
10034 because it shadows the global one.
10035
10036 1999-05-05 Gerd Moellmann <gerd@gnu.org>
10037
10038 * xterm.c (note_mode_line_highlight): Restructured.
10039
10040 * window.c (coordinates_in_window): Handle windows that don't have
10041 a mode line because their buffer's mode-line-format is nil.
10042 Recognize the mode line under x positions that correspond to
10043 flags areas and left scroll bar.
10044
10045 1999-05-02 Dave Love <fx@gnu.org>
10046
10047 * xterm.c (note_mouse_highlight): Separate help-echo processing
10048 from check on mouse-face so that it works generally.
10049
10050 1999-04-21 Gerd Moellmann <gerd@gnu.org>
10051
10052 * sound.c (Fplay_sound): Run hook play-sound-hook.
10053 (Qplay_sound_hook): New.
10054
10055 1999-04-20 Gerd Moellmann <gerd@gnu.org>
10056
10057 * xdisp.c (update_echo_area): Handle echo_area_message.
10058
10059 1999-04-19 Gerd Moellmann <gerd@gnu.org>
10060
10061 * editfns.c (Fmessage): Use message3.
10062
10063 * print.c (printchar): Set echo_area_message to nil.
10064 (strout): Ditto.
10065
10066 * minibuf.c (read_minibuf): Reset echo message strings to nil.
10067 (Fminibuffer_completion_help): Ditto.
10068
10069 * keyboard.c (cmd_error_internal): Set echo_areA_message.
10070 (command_loop_1): Test echo_areA_message.
10071 (read_char): Ditto.
10072 (record_menu_key): Set echo_area_message to nil.
10073 (Fexecute_extended_command): Test echo_area_message.
10074 (Fexecute_extended_command): Handle echo_area_message.
10075
10076 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
10077 is set.
10078
10079 * editfns.c (Fcurrent_message): If echo_area_message is set,
10080 return a substring of that string.
10081
10082 * dispnew.c (direct_output_for_insert): Test echo_area_message
10083 in addition to echo_area_glyphs.
10084 (set_window_cursor_after_update): Ditto.
10085 (update_frame_1): Ditto.
10086
10087 * alloc.c (Fgarbage_collect): Use message3_nolog to display
10088 old Lisp message string.
10089
10090 * xdisp.c (echo_area_message): New.
10091 (previous_echo_area_message): New.
10092 (syms_of_xdisp): Initialize and staticpro new variables.
10093 (echo_area_display): Display echo_area_message if set.
10094 (message2_nolog): Set echo_area_message and
10095 previous_echo_area_message.
10096 (echo_area_display): Set previous_echo_area_message.
10097 (redisplay_internal): Display echo area if echo_area_message
10098 or previous_echo_area_message are set.
10099 (redisplay_preserve_echo_area): Test/set echo_area_message and
10100 previous_echo_area_message.
10101 (redisplay_window): Test echo_area_message.
10102 (message3_nolog): New.
10103 (message3): New.
10104
10105 * editfns.c (Fformat): Add text properties to the result string
10106 from properties of the format string and properties of string
10107 arguments.
10108
10109 * textprop.c (text_property_list): New.
10110 (add_text_properties_from_list): New.
10111 (extend_property_ranges): New.
10112
10113 1999-03-29 Gerd Moellmann <gerd@gnu.org>
10114
10115 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
10116 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
10117 Use these symbols for the box face attribute instead of the
10118 removed ones.
10119
10120 1999-03-12 Gerd Moellmann <gerd@gnu.org>
10121
10122 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
10123 Correct wrong test for slant.
10124
10125 1999-03-10 Gerd Moellmann <gerd@gnu.org>
10126
10127 * xfaces.c: Use `unspecified' for unspecified face attributes,
10128 use t and nil for on/off.
10129
10130 1999-03-06 Gerd Moellmann <gerd@gnu.org>
10131
10132 * buffer.c (syms_of_buffer): Extend doc string of
10133 mode-line-format.
10134
10135 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
10136 (first_font_matching): New.
10137 (set_lface_from_font_name): Use it if font name is a pattern.
10138 (font_field_wildcard_p): Removed.
10139
10140 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
10141 Recompute visible height of rows.
10142
10143 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
10144 Don't accept non-strings for help-echo from overlays.
10145
10146 1999-03-04 Dave Love <fx@gnu.org>
10147
10148 * xterm.c (note_mouse_highlight): Check overlays for help-text
10149 property.
10150 (XTread_socket): Fix compiler warning.
10151
10152 1999-03-05 Gerd Moellmann <gerd@gnu.org>
10153
10154 * xterm.c (note_mouse_highlight): Don't restrict number of
10155 overlay to 10. Call overlays_at so that it doesn't try to
10156 extend the vector.
10157
10158 * xdisp.c (compute_line_metrics): Compute glyph row's visible
10159 height.
10160
10161 * dispnew.c (row_equal_p): Compare visible row height, only.
10162 (update_text_area): Draw whole line if visible heights of
10163 rows differ.
10164 (update_window_line): Call after_update_window_line_hook
10165 if visible row height has changed.
10166
10167 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
10168 (struct glyph_row): New member visible_height.
10169
10170 * xfaces.c (font_field_wildcard_p): New.
10171 (set_lface_from_font_name): Remove parameter force_p. Accept
10172 font names containing wildcards.
10173
10174 1999-03-04 Gerd Moellmann <gerd@gnu.org>
10175
10176 * xterm.c (x_after_update_window_line): Clear internal border
10177 when windows_or_buffers_changed.
10178
10179 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
10180 buffer has a nil mode_line_format.
10181
10182 1999-03-03 Gerd Moellmann <gerd@gnu.org>
10183
10184 * xterm.c (x_setup_relief_colors): Use either background color
10185 or specified color.
10186
10187 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
10188
10189 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
10190
10191 * xterm.c (x_draw_box_rect): New.
10192 (x_draw_glyph_string_box): Renamed from
10193 x_draw_glyph_string_relief. Call x_draw_box_rect.
10194
10195 * xfns.c (QCrelief): New.
10196 (syms_of_xfns): Initialize it.
10197
10198 * dispextern.h (struct glyph): Rename left_shadow_p to
10199 left_box_line_p, right_shadow_p to right_box_line_p.
10200 (MAX_RELIEF_THICKNESS): Removed.
10201 (struct it): Rename members having `relief' in their names
10202 to contain `box' instead.
10203
10204 * xfaces.c (realize_x_face): Handle new box attribute values.
10205 (QCrelief, Qbox): Removed.
10206 (QCshadow, QCcolor, Qraised, Qsunken): New.
10207 (syms_of_xfaces): Initialize new symbols.
10208
10209 1999-03-02 Gerd Moellmann <gerd@gnu.org>
10210
10211 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
10212
10213 * xfaces.c (LFACE_RELIEF): Removed.
10214 (merge_face_vector_with_property): Remove handling of `:relief'.
10215 (Finternal_set_lisp_face_attribute): Ditto.
10216 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10217 (Finternal_get_lisp_face_attribute): Ditto.
10218 (realize_default_face): Ditto.
10219 (lface_hash): Don't compute hash from relief.
10220
10221 * dispextern.h (struct face): Replace member `relief' by
10222 `box_line_width'. Add member `box'.
10223 (face_box_type): New.
10224
10225 * xterm.c (x_produce_glyphs): If face has overline, add overline
10226 thickness + 1 to ascent.
10227
10228 1999-03-01 Gerd Moellmann <gerd@gnu.org>
10229
10230 * xterm.c (x_draw_glyph_string): Draw underline, overline,
10231 strike-through, and boxes.
10232 (x_draw_glyph_string_underline): Removed.
10233
10234 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
10235 (Qoverline, Qstrike_through, Qbox): New.
10236 (syms_of_xfaces): Define these symbols.
10237 (check_lface_attrs): Add checks for overline, strike-through,
10238 and box.
10239 (Finternal_set_lisp_face_attribute): Set new attributes.
10240 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
10241 (load_color): Handle new attributes.
10242 (realize_x_face): Ditto.
10243 (merge_face_vector_with_property): Ditto.
10244 (free_face_colors): Ditto.
10245 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10246 (Finternal_get_lisp_face_attribute): Ditto.
10247 (Finternal_lisp_face_attribute_values): Ditto.
10248
10249 * dispextern.h (lface_attribute_index): Add enumerators for
10250 overstrike, strike-through, and box.
10251 (struct face): Add members for overline, strike-through, and
10252 box.
10253
10254 1999-02-17 Dave Love <fx@gnu.org>
10255
10256 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
10257 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
10258 files.
10259
10260 1999-02-16 Gerd Moellmann <gerd@gnu.org>
10261
10262 * keyboard.c (toolbar_items): Call access_keymap with third
10263 parameter 1, so that we don't get inherited toolbar item
10264 definitions.
10265
10266 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
10267 the window end vpos when in empty first line of window.
10268
10269 1999-02-15 Gerd Moellmann <gerd@gnu.org>
10270
10271 * xfaces.c (set_font_frame_param): New.
10272 (Finternal_set_lisp_face_attribute): Call it.
10273
10274 Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10275
10276 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
10277 Accept specifications of color for underline.
10278
10279 1999-02-13 Gerd Moellmann <gerd@gnu.org>
10280
10281 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
10282 `frame' is t, operate on face defaults for new frames. If it
10283 is nil, operate on the selected frame.
10284
10285 1999-02-12 Gerd Moellmann <gerd@gnu.org>
10286
10287 * dispnew.c (check_matrix_invariants): Put it in #if 0.
10288 (update_window): Put the call to check_matrix_invariants in #if 0.
10289
10290 Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10291
10292 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
10293 Remove definition of UNDERLINE_COLOR.
10294
10295 Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10296
10297 * xfaces.c (free_face_colors): Free the color for underline.
10298
10299 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
10300 to the GC.
10301
10302 Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10303
10304 * dispextern.h (UNDERLINE_COLOR): Defined.
10305 (struct face): Added two new members.
10306 underline_color, underline_defaulted_p.
10307
10308 * xfaces.c (merge_face_vector_with_property):
10309 (check_lface_attrs): Accept the string value for underline.
10310 (Finternal_set_lisp_face_attribute): Likewise.
10311
10312 * xfaces.c (load_color): Change the last argument type to enum
10313 lface_attribute_index from int. And addec code for underling coloring.
10314 (load_face_colors): Pass LFACE_*_INDEX to load_color.
10315
10316 1999-02-12 Gerd Moellmann <gerd@gnu.org>
10317
10318 * xfns.c (Fx_image_header): Removed.
10319
10320 1999-02-07 Gerd Moellmann <gerd@gnu.org>
10321
10322 * xterm.c: Don't include <bitmaps/gray>.
10323 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
10324
10325 * xfns.c (Fx_image_header): Add missing `\n\'.
10326 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
10327
10328 1999-02-01 Gerd Moellmann <gerd@gnu.org>
10329
10330 * xterm.c (x_scroll_bar_create): Set background pixel from
10331 specified scroll bar color.
10332 (x_scroll_bar_set_handle): Use scroll bar foreground color.
10333
10334 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
10335 (x_set_scroll_bar_background): Ditto.
10336
10337 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
10338
10339 * xfns.c (x_default_scroll_bar_color_parameter): New.
10340 (Fx_create_frame): Call it.
10341
10342 1999-01-31 Gerd Moellmann <gerd@gnu.org>
10343
10344 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
10345 values in x_output structure.
10346 (Qscroll_bar_foreground, Qscroll_bar_background): New.
10347 (syms_of_xfns): Initialize these symbols.
10348
10349 * xterm.h (struct x_output): Add scroll bar pixel colors.
10350
10351 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
10352 (x_set_scroll_bar_foreground): New.
10353 (x_set_scroll_bar_background): New.
10354
10355 1999-01-12 Gerd Moellmann <gerd@gnu.org>
10356
10357 * xdisp.c (handle_single_display_prop): New.
10358 (handle_display_prop): Call it.
10359 (handle_raise_prop): Removed.
10360 (handle_height_prop): Removed.
10361 (handle_space_width_prop): Removed.
10362 (handle_face_prop): Remove handling of raised text.
10363 (handle_display_prop): Do it here.
10364
10365 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
10366 (RAISE_PROP_IDX): Removed.
10367 (HEIGHT_PROP_IDX): Removed.
10368 (SPACE_WIDTH_PROP_IDX): Removed.
10369
10370 * xdisp.c (Qdisplay): Replaces Qglyph.
10371 (handle_display_prop): Formerly handle_glyph_prop.
10372
10373 1999-01-11 Gerd Moellmann <gerd@gnu.org>
10374
10375 * xdisp.c (reseat_to_string): Set position in display vector to -1.
10376 (handle_stop): Set position in display vector to -1. Don't
10377 check overlay strings when set up to deliver characters from a
10378 display vector.
10379 (set_iterator_to_next): At the end of a run of characters from a
10380 display vector, check whether the display vector display replaces
10381 the display of a character.
10382
10383 1999-01-05 Gerd Moellmann <gerd@gnu.org>
10384
10385 * xfaces.c (init_frame_faces): Don't realize faces if frame's
10386 X window hasn't been created yet.
10387
10388 1998-12-06 Gerd Moellmann <gerd@gnu.org>
10389
10390 * sound.c: New.
10391
10392 1998-12-04 Gerd Moellmann <gerd@gnu.org>
10393
10394 * config.in (HAVE_SOUND): New.
10395
10396 * emacs.c (main): Call syms_of_sound and init_sound.
10397
10398 * Makefile.in (obj): Add sound.o.
10399
10400 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
10401
10402 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
10403 (HAVE_SYS_SOUNDCARD_H): New.
10404
10405 1998-12-03 Gerd Moellmann <gerd@gnu.org>
10406
10407 * buffer.h (struct buffer): indicate_empty_lines renamed from
10408 indicate_zv_lines.
10409
10410 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
10411 (default-indicate-zv-lines): Likewise.
10412
10413 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
10414 to indicate_empty_line_p.
10415
10416 * xdisp.c (reseat_at_next_visible_line_start): Reset method
10417 to next_element_from_buffer.
10418
10419 * frame.c (make_frame): Set n_current_toolbar_items to 0.
10420
10421 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10422 and `N-'.
10423
10424 * xfns.c (xbm_scan): New.
10425 (xbm_read_hexint): Removed.
10426 (xbm_read_bitmap_file_data): Use xbm_scan.
10427
10428 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10429
10430 1998-12-02 Gerd Moellmann <gerd@gnu.org>
10431
10432 * xfns.c (xbm_read_hexint): New.
10433 (xbm_read_bitmap_file_data): New.
10434 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10435 instead of XReadBitmapFileData.
10436
10437 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10438
10439 * xfaces.c (face_with_height): New.
10440
10441 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10442 (eval_form): Renamed from eval_mode_element.
10443 (handle_face_prop): Use it.
10444 (Qheight): Replaces Qsmaller.
10445 (handle_height_prop): Replaces handle_smaller_prop.
10446 (handle_face_prop): If iterator's font_height is not an
10447 integer, evaluate it to get the font height to use.
10448
10449 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10450 (struct it): Use `font_height' instead of `smaller'.
10451
10452 1998-12-01 Gerd Moellmann <gerd@gnu.org>
10453
10454 * xdisp.c (reseat_1): New.
10455 (reseat): Call it.
10456 (move_it_vertically_backward): Ditto.
10457 (redisplay_window): Don't abort when cursor not found in recenter.
10458
10459 1998-11-30 Gerd Moellmann <gerd@gnu.org>
10460
10461 * xdisp.c (reseat_at_next_visible_line_start): When not
10462 currently delivering display elements from the current buffer,
10463 restore buffer position first.
10464 (init_from_display_pos): Don't set IT's position from the
10465 position passed to this function.
10466
10467 1998-11-28 Gerd Moellmann <gerd@gnu.org>
10468
10469 * config.in (PROTO): Removed.
10470
10471 * xterm.h: Change PROTO to P_.
10472
10473 1998-11-26 Gerd Moellmann <gerd@gnu.org>
10474
10475 * xterm.c (take_vertical_position_into_account): New.
10476 (x_produce_image_glyph): Call it.
10477 (x_produce_stretch_glyph): Ditto.
10478 (x_produce_glyphs): Ditto.
10479 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10480 (x_fill_composite_glyph_string): Ditto.
10481 (x_fill_image_glyph_string): Ditto.
10482 (x_fill_stretch_glyph_string): Ditto.
10483
10484 * xdisp.c (display_line): Always compute row height from
10485 max_ascent and max_descent.
10486
10487 * dispextern.h (struct glyph): Add voffset.
10488 (struct it): Replace height by descent, max_height by max_descent.
10489
10490 * xterm.c (x_append_glyph): Set voffset
10491 (x_append_stretch_glyph): Ditto.
10492 (x_produce_image_glyph): Ditto.
10493 (x_produce_glyphs): Take voffset into account.
10494 (x_produce_image_glyph): Ditto.
10495 (x_produce_stretch_glyph): Ditto.
10496
10497 * dispextern.h (struct it): Add voffset.
10498 * xdisp.c (push_it): Save voffset.
10499 (pop_it): Restore it.
10500
10501 * xdisp.c (it_props): Add entry for `raise'.
10502 (handle_raise_prop): New.
10503
10504 * dispextern.h (RAISE_PROP_IDX): New.
10505
10506 * xdisp.c (Qraise): New.
10507 (syms_of_xdisp): Define Qraised.
10508
10509 * xterm.c (x_scroll_bar_move): Clear to the left and right
10510 of toolkit scroll bars differently.
10511 (x_scroll_bar_move): Removed.
10512 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10513
10514 * dispextern.h: Make it compilable --with-x=no.
10515 * alloc.c: Ditto.
10516 * emacs.c: Ditto.
10517 * dispnew.c: Ditto.
10518 * keyboard.c: Ditto.
10519 * term.c: Ditto.
10520 * xdisp.c: Ditto.
10521 * xfaces.c: Ditto.
10522 * xfns.c: Ditto.
10523 * xmenu.c: Ditto.
10524
10525 1998-11-25 Gerd Moellmann <gerd@gnu.org>
10526
10527 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10528
10529 1998-11-24 Gerd Moellmann <gerd@gnu.org>
10530
10531 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10532 update slider size, only.
10533 (xm_scroll_callback): Set dragging member of the scroll bar.
10534 (xt_action_hook): Reset last_scroll_bar_part.
10535 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10536
10537 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10538 window on newly created frames that don't have one.
10539
10540 1998-11-23 Gerd Moellmann <gerd@gnu.org>
10541
10542 * xdisp.c (restore_overlay_strings): Removed.
10543 (restore_dpvec): Removed.
10544 (init_from_display_pos): Inline both functions above.
10545
10546 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10547 (parse_image_spec): Handle it.
10548 (xbm_format): Use it.
10549 (xpm_format): Ditto.
10550 (pbm_format): Ditto.
10551 (jpeg_format): Ditto.
10552 (tiff_format): Ditto.
10553 (gif_format): Ditto.
10554 (gs_format): Ditto.
10555
10556 * xdisp.c (set_window_cursor): Removed.
10557 (redisplay_internal): Case cursor motion in cursor line of
10558 selected window; use set_cursor_from_row.
10559
10560 1998-11-22 Gerd Moellmann <gerd@gnu.org>
10561
10562 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10563 into account.
10564
10565 1998-11-21 Gerd Moellmann <gerd@gnu.org>
10566
10567 * xterm.c (expose_frame): Redraw menu bar window.
10568
10569 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10570 in menu item.
10571
10572 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10573 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10574
10575 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10576 to determine vertical_scroll_bar_extra.
10577 (EmacsFrameSetCharSize): Ditto.
10578 * xfns.c (x_figure_window_size): Ditto.
10579
10580 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10581 (x_draw_bitmap): Ditto.
10582
10583 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10584 * xfaces.c (realize_basic_faces): Realize it.
10585
10586 1998-11-20 Gerd Moellmann <gerd@gnu.org>
10587
10588 * xmenu.c (xmenu_show): Add workaround for remaining button grab
10589 under LessTif Use the widget of the frame as parent for the
10590 menu, again.
10591
10592 1998-11-19 Gerd Moellmann <gerd@gnu.org>
10593
10594 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10595 When EnterNotify, don't generate a mouse movement event if
10596 notification is from a busy-cursor child window.
10597
10598 * xterm.h (struct x_output): Add busy_window, remove cursor.
10599
10600 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10601 Use a transparent window to display the busy-cursor.
10602 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10603
10604 1998-11-17 Gerd Moellmann <gerd@gnu.org>
10605
10606 * xdisp.c (check_window_end): New, for debugging.
10607 (CHECK_WINDOW_END): New.
10608 (try_window_id): Use it.
10609
10610 * xterm.c (process_expose_from_menu): Return int.
10611
10612 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10613 TOOLBAR_EVENT events in last_nonmenu_event.
10614
10615 1998-11-16 Gerd Moellmann <gerd@gnu.org>
10616
10617 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10618 window end isn't reliable, so set window_end_valid to nil.
10619 (redisplay_internal): If overlay arrow has changed, set
10620 windows_or_buffers_changed to redisplay thoroughly.
10621
10622 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10623 necessary.
10624
10625 * xfns.c (file_dialog_cb): New.
10626 (Fx_file_dialog): New.
10627 * fileio.c (Fread_file_name): Call it.
10628
10629 * xrdb.c (x_load_resources): Add default resoures for file
10630 selection dialog.
10631
10632 1998-11-14 Gerd Moellmann <gerd@gnu.org>
10633
10634 * xterm.c (note_mouse_highlight): Don't highlight when popup
10635 is active.
10636
10637 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10638 timer-event-handler. This busy cursor tends to be anoying if
10639 fontifying stealthily.
10640
10641 * dispnew.c (direct_output_for_insert): Give up if current row
10642 contains trailing whitespace.
10643
10644 1998-11-13 Gerd Moellmann <gerd@gnu.org>
10645
10646 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10647
10648 * xdisp.c (handle_fontified_prop): New.
10649 (Vfontification_functions): New.
10650 (Qfontification_functions): New.
10651 (it_props): Add handle_fontified_prop.
10652
10653 1998-11-12 Gerd Moellmann <gerd@gnu.org>
10654
10655 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10656 Otherwise, under LessTif, after the popup has gone, all button
10657 press events come in for the frame's widget, and release events
10658 come in for the edit_widget.
10659 * xterm.c (XTread_socket): Remove workaround for that problem.
10660 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10661 XmScrollBarSetValues.
10662 (SET_SAVED_MENU_EVENT): Give it statement form.
10663
10664 * xfaces.c (display_message): If waiting_for_input, don't display
10665 the message.
10666
10667 * window.c (scroll_command): If not acting on current_buffer,
10668 make redisplay consider all windows.
10669
10670 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10671
10672 * xdisp.c (handle_glyph_prop): Set it->object for images to
10673 the object having the glyph property.
10674
10675 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10676 invisible.
10677
10678 1998-11-11 Gerd Moellmann <gerd@gnu.org>
10679
10680 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10681 (x_term_init): Create the gray pixmap.
10682 (x_setup_relief_color): Use it.
10683 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10684 internal border at the top of a frame.
10685 (x_init_glyph_string): Likewise.
10686 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
10687 full-width lines.
10688 (XTflash): Don't flash the toolbar window.
10689
10690 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10691 in case of ButtonPress events.
10692
10693 1998-11-10 Gerd Moellmann <gerd@gnu.org>
10694
10695 * xrdb.c (x_load_resources): Add grey background colors as
10696 defaults for menus, scroll bars, and dialogs.
10697
10698 * insdel.c (prepare_to_modify_buffer): Move setting
10699 windows_or_buffers_changed from modify_region here.
10700
10701 * xfns.c (Fx_show_tip): Inhibit redisplay.
10702 (Fx_hide_tip): Ditto.
10703 (Fx_image_header): New.
10704
10705 1998-11-09 Gerd Moellmann <gerd@gnu.org>
10706
10707 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10708 when clearing current window matrices.
10709
10710 1998-11-08 Gerd Moellmann <gerd@gnu.org>
10711
10712 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10713 position from a string position. Use the right end position
10714 if the property spans a whole overlay string.
10715
10716 1998-11-07 Gerd Moellmann <gerd@gnu.org>
10717
10718 * xmenu.c (menubar_selection_callback): Remove workaround for
10719 Lesstif not calling XmNpopdownCallback because it doesn't
10720 handle the case where users don't select any menu item.
10721
10722 * insdel.c (modify_region): Set windows_or_buffers_changed.
10723
10724 * buffer.c (set_buffer_internal): Don't set
10725 windows_or_buffers_changed.
10726
10727 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10728
10729 * xmenu.c (menubar_selection_callback): Add workaround for
10730 Lesstif not calling XmNpopdownCallback.
10731
10732 * xdisp.c (eval_mode_element): New.
10733 (eval_mode_handler): New.
10734 (display_mode_element): Use eval_mode_element.
10735
10736 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10737 Remove code looking at text props of default value.
10738
10739 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10740
10741 1998-11-06 Gerd Moellmann <gerd@gnu.org>
10742
10743 * xmenu.c (single_submenu): Set button_type of menu to
10744 BUTTON_TYPE_NONE.
10745 (single_submenu): Likewise for panes and menu items.
10746 (set_frame_menubar): Set button_type of menu bar to none.
10747 (xmenu_show): Likewise.
10748 (single_submenu): Set widget values selected slot.
10749 (xmenu_show): Likewise.
10750
10751 * xmenu.c (push_menu_item): Add parameters `type' and
10752 `selected'. Store it in menu_items.
10753 (MENU_ITEMS_ITEM_TYPE): New.
10754 (MENU_ITEMS_ITEM_SELECTED): New.
10755 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10756
10757 * xfns.c (clear_image_cache): Get the current time, before
10758 doing anything.
10759 (cache_image): Set prev pointer of next image.
10760 (clear_image_cache): Clear current matrices if any image was
10761 freed.
10762
10763 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10764
10765 * xfns.c (x_set_cursor): New.
10766 (Fx_display_busy_cursor): New.
10767 (Fx_undisplay_busy_cursor): New.
10768
10769 * xterm.h (struct x_output): Add busy_cursor.
10770
10771 * xfns.c (Vx_busy_pointer_shape): New.
10772 (x_set_mouse_color): Create busy cursor.
10773
10774 * process.c (wait_reading_process_input): Show and hide busy
10775 cursor.
10776
10777 * keyboard.c (command_loop_1): Display busy cursor.
10778
10779 * eval.c (Fsignal): Hide busy cursor.
10780
10781 * buffer.c (set_buffer_internal): Don't set
10782 windows_or_buffers_changed.
10783
10784 * xterm.c (redo_mouse_highlight): New.
10785
10786 1998-11-04 Gerd Moellmann <gerd@gnu.org>
10787
10788 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10789 (x_build_heuritic_mask): New.
10790 (lookup_image): Call it.
10791
10792 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10793 (previous_help_echo): New.
10794 (XTread_socket): Generate help event with nil message when
10795 leaving a region with help-echo.
10796 (note_mouse_highlight): Handle `help-echo' over text.
10797 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10798 CirculateRequest.
10799 (clear_mouse_face): Don't clear if tooltip is shown.
10800 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10801 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10802
10803 * keyboard.c (Vshow_help_function): New.
10804 (read_char): Use it.
10805
10806 1998-11-03 Gerd Moellmann <gerd@gnu.org>
10807
10808 * xfns.c (x_create_tip_frame): New.
10809 (Fx_show_tip): New.
10810 (Fx_hide_tip): New.
10811
10812 * xterm.c (x_destroy_window): Handle case that we don't have
10813 a widget.
10814
10815 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10816 to full_width_p. Add internal_border_p.
10817
10818 1998-11-02 Gerd Moellmann <gerd@gnu.org>
10819
10820 * xterm.c (note_mode_line_highlight): Check the charpos of
10821 the glyph under the mouse pointer before accessing text
10822 properties at that position.
10823
10824 1998-11-01 Gerd Moellmann <gerd@gnu.org>
10825
10826 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10827
10828 * xdisp.c (auto-raise-toolbar-buttons): New.
10829 (build_desired_toolbar_string): Handle the flag.
10830 (toolbar-button-margin): New.
10831 (toolbar-button-relief): New.
10832 (build_desired_toolbar_string): Use margin and relief.
10833
10834 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10835 for FreeBSD.
10836 (note_mode_line_highlight): New.
10837 (note_mouse_highlight): Call it.
10838
10839 1998-10-31 Gerd Moellmann <gerd@gnu.org>
10840
10841 * s/freebsd.h (NARROWPROTO): New.
10842
10843 * xdisp.c (display_string): New parameter face_string.
10844 (display_mode_element): When displaying a symbol with a string
10845 value, use text properties from the symbol's default value, maybe.
10846
10847 * xrdb.c (x_load_resources): Add font defaults for menus and
10848 dialogs.
10849
10850 1998-10-30 Gerd Moellmann <gerd@gnu.org>
10851
10852 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10853
10854 1998-10-29 Gerd Moellmann <gerd@gnu.org>
10855
10856 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10857 produced for characters with codes < 32 under certain
10858 circumstances.
10859
10860 * xdisp.c (redisplay_window): Handle values of PT in front
10861 of invisible, intangible text.
10862 (try_window_id): Set overlay_arrow_seen to zero before
10863 displaying lines.
10864 (display_mode_element): Assign to glyphs written for a mode
10865 line spec `%x' as object the Lisp format string, as position
10866 the position of the `%' in that string.
10867 (display_string): If displaying a C string, optionally get
10868 the face to use from a Lisp string.
10869
10870 * xterm.c (expose_window_tree): Include mode line height.
10871
10872 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10873
10874 1998-10-27 Gerd Moellmann <gerd@gnu.org>
10875
10876 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10877 over mode line.
10878
10879 1998-10-26 Gerd Moellmann <gerd@gnu.org>
10880
10881 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10882
10883 * xdisp.c (redisplay_window): If mode line height has changed,
10884 arrange for a thorough immediate redisplay using the correct mode
10885 line height.
10886 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10887
10888 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10889 (CURRENT_MODE_LINE_HEIGHT): New.
10890 (DESIRED_MODE_LINE_HEIGHT): New.
10891
10892 * keyboard.c (make_lispy_event): Add string and string position
10893 info to mouse-click events.
10894 (read_key_sequence): Handle `local-map' property of mode line
10895 strings.
10896
10897 * keyboard.h (POSN_STRING): New.
10898
10899 1998-10-25 Gerd Moellmann <gerd@gnu.org>
10900
10901 * dispnew.c (mode_line_string): Mew.
10902
10903 * xterm.c (xt_action_hook): New.
10904 (x_create_toolkit_scroll_bar): Add action hook.
10905 (xm_scroll_callback): Implement dragging.
10906
10907 * keyboard.c (Qend_scroll): New.
10908 (scroll_bar_parts): Add it.
10909
10910 * termhooks.h (scroll_bar_end_scroll): New.
10911
10912 * xterm.c (XTread_socket): Bug fix.
10913
10914 1998-10-24 Gerd Moellmann <gerd@gnu.org>
10915
10916 * xdisp.c (redisplay_window): Finish scroll bars after
10917 redisplaying toolbar.
10918
10919 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10920 (syms_of_keyboard): Add Qbottom.
10921
10922 * termhooks.h (scroll_bar_to_top): New.
10923 (scroll_bar_to_bottom): New.
10924
10925 * xdisp.c (redisplay_window): Always resize toolbar window if
10926 auto_resize_toolbar_p is non-zero.
10927 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10928 (window_box): New.
10929 (window_box_height): New.
10930 (window_box_width): New.
10931 (window_box_left): New.
10932 (window_box_right): New.
10933 (window_box_edges): New.
10934
10935 1998-10-23 Gerd Moellmann <gerd@gnu.org>
10936
10937 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10938 XawScrollbarSetThumb in FreeBSD.
10939 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10940 to true.
10941
10942 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10943 is out of range.
10944
10945 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10946 (x_term_init): Initialize it.
10947
10948 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10949
10950 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10951 cursor.
10952
10953 1998-10-22 Gerd Moellmann <gerd@gnu.org>
10954
10955 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10956 differently when using toolkit scroll bars.
10957
10958 * xterm.c (x_send_scroll_bar_event): New.
10959 (x_scroll_bar_to_input_event): New.
10960 (xaw3d_scroll_callback): New.
10961 (xaw3d_jump_callback): New.
10962 (xm_scroll_callback): New.
10963 (x_toolkit_scroll_p): New.
10964 (XTread_socket): Handle scroll bar client message.
10965 (x_term_init): Initialize Xatom_Scrollbar.
10966 (x_scroll_bar_create): Set cursor.
10967 (xm_scroll_callback):
10968 (x_create_toolkit_scroll_bar): New.
10969 (x_set_toolkit_scroll_bar_thumb): New.
10970 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10971 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10972
10973 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10974
10975 1998-10-21 Gerd Moellmann <gerd@gnu.org>
10976
10977 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10978 (XTread_socket): Don't handle mouse button events for scroll bars
10979 if using toolkit scroll bars.
10980 (XTset_vertical_scroll_bar): Set thumb size and position for
10981 Athena scroll bar.
10982
10983 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10984
10985 * xterm.c (XTread_socket): Dispatch expose event to widget
10986 if using toolkit scroll bars.
10987 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
10988 (x_scroll_bar_create): Create and show a scroll bar widget
10989 if using toolkit scroll bars.
10990 (x_scroll_bar_move): Handle tookit scroll bars.
10991
10992 * Makefile.in (LIBW): Use Xaw3d if present.
10993
10994 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10995 (HAVE_XAW3D): New.
10996
10997 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10998 (HAVE_XAW3D): New.
10999
11000 * xterm.c (XTset_vertical_scroll_bar): Correct position of
11001 right vertical scroll bar.
11002
11003 1998-10-20 Gerd Moellmann <gerd@gnu.org>
11004
11005 * xfns.c (xpm_load): Support reading XPM images from string
11006 buffers containing data in the same format as an XPM file.
11007 Support `:color-symbols'.
11008 (xpm_format): Add `:data'.
11009 (xpm_keyword_index): Add XPM_DATA.
11010 (syms_of_xfns): Add `:color-symbols'.
11011 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
11012 (xpm_valid_color_symbols_p): New.
11013 (xpm_image_p): Call it.
11014
11015 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
11016 attribute to the image if item is not enabled.
11017
11018 * xfns.c (x_laplace): New.
11019 (x_laplace_read_row): New.
11020 (x_laplace_write_row): New.
11021 (lookup_image): Handle common image attributes here. New
11022 attribute `:algorithm'.
11023
11024 * xfaces.c (clear_face_cache): Call clear_image_cache.
11025
11026 * xterm.c (x_inverted_image_mask): Removed.
11027 (x_draw_image_foreground_1): New.
11028 (x_draw_image_glyph_string): Draw images with mask to a temporary
11029 pixmap to reduce flickering.
11030
11031 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
11032 (display_toolbar_line): Remove parameter `margin'.
11033
11034 1998-10-19 Gerd Moellmann <gerd@gnu.org>
11035
11036 * xdisp.c (toolbar_lines_needed): New.
11037 (auto-resize-toolbars): New.
11038
11039 * xfns.c (cache_image): Correct call to xrealloc.
11040
11041 * dispnew.c (Fset_toolbar_height): Removed.
11042
11043 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
11044 FRAME_MENU_BAR_LINES.
11045
11046 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
11047 instead of FRAME_MENU_BAR_LINES.
11048 (check_frame_size): Ditto.
11049
11050 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
11051 instead of FRAME_MENU_BAR_LINES.
11052 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
11053 (build_frame_matrix): Ditto.
11054 (change_frame_size_1): Ditto.
11055
11056 * frame.h (FRAME_TOOLBAR_LINES): New.
11057 (FRAME_TOP_MARGIN): New.
11058
11059 * window.c (struct save_window_data): Add frame_toolbar_lines.
11060 (Fset_window_configuration): Handle toolbar lines.
11061 (Fcurrent_window_configuration): Save toolbar lines.
11062
11063 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
11064
11065 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
11066
11067 * frame.h (struct frame): Rename top_margin to toolbar_lines.
11068
11069 * xfns.c (x_frame_parms): Add `toolbar-lines'.
11070 (x_set_toolbar_lines): New.
11071
11072 * keyboard.c (cmd_error_internal): Bug fix.
11073
11074 * xterm.c: Remove double include of syssignal.h.
11075
11076 1998-10-18 Gerd Moellmann <gerd@gnu.org>
11077
11078 * xterm.c (x_toolbar_item): New.
11079 (x_handle_toolbar_click): Use it.
11080 (note_toolbar_highlight): Use it.
11081
11082 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
11083 and toolbar_items_vectors.
11084
11085 * xterm.c (help_echo): New.
11086 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
11087 (x_set_glyph_string_gc): Handle them.
11088 (x_after_update_window_line): Don't do anything in pseudo-windows.
11089 (x_produce_image_glyph): Take image margin and face relief into
11090 account.
11091 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
11092 (x_draw_glyph_string_background): Optimize case when face has
11093 relief.
11094 (x_setup_relief_color): Take frame instead of glyph string
11095 parameter.
11096 (x_draw_relief_rect): New.
11097 (x_draw_glyph_string_relief): Call it.
11098 (x_draw_image_glyph_string_foreground): Handle margin and image
11099 relief.
11100 (x_draw_image_glyph_string_background): Ditto.
11101 (expose_frame): Redraw toolbar window.
11102 (expose_window): Don't draw cursor for pseudo-windows.
11103 (x_y_to_hpos_vpos): Handle pseudo-windows.
11104 (frame_to_window_pixel_xy): New.
11105 (note_mouse_highlight): Call note_toolbar_highlight.
11106 (x_handle_toolbar_click): New.
11107 (note_toolbar_highlight): New.
11108 (show_mouse_face): Change int parameter `hl' to parameter of
11109 type enum draw_glyphs_face. Handle image highlighting.
11110 (XTread_socket): Return a HELP_EVENT input event if help_echo is
11111 non-nil. Use x_handle_toolbar_click.
11112
11113 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
11114
11115 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
11116 IMAGE_BOOL_VALUE.
11117 (parse_image_spec): Handle them.
11118 (image_spec_value): Additional parameter found.
11119 (free_image): Remove image from the vector `images' of the
11120 image cache.
11121 (clear_image_cache): Additional parameter force_p.
11122 (Fclear_image_cache): New.
11123 (x_find_image_file): New.
11124 (xbm_load): Handle `:margin' and `:relief'. Use
11125 x_find_image_file.
11126 (xpm_load): Likewise.
11127 (pbm_load): Likewise.
11128 (jpeg_load): Likewise.
11129 (tiff_load): Likewise.
11130 (gif_load): Likewise.
11131
11132 * keyboard.c (Qhelp_echo): New symbol.
11133 (read_char): Handle `toolbar' and `help_echo' events.
11134 (kbd_buffer_get_event): Handle HELP_ECHO input event.
11135 (make_lispy_event): Handle TOOLBAR_EVENT.
11136 (toolbar_items): New.
11137 (process_toolbar_item): New.
11138 (PROP): New.
11139 (init_toolbar_items): New.
11140 (append_toolbar_item): New.
11141 (read_char_x_menu_prompt): Handle `toolbar' event.
11142 (read_key_sequence): Ditto.
11143
11144 * xfaces.c (Qtoolbar): New.
11145 (realize_basic_faces): Realize `toolbar' face.
11146 (face_at_string_position): Remove parameter modeline_p, add
11147 base_face_id.
11148
11149 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
11150 to read data.
11151
11152 1998-10-17 Gerd Moellmann <gerd@gnu.org>
11153
11154 * xdisp.c (init_iterator): Replace parameter modeline_p with
11155 base_face_id.
11156 (next_element_from_string): Call get_next_display_element
11157 recursively after handling text properties.
11158 (prepare_menu_bars): Call update_toolbar.
11159 (update_toolbar): New.
11160 (build_desired_toolbar_string): New.
11161 (display_toolbar_line): New.
11162 (redisplay_toolbar): New.
11163 (toolbar_item_info): New.
11164 (redisplay_window): Call redisplay_toolbar.
11165 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
11166
11167 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
11168 window.
11169 (clear_desired_matrices): Ditto.
11170 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
11171 (free_glyphs): Free matrices of toolbar window.
11172 (update_frame): Update toolbar window.
11173 (change_frame_size_1): Take toolbar into account.
11174 (Fset_toolbar_height): New.
11175
11176 * dispextern.h (struct it): Remove member modeline_p, add
11177 base_face_id.
11178 (struct image): Add members relief and margin.
11179 (IMAGE_ASCENT): Include margin in height.
11180
11181 1998-10-14 Gerd Moellmann <gerd@gnu.org>
11182
11183 * xfns.c (Fclear_image_cache): New.
11184
11185 * xfaces.c (realize_basic_faces): Realize toolbar face.
11186 (face_at_string_position): Remove parameter modeline_p, add
11187 base_face_id.
11188
11189 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
11190
11191 1998-10-13 Gerd Moellmann <gerd@gnu.org>
11192
11193 * keyboard.c (syms_of_keyboard): Intern `:help'.
11194
11195 1998-10-12 Gerd Moellmann <gerd@gnu.org>
11196
11197 * xterm.c (note_toolbar_highlight): New.
11198 (note_mouse_highlight): Call it.
11199
11200 * window.c (window_from_coordinates): Additional parameter toolbar_p.
11201 (coordinates_in_window): Handle toolbar window.
11202
11203 * keyboard.c (toolbar_items): New.
11204 (process_toolbar_item): New.
11205 (parse_toolbar_item): New.
11206 (init_toolbar_items): New.
11207 (append_toolbar_item): New.
11208
11209 * dispextern.h (enum toolbar_item_idx): New.
11210 (enum toolbar_item_image): New.
11211
11212 * frame.h (struct frame): Add toolbar-related members.
11213
11214 * xfaces.c (face_at_string_position): Remove assertion that
11215 current_buffer == window's buffer. This is not the case when
11216 called for the toolbar window.
11217
11218 * frame.c (make_frame): Initialize toolbar members.
11219
11220 * alloc.c (mark_object): Mark toolbar data of frames.
11221
11222 * frame.h (struct frame): Add toolbar-related members
11223 toolbar_window, desired_toolbar_items, current_toolbar_items,
11224 desired_toolbar_string, current_toolbar_string,
11225 n_desired_toolbar_items, n_current_toolbar_items. Add
11226 window_height.
11227
11228 * xterm.c (x_after_update_window_line): Don't draw bitmap
11229 areas for pseudo-windows.
11230 (expose_frame): Handle toolbar window.
11231 (expose_window): Don't do cursor stuff for pseudo-windows.
11232
11233 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
11234
11235 1998-10-11 Gerd Moellmann <gerd@gnu.org>
11236
11237 * frame.c (make_frame): Initialize toolbar_window.
11238
11239 * alloc.c (mark_object): Make the toolbar window.
11240
11241 * dispnew.c (update_frame): Update frame's toolbar_window.
11242 (clear_current_matrices): Likewise.
11243 (clear_desired_matrices): Likewise.
11244 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
11245 (free_glyphs): Free the toolbar window and its matrices.
11246
11247 * frame.h (struct frame): Add toolbar_window.
11248
11249 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
11250 with relief.
11251
11252 1998-10-10 Gerd Moellmann <gerd@gnu.org>
11253
11254 * dispnew.c (buffer_posn_from_coords): Don't screw up if
11255 window start is not in the range BEGV..ZV.
11256
11257 1998-10-09 Gerd Moellmann <gerd@gnu.org>
11258
11259 * xdisp.c (try_scrolling): Experimentally handle the case
11260 that scroll-preserve-screen-position is set to `always'.
11261
11262 * window.c (Vscroll_preserve_screen_position): Replacement for
11263 scroll_preserve_screen_position.
11264
11265 1998-10-08 Gerd Moellmann <gerd@gnu.org>
11266
11267 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
11268 doesn't like it.
11269 * xdisp.c: Ditto.
11270
11271 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
11272
11273 1998-10-06 Gerd Moellmann <gerd@gnu.org>
11274
11275 * minibuf.c (Fminibuffer_complete_word): Fix computation of
11276 i_byte when prompts are inserted into minibuffers.
11277
11278 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
11279 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
11280 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
11281
11282 1998-10-04 Gerd Moellmann <gerd@gnu.org>
11283
11284 * xdisp.c (make_cursor_line_fully_visible): New.
11285 (try_scrolling): New.
11286 (redisplay_window): Move scrolling code to try_scrolling.
11287 (make_cursor_line_fully_visible): Handle case of window too small
11288 to show a single line.
11289 (redisplay_window): Case forced window start---use
11290 make_cursor_line_fully_visible.
11291 (redisplay_window): Case cursor movement via current matrix.
11292 If ending up on a partially visible line, make it fully visible
11293 instead of recentering.
11294 (try_scrolling): Additional parameter scroll_smoothly.
11295
11296 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
11297
11298 1998-09-28 Gerd Moellmann <gerd@gnu.org>
11299
11300 * window.c (window_scroll_pixel_based): Bug fix: vpos used
11301 instead of y-position for scroll-preserved-screen-position.
11302
11303 1998-09-07 Gerd Moellmann <gerd@gnu.org>
11304
11305 * dispnew.c (update_frame_line): If current row is not enabled,
11306 write the whole line.
11307
11308 1998-09-06 Gerd Moellmann <gerd@gnu.org>
11309
11310 * lisp.h (HAVE_FACES): Removed.
11311
11312 * dispextern.h (HAVE_FACES): Removed.
11313
11314 * config.in (HAVE_FACES): Removed.
11315
11316 * dispnew.c (HAVE_FACES): Removed.
11317
11318 * xdisp.c (HAVE_FACES): Removed.
11319
11320 * xfaces.c (HAVE_FACES): Removed.
11321
11322 1998-09-05 Gerd Moellmann <gerd@gnu.org>
11323
11324 * xdisp.c (init_iterator): If face_change_count is non-zero,
11325 free realized faces.
11326
11327 * xfaces.c (free_all_realized_faces): Make it externally visible.
11328 (Finternal_set_lisp_face_attribute): Increment
11329 windows_or_buffers_changed.
11330
11331 * dispnew.c (direct_output_for_insert): Give up if
11332 face_change_count is non-zero.
11333 (direct_output_forward_char): Ditto.
11334
11335 * xfaces.c (face_change_count): New.
11336
11337 1998-09-04 Gerd Moellmann <gerd@gnu.org>
11338
11339 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
11340 of range.
11341
11342 1998-09-03 Gerd Moellmann <gerd@gnu.org>
11343
11344 * term.c (Ftty_display_color_p): New.
11345
11346 1998-09-02 Gerd Moellmann <gerd@gnu.org>
11347
11348 * xfaces.c (Ftty_defined_colors): New.
11349
11350 * xterm.c (x_produce_glyphs): Fix computation of
11351 contains_overlapping_glyphs_p for ASCII.
11352
11353 * dispnew.c (Fshow_cursor): Don't change cursor state while
11354 redisplaying.
11355 (direct_output_for_insert): If a glyph with lbearing or rbearing
11356 is among the new glyphs, set row flag contains_overlapping_glyph_p.
11357
11358 1998-09-01 Gerd Moellmann <gerd@gnu.org>
11359
11360 * term.c (OUTPUT_IF): Make replacement text have statement form.
11361 (OUTPUT1_IF): Ditto.
11362 (TS_italic_mode, TS_end_italic_mode): Removed.
11363 (TS_bold_mode): Removed.
11364 (TS_underscore_mode, TS_end_underscore_mode): Removed.
11365 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
11366 (TS_enter_reverse_mode): New.
11367 (TS_enter_underline_mode, TS_exit_underline_mode): New.
11368 (TN_magic_cookie_glitch_ul): New.
11369 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
11370 (TS_exit_attribute_mode): New.
11371 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
11372 (TS_set_foreground, TS_set_background): New.
11373 (reset_terminal_modes): Switch colors back to default.
11374 (write_glyphs): Turn face on before writing text, turn it off
11375 afterwards.
11376 (insert_glyphs): Ditto.
11377 (term_init): Initialize new terminal capability variables.
11378 (turn_on_face): Turn a face on.
11379 (turn_off_face): Turn a face off.
11380
11381 * lisp.h (MAKE_GLYPH): Remove test for frame type.
11382 (GLYPH_CHAR): Ditto.
11383 (GLYPH_FACE): Ditto.
11384
11385 * xfaces.c (Vface_tty_color_alist): New.
11386 (face-register-tty-color): New.
11387 (face-clear-tty-colors): New.
11388
11389 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
11390 (struct it): Remove member faces_p since we now always have faces.
11391
11392 1998-08-31 Gerd Moellmann <gerd@gnu.org>
11393
11394 * dispextern.h (struct face): Add tty appearance flags.
11395
11396 * xdisp.c (init_iterator): Always handle faces.
11397 (extend_face_to_end_of_line): Handle tty frames.
11398
11399 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
11400 passed in.
11401
11402 1998-08-30 Gerd Moellmann <gerd@gnu.org>
11403
11404 * xfaces.c (realize_default_face): Use empty strings to indicate
11405 that the face should use the default foreground/background
11406 color of the terminal. Fill font-related attributes with
11407 appropriate values for tty frames.
11408
11409 * emacs.c (main): Call syms_of_xfaces before init_window_once.
11410
11411 * xfaces.c (realize_default_face): If face `default' is not
11412 yet known, create it.
11413
11414 * frame.c (make_terminal_frame): Call init_frame_faces
11415 unconditionally.
11416
11417 * xfaces.c (init_frame_faces): Make it work for tty frames.
11418 (free_frame_faces): Ditto.
11419 (clear_face_cache): Ditto.
11420 (recompute_basic_faces): Ditto.
11421 (Fframe_face_alist): Ditto.
11422 (free_realized_face): Ditto.
11423 (prepare_face_for_display): Ditto.
11424 (clear_face_gcs): Ditto.
11425 (lookup_face): Ditto.
11426 (smaller_face): Ditto.
11427 (realize_default_face): Ditto.
11428 (realize_face): Ditto.
11429 (realize_face): Dispatch to functions depending on the frame type.
11430 (realize_x_face): X way of realizing faces.
11431 (realize_tty_face): TTY way of realizing faces.
11432
11433 1998-08-29 Gerd Moellmann <gerd@gnu.org>
11434
11435 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11436 compute it instead.
11437 (lookup_face): Remove local variable unibyte_registry.
11438
11439 1998-08-22 Gerd Moellmann <gerd@gnu.org>
11440
11441 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11442 1 pixel longer.
11443
11444 * xdisp.c (face_before_or_after_it_pos): Fix computation
11445 of face in buffer.
11446
11447 * editfns.c (make_buffer_string_both): If prompt in buffer,
11448 prevent start > end.
11449
11450 * indent.c (Fvertical_motion): Set current_buffer to window's
11451 buffer if it isn't already.
11452
11453 1998-08-21 Gerd Moellmann <gerd@gnu.org>
11454
11455 * dispextern.h (GLYPH_DEBUG): Use default 0.
11456
11457 * xdisp.c (it_props): New member `smaller'.
11458 (init_iterator): Initialize it.
11459 (Qsmaller): New.
11460 (push_it): Save value of `smaller' value on the stack.
11461 (pop_it): Restore `smaller' from the stack.
11462 (handle_smaller_prop): New.
11463 (handle_face_prop): Use `smaller' text property to select a
11464 suitable face.
11465
11466 * dispextern.h (SMALLER_PROP_IDX): New.
11467 (struct it): Add member `smaller'.
11468
11469 * xfaces.c (smaller_face): New.
11470
11471 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11472
11473 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11474 total pixel width of window differently.
11475
11476 * xdisp.c (init_iterator): Compute width of mode line differently.
11477
11478 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11479 of bitmap areas.
11480
11481 * window.c (Fsplit_window): Include width of bitmap areas in
11482 window width.
11483 (window_internal_width): Subtract width of bitmap areas from
11484 total width.
11485
11486 1998-08-18 Gerd Moellmann <gerd@gnu.org>
11487
11488 * xdisp.c: Functions reordered for better readability.
11489
11490 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11491 lbearing.
11492 (update_window_tree): Parameter no_scrolling_p removed.
11493 (update_single_window): Ditto.
11494
11495 * xterm.c (x_get_char_font_and_encoding): Renamed to
11496 x_get_char_face_and_encoding.
11497
11498 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11499 if end of current row reached.
11500
11501 * xterm.c (x_get_glyph_face_and_encoding): New.
11502 (x_get_glyph_overhangs): Call it.
11503
11504 * xdisp.c (Qshow_trailing_whitespace): New.
11505 (Qtrailing_whitespace): New.
11506 (enum prop_handled): New.
11507 (struct props, it_props): New.
11508 (next_overlay_change): New. Works like Fnext_overlay_change
11509 but doesn't use xmalloc.
11510 (handle_stop): Restructured.
11511 (face_before_or_after_it_pos): Case iteration over a string: fix
11512 handling of face before current position.
11513
11514 1998-08-16 Gerd Moellmann <gerd@gnu.org>
11515
11516 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11517 reallocation matrix if fonts_changed_p.
11518 (update_text_area): Handle glyphs with lbearing.
11519
11520 1998-08-14 Gerd Moellmann <gerd@gnu.org>
11521
11522 * xdisp.c (struct props): New.
11523 (it_props): New.
11524 (compute_prop_info): New.
11525 (handle_stop): New.
11526
11527 * textprop.c (validate_interval_range): Make it externally
11528 visible.
11529
11530 * dispnew.c (direct_output_for_insert): Remove calls
11531 to compute_stop_pos.
11532
11533 * dispextern.h (struct it): Remove check_charpos,
11534 next_overlay_pos. Add what_changes.
11535
11536 1998-08-10 Gerd Moellmann <gerd@gnu.org>
11537
11538 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11539
11540 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11541 face_default_registry instead.
11542
11543 * syntax.c (scan_sexps_forward): Set up syntax table before
11544 jumping to initial state label.
11545
11546 1998-08-09 Gerd Moellmann <gerd@gnu.org>
11547
11548 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11549 >= ZV specially.
11550
11551 1998-08-08 Gerd Moellmann <gerd@gnu.org>
11552
11553 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11554 ends up in partially visible row, try to scroll. Case forced
11555 window start---handle windows not tall enough to show a single
11556 line.
11557
11558 * window.h (struct window): Member dy renamed vscroll.
11559
11560 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11561 fonts.
11562 (x_draw_stretch_glyph_string): Set clipping if using GC that
11563 hasn't set it yet.
11564
11565 * xdisp.c (redisplay_window): Case forced window start -
11566 don't let cursor end on partially visible row. Use desired
11567 matrix to find a suitable PT if it doesn't appear.
11568 (decode_mode_spec): Merged with 20.2.97.
11569 (try_window_reusing_current_matrix): Give up if old or
11570 new display is vscrolled.
11571 (redisplay_window): Reset vscrolling if forced window start,
11572 or if recentering.
11573
11574 1998-08-06 Gerd Moellmann <gerd@gnu.org>
11575
11576 * xfaces.c (realize_default_face): Use the fontset name instead of
11577 the alias for the family attribute of the default face because we
11578 can't easily determine a good alias from fontset-alias-alist.
11579 (face_fontset): Use Fquery_fontset to find the fontset.
11580 (font_list): Additional pattern parameter.
11581 (try_font_list): Ditto.
11582 (set_lface_from_font_name): Set face family from font foundry
11583 and family.
11584 (font_list): If family contains a hyphen, build pattern differently.
11585
11586 1998-08-05 Gerd Moellmann <gerd@gnu.org>
11587
11588 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11589 changed instead of setting the frame garbaged.
11590
11591 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11592 all attribute values. This is wrong if values are unspecified,
11593 i.e. nil.
11594
11595 * xdisp.c (try_window_id): Give up if window start changed.
11596
11597 * xfaces.c (make_realized_face): Store registry as Lisp object.
11598 (load_face_font_or_fontset): Compute registry of a face
11599 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11600 possible.
11601
11602 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11603 differently.
11604
11605 * alloc.c (mark_face_cache): Mark the registry member of faces.
11606
11607 * dispextern.h (struct face): Make registry a Lisp string.
11608
11609 1998-08-04 Gerd Moellmann <gerd@gnu.org>
11610
11611 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11612 multibyte_p. Handle unibyte text.
11613 (x_append_glyph): Set the multibyte_p flag of glyphs.
11614 (x_produce_image_glyph): Ditto.
11615 (x_append_stretch_glyph): Ditto.
11616 (x_produce_glyphs): Handle unibyte text like ASCII.
11617
11618 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11619 stack.
11620 (pop_it): Restore it.
11621 (face_before_or_after_it_pos): Handle the case that the string or
11622 buffer is unibyte.
11623 (get_overlay_strings): Set the multibyte flag of the iterator if
11624 the new overlay string is multibyte.
11625 (get_glyph_property): Likewise.
11626 (get_next_display_element): Don't check for charset changes in
11627 unibyte text.
11628 (append_space): Compute face differently for unibyte text.
11629 (extend_face_to_end_of_line): Don't return quickly if face has
11630 stipple.
11631
11632 * xfaces.c (load_face_font_or_fontset): Store registry and
11633 encoding of the font in the registry member of the face.
11634 (make_realized_face): Additional parameter `registry'.
11635 (free_realized_face): Free the registry of a realized face.
11636 (face_suitable_for_charset_p): Function form of the macro
11637 with the same name in uppercase.
11638 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11639 (choose_face_font): New parameter unibyte_registry.
11640 (choose_face_fontset_font): Ditto.
11641 (realize_default_face): Remember the registry and encoding of
11642 the specified frame font in Vx_unibyte_registry_and_encoding.
11643 (face_at_buffer_position): Handle unibyte.
11644 (face_at_string_position): Likewise.
11645 (realize_face): New parameter unibyte_registry.
11646 (compute_char_face): Handle the unibyte case.
11647
11648 * dispextern.h (struct glyph): Add bit multibyte_p.
11649 (struct face): New member registry holding the registry and
11650 encoding of the X font of the face.
11651 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11652 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11653 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11654 text.
11655 (struct iterator_stack_entry): Add multibyte_p.
11656
11657 * xdisp.c (string_pos): Use string_char_to_byte.
11658 (char_charset): Removed.
11659
11660 1998-08-03 Gerd Moellmann <gerd@gnu.org>
11661
11662 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11663 rectangle for a block cursor over an image without a mask.
11664 (x_stretch_block_cursor): Added. Non-zero means don't draw
11665 a block cursor over a stretch as wide as that stretch.
11666 (x_draw_stretch_glyph_string): Use it.
11667 (x_draw_hollow_cursor): Ditto.
11668
11669 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11670 (read_minibuf): Add front-sticky text property for prompt.
11671
11672 * xdisp.c (char_charset): Return charset of a character,
11673 depending on whether or not multi-byte characters are enabled.
11674
11675 * xfaces.c (Fset_face_charset_registry): Removed.
11676 (x_charset_registry): Determine registry from charset plist.
11677
11678 1998-08-02 Gerd Moellmann <gerd@gnu.org>
11679
11680 * xdisp.c (get_next_display_element): Don't check for charset
11681 changes if multi-byte characters are not enabled.
11682
11683 * xdisp.c (echo_area_display): Use the flush function from the
11684 redisplay interface.
11685 * keyboard.c (detect_input_pending_run_timers): Likewise.
11686
11687 * dispextern.h (produce_*glyphs_hook): Removed.
11688 * term.c (produce_*glyphs): Ditto.
11689 (cursor_to): Remove pixel position parameters.
11690
11691 * dispnew.c: Remove hooks for window-based redisplay, introduce
11692 a redisplay interface structure.
11693
11694 * xterm.c (x_per_char_metric): Return default char metrics if per
11695 char metric exists but contains a zero width. Adobe Courier seems
11696 to contain such characters.
11697
11698 * xdisp.c (compute_line_metrics): Compute the width of rows
11699 without stopping at glyphs with zero width.
11700
11701 1998-08-01 Gerd Moellmann <gerd@gnu.org>
11702
11703 * xdisp.c (display_mode_line): If nothing was displayed at all,
11704 display a space.
11705 (hscroll_window_tree): Don't subtract 1 from target point if equal
11706 to ZV and window is not the selected window.
11707
11708 * dispnew.c (check_matrix_invariants): Remove check for window
11709 start at BEGV or after newline. This happens in rare cases
11710 intentionally.
11711
11712 1998-07-31 Gerd Moellmann <gerd@gnu.org>
11713
11714 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11715 (syms_of_xfaces): Add Vface_default_registry.
11716 (x_charset_registry): Use it.
11717
11718 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11719 (redisplay_window): Use it.
11720
11721 * dispnew.c (update_text_area): Handle lbearing of deleted text
11722 by backing up one character.
11723
11724 1998-07-30 Gerd Moellmann <gerd@gnu.org>
11725
11726 * dispnew.c (adjust_glyph_matrix): Use a different check to
11727 decide to do nothing.
11728
11729 * xfaces.c (face_at_string_position): Additional parameter
11730 mode_line_p. If non-zero, merge with the mode line face
11731 instead of the default face.
11732 * dispextern.h (struct it): Add mode_line_p.
11733 * xdisp.c (init_iterator): Set it.
11734 (compute_face_in_string): Use it.
11735 (face_before_or_after_it_pos): Handle strings.
11736 (get_next_display_element): Don't look for relief end in C strings.
11737 (next_element_from_string): Deliver string position instead of
11738 buffer position.
11739
11740 * xterm.c (x_flush): Flush X output buffer.
11741 (XTflash): Use it.
11742
11743 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11744 Allow strings as face names.
11745
11746 * xfns.c (forall_images_in_image_cache): Check that frame is
11747 alive.
11748
11749 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11750 it's also called from x_destroy_window. Since this function is
11751 called from X, freeing stuff allocated with xmalloc is dangerous
11752 here, anyway.
11753
11754 * xfaces.c (free_realized_faces): Don't clear current matrices
11755 of a frame being destroyed.
11756
11757 * frame.c (make_frame): Call set_window_buffer instead of
11758 Fset_window_buffer.
11759
11760 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11761 with an additional argument specifying whether or not hooks may
11762 be called.
11763 (Fset_window_buffer): Call it.
11764
11765 * dispnew.c (clear_desired_matrices): Check that frame has
11766 a valid root window before clearing matrices in the window tree.
11767 (clear_current_matrices): Ditto.
11768 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11769 vchild are valid windows if not nil.
11770
11771 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11772 for :inverse-video.
11773 (Finternal_set_lisp_face_attribute): Ditto.
11774 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11775 (Finternal_get_lisp_face_attribute): Ditto.
11776 (Finternal_lisp_face_attribute_values): Ditto.
11777 (syms_of_xfaces): Define the symbol `:reverse-video'.
11778
11779 * xdisp.c (get_glyph_property): Renamed from
11780 fill_iterator_from_glyph_property.
11781 (next_element_from_buffer): Handle case that no `glyph' property
11782 was found correctly.
11783 (display_line): Extend face to end of line only if we have faces.
11784
11785 1998-07-29 Gerd Moellmann <gerd@gnu.org>
11786
11787 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11788 additional window argument.
11789
11790 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11791 set_iterator_to_previous_visible_line_start.
11792 (reseat_at_next_visible_line_start): Likewise.
11793 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11794 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11795 (compute_face_in_buffer): Renamed from
11796 compute_face_at_iterator_position.
11797 (compute_face_in_string): Renamed from
11798 compute_face_at_iterator_string_position.
11799 (get_space_width): Renamed from get_iterator_space_width.
11800 (next_overlay_string): Renamed from
11801 set_iterator_to_next_overlay_string.
11802 (get_overlay_strings): Renamed from
11803 get_overlay_strings_at_iterator_position.
11804 (restore_overlay_strings): Renamed from
11805 setup_overlay_strings_from_glyph_pos.
11806 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11807 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11808 (init_to_row_start): Renamed from init_iterator_to_row_start.
11809 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11810
11811 * xterm.c: Merge with 20.2.97.
11812 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11813
11814 * dispextern.h (struct glyph): Replace text_pos position with
11815 simple charpos.
11816
11817 * xdisp.c (this_line_start_pos): Use struct text_pos.
11818 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11819 (enum move_it_result): Renamed from move_iterator_result.
11820 (string_pos_nchars_ahead): Compute text_pos in a string from a
11821 known text_pos plus a character delta.
11822 (string_pos): Compute text_pos in string from charpos.
11823 (c_string_pos): Likewise for a C string.
11824 (number_of_chars): Return number of characters in a possibly
11825 multi-byte C string.
11826 (check_it): Renamed from check_iterator. Check that charpos and
11827 bytepos are in sync.
11828 (push_it): Renamed from save_iterator_settings.
11829 (pop_it): Renamed from restore_iterator_settings.
11830 (move_it_.*): Renamed from move_iterator_.*.
11831 (charset_at_position): Take charpos/bytepos into account.
11832 (back_to_previous_line_start): Set iterator to previous line start.
11833 (forward_to_next_line_start): Set iterator to next line start.
11834 (back_to_previous_visible_line_start): Renamed from
11835 move_iterator_previous_visible_line_start.
11836 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11837 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11838 Handle charpos/bytepos.
11839 (compute_face_at_iterator_position): Handle charpos/bytepos.
11840 (compute_face_at_iterator_string_position): Likewise.
11841 (get_iterator_space_width): Likewise.
11842 (load_overlay_strings): Likewise.
11843 (get_overlay_strings_at_iterator_position): Likewise.
11844 (reseat_iterator): Take a text_pos position argument.
11845 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11846 bytepos.
11847 (init_iterator): Take additional bytepos parameter.
11848 (reseat_iterator_to_string): Handle charpos/bytepos.
11849 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11850 (next_element_from_string): Handle charpos/bytepos.
11851 (next_element_from_c_string): Likewise.
11852 (fill_iterator_from_glyph_property): Likewise.
11853 (next_element_from_buffer): Likewise.
11854 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11855 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11856 (move_it_to): Likewise.
11857 (move_it_vertically_backward): Likewise.
11858 (move_it_vertically): Likewise.
11859 (move_it_by_lines): Likewise.
11860 (hscroll_window_tree): Likewise.
11861 (redisplay_internal): Likewise.
11862 (set_cursor_from_row): Likewise.
11863 (redisplay_window): Likewise.
11864 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11865 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11866 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11867 (try_window_id): Handle charpos/bytepos.
11868 (Ftrace_redisplay_toggle): Return Qnil.
11869 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11870 (insert_left_trunc_glyphs): Likewise.
11871
11872 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11873 do a real merge).
11874 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11875 (increment_glyph_row_buffer_positions): Ditto.
11876 (copy_glyph_row_contents): Ditto.
11877 (check_matrix_invariants): Add additional checks for charpos/
11878 bytepos consistency.
11879 (direct_output_for_insert): Changed for charpos/bytepos.
11880 (buffer_posn_from_coords): Likewise. Put code dealing with
11881 `direction-reversed' in #if 0.
11882
11883 * xterm.h: Merge with 20.2.97.
11884
11885 * frame.h: Merge with 20.2.97.
11886
11887 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11888
11889 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11890 start.
11891 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11892 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11893 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11894 (struct it): Various members renamed from .*pos to .*charpos.
11895 (IT_CHARPOS): Access current buffer character position of an
11896 iterator.
11897 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11898 (IT_STRING_CHARPOS): Access current string character position of
11899 an iterator.
11900 (IT_STRING_BYTEPOS): Access current string byte position of
11901 an iterator.
11902 (globally): Add function prototypes from 20.2.97.
11903
11904 * everywhere: Use P_ instead of PROTO for function prototypes
11905 because everyone else seems to use P_.
11906
11907 * dispextern.h (struct text_pos): Structure describing a charpos/
11908 bytepos position in text.
11909 (BYTEPOS): Access the byte position part of a text_pos.
11910 (CHARPOS): Likewise for the character position.
11911 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11912 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11913 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11914 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11915 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11916 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11917 for buffer and string positions.
11918 (struct glyph): Use text_pos.
11919 (struct it): Renamed from display_iterator. Use text_pos.
11920
11921 1998-07-23 Gerd Moellmann <gerd@gnu.org>
11922
11923 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11924 pixmap.
11925
11926 1998-07-21 Gerd Moellmann <gerd@gnu.org>
11927
11928 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11929 * xterm.c (x_draw_row_bitmaps): Use it.
11930 * dispnew.c (row_equal_p): Ditto.
11931 (update_window_line): Ditto.
11932
11933 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11934 flag of images.
11935
11936 * dispextern.h (struct image): Removed member loading_failed_p.
11937 It's probably better to have the chance to try to load an image
11938 again.
11939
11940 1998-07-20 Gerd Moellmann <gerd@gnu.org>
11941
11942 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11943 at ZV if `indicate-zv-lines' is non-nil.
11944 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11945
11946 * dispnew.c (row_equal_p): Compare displays_text_p and
11947 ends_at_zv_p flags of rows.
11948 (update_window_line): Ditto.
11949
11950 * buffer.h (struct buffer): New member indicate_zv_lines.
11951
11952 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11953 (init_buffer_once): New variable `default-indicate-zv-lines'.
11954 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11955
11956 * xdisp.c (redisplay_window): Don't try moving the cursor
11957 if current glyph row w->last_cursor.vpos isn't enabled.
11958
11959 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11960
11961 * window.c (Fset_window_vscroll): Allow only negative scroll
11962 values. Others don't seem to make sense, and this way it's easy
11963 to restore a vscroll of zero.
11964
11965 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11966 allocated.
11967 (x_draw_image_glyph_string_background): Don't clip if pixmap
11968 could not be created.
11969
11970 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11971 be created.
11972 (xbm_load): Ditto.
11973 (gs_load): Ditto.
11974
11975 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11976 glyphs into account.
11977
11978 * xfaces.c (realize_default_face): Don't set font family of
11979 the default face from the fontset alias name for `fontset-startup'.
11980
11981 * xfns.c (gs_load): Pass frame's pixel foreground and background
11982 color to the Lisp loader.
11983
11984 1998-07-19 Gerd Moellmann <gerd@gnu.org>
11985
11986 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11987 libtiff34.
11988
11989 * configure.in (--with-tiff, HAVE_TIFF): Added.
11990
11991 * config.in (HAVE_TIFF): Added.
11992
11993 * Makefile.in (LIBTIFF): Added.
11994
11995 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11996
11997 * Makefile.in (LIBJPEG): Added.
11998
11999 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
12000 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
12001 jpeglib.h.
12002
12003 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
12004 where the library is installed in /usr/local/lib, e.g. FreeBSD,
12005 configure must be run with `--x-includes=/usr/X11R6/include:
12006 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
12007
12008 1998-07-18 Gerd Moellmann <gerd@gnu.org>
12009
12010 * config.in (HAVE_JPEG): Added.
12011
12012 * xfns.c (ct_init): Initialize color table used to map RGB colors
12013 from images to X pixel colors.
12014 (ct_free): Free color table.
12015 (ct_lookup): Look an RGB color up.
12016 (ct_allocated_colors): Get vector of allocated colors.
12017 (pbm_image_p): Test if image specification is a valid PPM
12018 image specification.
12019 (pbm_scan_number): Scan a decimal ASCII number from a file.
12020 (pbm_load): Load a PPM image.
12021
12022 * window.c (Fset_window_vscroll): Adjust glyph matrix if
12023 necessary. Take canonical character units as parameter.
12024 (Fwindow_vscroll): Return canonical character units.
12025
12026 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
12027 w->dy to display height for which glyph rows must be allocated.
12028
12029 1998-07-17 Gerd Moellmann <gerd@gnu.org>
12030
12031 * xfaces.c (face_at_string_position): Merge in region face
12032 so that it won't overwrite the font in the region.
12033 (face_at_buffer_position): Ditto.
12034 (realize_basic_faces): Don't realize region face.
12035
12036 * dispextern.h (enum face_id): REGION_FACE_ID removed.
12037
12038 * xterm.c (x_set_glyph_string_background_width): Don't let
12039 cursor face extend to end of line.
12040
12041 * xdisp.c (append_space): If adding space of default face,
12042 make sure glyph ist produced with right face.
12043
12044 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
12045 background color of a glyph string.
12046 (x_draw_glyph_string_background): Call it.
12047 (x_draw_glyph_string_bg_rect): Ditto.
12048 (x_draw_stretch_glyph_string): Ditto.
12049
12050 1998-07-15 Gerd Moellmann <gerd@gnu.org>
12051
12052 * xdisp.c (init_iterator): Initialize it->current_y to the
12053 window's vscroll w->dy.
12054
12055 * window.c (Fwindow_vscroll): Return number of pixels window
12056 is vscrolled smoothly.
12057 (Fset_window_vscroll): Set the number.
12058
12059 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
12060 to_pos in truncated part of a line.
12061
12062 1998-07-14 Gerd Moellmann <gerd@gnu.org>
12063
12064 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
12065 doesn't fit on the line, truncate it, despite truncate_lines nil.
12066 (display_line): Ditto.
12067
12068 * xfns.c: Experimental support for Ghostscript images.
12069
12070 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
12071 (XTread_socket): React on events from Ghostscript.
12072 (expose_frame): If width or height are zero, redraw entire frame.
12073 (XTread_socket): Call expose_frame after receiving event from
12074 Ghostscript.
12075
12076 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
12077 for Ghostscript support.
12078
12079 * xdisp.c (redisplay_internal): Return quickly if called
12080 recursively.
12081
12082 * alloc.c (NSTATICS): Increased to 1024.
12083
12084 1998-07-08 Gerd Moellmann <gerd@gnu.org>
12085
12086 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
12087 iterator's glyph row.
12088 (x_produce_stretch_glyph): Call it.
12089 (x_produce_glyphs): Handle `space-width' property; call
12090 x_append_stretch_glyph.
12091
12092 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
12093 property.
12094 (get_iterator_space_width): Determine value of `space-width'
12095 property at iterator's position.
12096 (reseat_iterator): Call it.
12097 (next_element_from_string): Ditto.
12098 (next_element_from_buffer): Ditto.
12099 (init_iterator): Initialize space_width of iterator.
12100 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
12101 moved, but cursor blinks.
12102 (redisplay_internal): Set w->last_cursor_off_p after update.
12103
12104 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
12105 (struct display_iterator): Add new member space_width.
12106
12107 * window.h (struct window): Add last_cursor_off_p.
12108
12109 1998-07-07 Gerd Moellmann <gerd@gnu.org>
12110
12111 * Saved.
12112
12113 * window.c (Fpos_visible_in_window_p): Case window not up to
12114 date---return nil if iterator hasn't reached position.
12115
12116 1998-07-06 Gerd Moellmann <gerd@gnu.org>
12117
12118 * xdisp.c (text_outside_line_unchanged_p): Fix case that
12119 overlays have changed.
12120 (redisplay_window): Case cursor movement. Don't try it if
12121 last_cursor.vpos is out of range.
12122
12123 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
12124 way, the display optimization for the line containing the cursor
12125 is used more frequently, esp. when we have a blinking cursor.
12126 (display_line): Don't set this_line_.* variables.
12127
12128 * xterm.c (x_redraw_cursor): Removed.
12129 (x_display_and_set_cursor): Set cursor type depending on
12130 cursor_off_p flag of window.
12131
12132 * dispnew.c (redraw_cursor_hook): Removed.
12133 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
12134 member of the selected window.
12135
12136 * xfaces.c (Fface_font): Added for compatibility with 20.2.
12137
12138 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
12139 Return glyph area under x/y.
12140 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
12141
12142 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
12143 after redisplaying.
12144
12145 1998-07-05 Gerd Moellmann <gerd@gnu.org>
12146
12147 * xdisp.c (text_outside_line_unchanged_p): Test if changes
12148 are all outside of a line of text.
12149 (redisplay_internal): Use it.
12150
12151 1998-06-30 Gerd Moellmann <gerd@gnu.org>
12152
12153 * xdisp.c (next_element_from_buffer): After skipping over
12154 invisible text, look for the `glyph' property.
12155 (set_iterator_stop_pos): Ignore check positions in front
12156 of an iterator's current position.
12157
12158 * xterm.c (show_mouse_face): Don't act on rows that don't exist
12159 anymore or which are marked as not having valid contents.
12160
12161 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
12162 realized faces if new attribute value is equal to old value.
12163
12164 1998-06-29 Gerd Moellmann <gerd@gnu.org>
12165
12166 * xfaces.c (Finternal_make_lisp_face): Increment
12167 lface_id_to_name_size when lface_id_to_name is reallocated.
12168
12169 1998-06-27 Gerd Moellmann <gerd@gnu.org>
12170
12171 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
12172 as minimum of endpos and overlay_pos.
12173 (load_overlay_strings): Set next_overlay_pos of iterator to
12174 -1 if we don't have to check for more overlay strings.
12175
12176 1998-05-09 Gerd Moellmann <gerd@gnu.org>
12177
12178 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
12179 do anything if iterator is at ZV because scan_buffer doesn't
12180 work otherwise.
12181
12182 * xterm.c (x_encode_char): Inline it.
12183 (x_get_char_font_and_encoding): Simplified.
12184 (x_per_char_metric): Inline it.
12185
12186 * xterm.c (x_draw_glyph_string_relief): Use clipping.
12187
12188 * xdisp.c (get_next_display_element): Check for end of relief
12189 face moved here from next_element_from_buffer.
12190
12191 * xterm.c (x_produce_image_glyph): Add relief thickness.
12192 (x_produce_stretch_glyph): Ditto.
12193
12194 1998-05-08 Gerd Moellmann <gerd@gnu.org>
12195
12196 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
12197 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
12198
12199 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
12200 from a glyph property.
12201 (x_produce_glyphs): Use it.
12202
12203 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
12204
12205 * xterm.c (x_produce_image_glyph): Add to current_x only if
12206 in text area.
12207 (x_produce_glyphs): Ditto.
12208
12209 * xdisp.c (display_line): Compute row height from glyphs in
12210 marginal areas.
12211
12212 * xterm.c (x_draw_image_glyph_string_background): Draw
12213 background of an image glyph string.
12214 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
12215 the background of a glyph string.
12216 (x_draw_image_glyph_string_foreground): Draw the foreground of
12217 an image glyph string.
12218 (x_inverted_image_mask): Return the inverted mask of an image.
12219
12220 * xfns.c (x_draw_image): Removed.
12221
12222 * dispextern.h (struct image_type): Remove drawing function.
12223
12224 * xfaces.c (load_face_colors): Swap colors if face is inverse.
12225
12226 * xdisp.c (get_next_display_element): In marginal areas, translate
12227 newlines, tabs, etc. like normal control characters.
12228
12229 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
12230 and color.
12231 (free_realized_faces): Set frame garbaged.
12232
12233 * xfaces.c (syms_of_xfaces): Add defsubr for
12234 internal-lisp-face-attribute-values.
12235
12236 1998-05-07 Gerd Moellmann <gerd@gnu.org>
12237
12238 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
12239 full.
12240 (x_produce_image_glyph): Set IT->nglyphs to 1.
12241 (x_draw_image_glyph_string): Use inverted mask to draw background.
12242
12243 * dispextern.h (struct image_type): Additional clipping rect
12244 parameters for drawing functions.
12245
12246 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
12247 a glyph string.
12248 (x_draw_image_glyph_string): Use it and pass the rect to the
12249 image drawing function.
12250
12251 * xdisp.c (fill_iterator_from_glyph_property): Use position of
12252 first character with `glyph' property as image position. Set
12253 iterator back to that position as long as the image hasn't been
12254 consumed with set_iterator_to_next.
12255 (set_cursor_from_row): Accept when glyph with given position is
12256 not found in the row. Set cursor x to end of line in that case,
12257 so that we can hscroll.
12258 (redisplay_internal): Correct computation of delta by which
12259 positions have changed in redisplay optimization for cursor
12260 row of selected window.
12261
12262 * xdisp.c (display_line): Remove start_pos.
12263 (display_line): Fix bug preventing display optimization for
12264 cursor line of selected window.
12265 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
12266 instead.
12267
12268 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
12269 (update_text_area): Take glyph pixel width into account
12270 when trying to find a resync point.
12271 (row_equal_p): Compare glyphs in all areas.
12272
12273 1998-05-06 Gerd Moellmann <gerd@gnu.org>
12274
12275 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
12276
12277 * dispextern.h (struct glyph_row): Use unsigned hash value.
12278
12279 * xdisp.c (display_line): Simplified and made faster by setting
12280 the cursor with set_cursor_from_row.
12281 (set_cursor_from_row): Handle rows of desired matrix.
12282
12283 1998-05-05 Gerd Moellmann <gerd@gnu.org>
12284
12285 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
12286 with type != CHAR_GLYPH.
12287 (fill_iterator_from_glyph_property): Return void. Set
12288 method to next_element_from_image.
12289 (next_element_from_image): Dummy function for delivering a
12290 single image id.
12291 (set_iterator_to_next): Add method next_element_from_image.
12292 (redisplay_window): When recentering, and cursor vpos is -1
12293 after display, assume middle of window is in first line displayed
12294 in window, and display again.
12295 (fill_iterator_from_glyph_property): Assign image glyph
12296 the position of the first character having the glyph property.
12297
12298 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
12299 * xfns.c (x_draw_image): Use it.
12300 * xterm.c (x_produce_image_glyph): Use it.
12301
12302 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
12303
12304 * Makefile.in: Extraneous #define of LIBXPM removed.
12305
12306 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
12307 (x_fill_stretch_glyph_string): Fill a glyph string from a
12308 stretch glyph.
12309 (x_compute_glyph_string_overhangs): Compute overhangs only
12310 for text glyph strings.
12311 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
12312 (x_draw_glyph_string): Call it.
12313
12314 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
12315 (struct glyph): Add sub-structure for stretchable glyphs.
12316 (GLYPH_EQUAL_P): Compare glyph type and u.val.
12317
12318 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
12319 #ifdef HAVE_FACES.
12320
12321 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
12322
12323 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
12324 setup_iterator_from_glyph_property. Don't do it for terminal
12325 frames.
12326
12327 * xterm.c (x_produce_image_glyph): Produce glyph for image
12328 that can't be loaded.
12329
12330 * xfns.c (lookup_image): If image can't be loaded, set its
12331 width and height so that we can draw a rectangle.
12332 (x_draw_image): Draw a rectangle for images that don't have
12333 a pixmap.
12334 (make_image): Set hash value.
12335 (image_spec_equal_p): Use image_spec_value.
12336
12337 * xterm.c (expose_frame): Don't try to redraw if basic faces
12338 haven't benn realized yet.
12339 (x_draw_image_glyph_string): Fill background only if image
12340 is not as tall as row.
12341
12342 1998-05-04 Gerd Moellmann <gerd@gnu.org>
12343
12344 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
12345 (LIBX)[HAVE_X11]: Add LIBXPM.
12346
12347 * xfns.c (xpm_image_p): Implementation of image type functions
12348 for XPM.
12349 (xpm_load): Ditto.
12350
12351 * dispextern.h (struct image): Add mask pixmap for XPM.
12352
12353 * xfns.c (x_draw_image): Handle images with masks.
12354
12355 * configure.in: --with-xpm added. Code detecting -lXpm added.
12356
12357 * config.in: Add HAVE_XPM.
12358
12359 * xfns.c (xbm_draw): Removed.
12360 (x_draw_image): Default implementation for drawing images.
12361 (xbm_keyword_index): Remove XBM_DEPTH.
12362 (xbm_format): Remove `:depth'.
12363 (xbm_image_spec_from_file): Removed to reduce consing.
12364 (xbm_load_image_from_file): Added for the same reason.
12365
12366 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
12367 glyph string.
12368 (x_draw_image_glyph_string): Pass ybase to image draw function.
12369
12370 * xfns.c (make_image): Set default baseline.
12371
12372 * xterm.c (x_produce_image_glyph): Compute ascent of image
12373 from its height and baseline percentage.
12374
12375 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
12376 (xbm_format): Add description for `:baseline'.
12377 (xbm_image_spec_from_file): Add keywords from original spec to
12378 result.
12379 (xbm_load): Set baseline of image.
12380 (xbm_image_p): Check range for baseline.
12381
12382 * dispextern.h (struct image): Add member baseline.
12383
12384 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
12385
12386 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
12387
12388 * xdisp.c (get_next_display_element): Do character translations
12389 only if delivering characters.
12390
12391 1998-05-03 Gerd Moellmann <gerd@gnu.org>
12392
12393 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
12394 DISP_CHARACTER.
12395
12396 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
12397 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
12398
12399 1998-05-02 Gerd Moellmann <gerd@gnu.org>
12400
12401 * xfns.c (prepare_image_for_display): Set image timestamp.
12402 (clear_image_cache): Clear images if image's timestamp +
12403 Vimage_eviction_seconds is > now.
12404 (syms_of_xfns): New variables image-eviction-seconds, and
12405 image-types.
12406 (add_image_format): Add to image-types.
12407 (xbm_load): Support new image spec format.
12408 (x_alloc_image_color): Allocate a color for an image.
12409
12410 * dispextern.h (struct image): Add timestamp.
12411
12412 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
12413 vectors of bool-vectors.
12414 (xbm_lisp_object_from_file): Build new format image spec.
12415
12416 1998-05-01 Gerd Moellmann <gerd@gnu.org>
12417
12418 * xfaces.c (init_frame_faces): Initialize image cache.
12419 (free_frame_faces): Free it.
12420
12421 * xterm.c (x_delete_display): Don't free image cache.
12422
12423 * emacs.c (main): Call init_xfns.
12424
12425 1998-04-30 Gerd Moellmann <gerd@gnu.org>
12426
12427 * alloc.c (mark_object): Mark objects in image cache.
12428
12429 * xfns.c (x_set_internal_border_width): Correct call to
12430 widget_store_internal_border_width.
12431
12432 * widget.c (widget_store_internal_border): Return void.
12433
12434 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12435 void.
12436 (init_x_parm_symbols): Return void.
12437 (x_report_frame_params): Ditto.
12438 (x_set_border_pixel): Ditto.
12439 (syms_of_xfns): Ditto.
12440 (x_destroy_all_bitmaps): Use xfree instead of free.
12441
12442 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12443
12444 * xterm.c (x_term_init): Initialize image_cache of display info.
12445 (x_delete_display): Free image cache.
12446
12447 * xterm.h (struct x_display_info): Add image_cache.
12448
12449 * xfns.c (make_image_cache): Allocate a new image cache.
12450 (free_image_cache): Free an image cache.
12451 (make_image): Allocate an image.
12452 (free_image): Free an image.
12453
12454 * dispextern.h (struct image): Structure describing an image.
12455 (struct image_cache): Structure describing an image cache.
12456
12457 1998-04-29 Gerd Moellmann <gerd@gnu.org>
12458
12459 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12460 non-zero if iterator is filled with something to return.
12461 (next_element_from_buffer): Immediately return if
12462 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12463 (next_element_from_string): Likewise.
12464
12465 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12466
12467 * dispextern.h (struct glyph): Add pixmap_id.
12468 (display_element_type): Add DISP_PIXMAP.
12469
12470 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12471 malloc/free.
12472
12473 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12474 (clear_face_cache): Call it.
12475
12476 * xterm.c (x_query_font): Don't look at empty font table slots.
12477 (x_compute_min_glyph_bounds): Likewise.
12478 (x_term_init): Initialize font_table to null.
12479 (x_load_font): Change allocation of font_info structures so
12480 that it is possible to free fonts.
12481
12482 * xfns.c (Fx_close_connection): Use xfree instead of free.
12483 Only free fonts from filled font table entries.
12484
12485 * xfaces.c (best_matching_font): Support use of scalable fonts.
12486 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12487
12488 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12489 and resy.
12490 * xterm.c (x_term_init): Compute resx and resy.
12491
12492 * xfaces.c (split_font_name): Don't reject scalable fonts.
12493
12494 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
12495 in #if 0.
12496
12497 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12498 point size cannot be determined.
12499
12500 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12501 width over all fonts on a frame.
12502 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12503 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12504 macros.
12505
12506 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12507 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12508 (x_load_font): Use x_compute_min_char_bounds.
12509
12510 * xterm.h (struct x_display_info): New members smallest_char_width
12511 and smallest_font_height.
12512
12513 1998-04-28 Gerd Moellmann <gerd@gnu.org>
12514
12515 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12516 the same name if GC of face is zero.
12517
12518 * dispextern.h (struct face): Member non_ascii_gc removed.
12519
12520 * xterm.c (x_get_char_font_and_encoding): Return face's font
12521 for characters < 0177 in default face. Prepare face for
12522 display before returning it.
12523 (x_produce_glyphs): Use it->charset.
12524 (x_get_char_font_and_encoding): Simplified.
12525 (x_encode_char): Remove parameter `font'.
12526
12527 * xfaces.c (choose_face_font): If registry from charset symbol
12528 doesn't contain a `-', make it a pattern by appending "*-*".
12529
12530 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12531 glyph_check_pos computation to character boundary.
12532
12533 1998-04-27 Gerd Moellmann <gerd@gnu.org>
12534
12535 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12536
12537 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12538 ASCII face for a given Lisp face id.
12539
12540 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12541 account.
12542 (reseat_iterator): Set glyph_check_pos. Handle case where
12543 new position is < original position.
12544 (check_iterator_glyph_property): Handle glyph property in strings.
12545 (next_element_from_string): Call above function.
12546 (next_element_from_display_vector): Handle faces in glyphs.
12547 (get_next_display_element): Set face_id of glyphs for
12548 control chars to zero.
12549
12550 * Makefile.in (term.o): Add dependency on dispextern.h.
12551
12552 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12553 (display_line): Handle marginal areas.
12554 (move_iterator_in_display_line_to): Likewise.
12555
12556 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12557
12558 * xfaces.c (face_at_buffer_position): Don't merge with nil
12559 text property.
12560 (face_at_string_position): Ditto.
12561
12562 * dispextern.h (struct display_iterator): Use a stack of saved
12563 values instead of saving check positions etc. individually.
12564
12565 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12566 maybe pop the iterator's stack.
12567 (save_iterator_settings): Push a value on iterator's stack.
12568 (get_overlay_strings_at_iterator_position): Use it.
12569 (restore_iterator_settings): Pop the stack.
12570 (set_iterator_to_next_overlay_string): Use it.
12571
12572 * xfaces.c (try_font_list): Use alternative font families.
12573
12574 1998-04-26 Gerd Moellmann <gerd@gnu.org>
12575
12576 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12577 font selection matches fonts.
12578 (Fface_font_sort_order): Return the font sort order.
12579 (best_matching_font): Find best matching font based on sort order.
12580 (cmp_font_names): Sort by given sort order.
12581
12582 * dispextern.h (struct display_iterator): New member faces_p.
12583 * xdisp.c (init_iterator): Initialize it->faces_p.
12584 (compute_face_at_iterator_string_position): Use it.
12585 (compute_face_at_iterator_position): Use it.
12586 (init_iterator): Use it.
12587 (display_mode_line): Ditto.
12588
12589 * xdisp.c (get_next_display_element): Put code choosing a face
12590 when the charset changes in #ifdef HAVE_FACES.
12591
12592 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
12593 lookup_face_for_charset.
12594
12595 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12596 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12597
12598 1998-04-25 Gerd Moellmann <gerd@gnu.org>
12599
12600 * xfaces.c (best_matching_font): Return the name of the best
12601 matching font in an array of font_name structures.
12602 (choose_face_font): Use it.
12603 (choose_face_fontset_font): Use it.
12604 (find_best_weight_font): If final font found has same weight as
12605 the font we started with, return the original font because it is a
12606 better match for the resolution of the display.
12607 (find_best_slant_font): Likewise.
12608 (merge_face_vector_with_property): Check more invalid attribute
12609 values.
12610 (lface_suitable_for_charset_p): Replaced by a macro with the same
12611 name in upper-case.
12612
12613 1998-04-24 Gerd Moellmann <gerd@gnu.org>
12614
12615 * dispextern.h (struct face): Member
12616 fontset_chosen_for_realization_p removed.
12617
12618 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12619 end of the collision list, so that we find more specific faces
12620 first.
12621 (lookup_face_for_charset): Look up a new face if face->fontset >=
12622 0, and charset != CHARSET_COMPOSITION.
12623
12624 * xfaces.c (split_font_name): Return zero if point size of font
12625 couldn't be computed.
12626 (realize_default_face): Use ASCII font of a fontset to determine
12627 font-related attributes of the default face.
12628 (face_fontset): Return fontset id for face family.
12629 (font_list): Additional parameter font_pattern. If non-nil,
12630 return fonts matching that pattern.
12631
12632 1998-04-23 Gerd Moellmann <gerd@gnu.org>
12633
12634 * xfaces.c (choose_face_fontset): If new fontset cannot be
12635 constructed, or fontset name cannot be split, return the id of the
12636 standard fontset.
12637
12638 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12639 When Emacs starts, it may be called for the initial frame which
12640 isn't an X frame.
12641
12642 * dispextern.h (struct face): New members foreground_defaulted_p,
12643 background_defaulted_p.
12644 (struct face): Members `mask' and `cache' removed.
12645
12646 * xfaces.c (load_color): Set them.
12647 (free_face_colors): Check them.
12648 (xlfd_point_size): Return -1 if resolution or point size of
12649 font unknown.
12650
12651 * xfaces.c (free_font): Removed.
12652 (load_face_font_or_fontset): Renamed from load_font.
12653 (load_face_font_or_fontset): Use message2 instead of signalling.
12654 (load_color): Likewise.
12655 (load_pixmap): Likewise.
12656
12657 * xterm.h (struct x_display_info): Add screen_dpi.
12658 * xterm.c (x_term_init): Initialize it.
12659 * xfaces.c (xlfd_point_size): Use it.
12660 (split_font_name): Compute numeric XLFD_RESY.
12661 (cmp_font_names): Make fonts with an y-resolution more
12662 similar to that of the frame appear first in the result.
12663
12664 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12665 is set for the face to cache, add it to the end of the collision
12666 list.
12667 (try_font_list): If fonts for given family and registry cannot
12668 be found, first try to keep the registry, and choose a different
12669 family.
12670 (choose_face_font): Allow nfonts == 0.
12671 (try_font_list): Give up if no font matches given registry.
12672
12673 1998-04-22 Gerd Moellmann <gerd@gnu.org>
12674
12675 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12676 font info id of the face.
12677
12678 * xfaces.c (load_font): Set font_info_id.
12679 (realize_face): Ditto.
12680
12681 * dispextern.h (struct face): Change member font_info to
12682 font_info_id.
12683
12684 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12685 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12686
12687 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12688 isn't ASCII, get the ASCII face before adding a space.
12689 (append_space): Likewise.
12690 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12691 to -1 so that it will compute the right face for the truncation
12692 glyphs.
12693
12694 * xfaces.c (realize_face): Set
12695 face->fontset_chosen_for_realization_p.
12696 (lookup_face_for_charset): If fontset wasn't specified originally
12697 and new charset != CHARSET_COMPOSITION, get a new face for that
12698 charset.
12699
12700 * dispextern.h (struct face): New member
12701 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12702 realize_face has chosen a fontset to display composite characters
12703 for a Lisp face not specifying a fontset.
12704
12705 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12706 face and line already filled here. Don't do anything if current
12707 face hasn't a relief or has a background equal to the frame
12708 background.
12709
12710 * xfaces.c (split_font_name): Additional parameter numeric_p.
12711 Don't compute numeric values if it is non-zero.
12712 (choose_face_fontset): Call split_font_name with numeric_p == 0.
12713 (choose_face_fontset): Print a message if fontset contains a
12714 font whose name cannot be split into fields.
12715
12716 1998-04-21 Gerd Moellmann <gerd@gnu.org>
12717
12718 * xfaces.c (try_font_list): Try to load a list of fonts,
12719 possibly using less restrictive patterns.
12720 (choose_face_font): Use it.
12721
12722 * xterm.c (x_get_char_font_and_encoding): For charset !=
12723 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12724
12725 * dispextern.h (struct face): New member font_info.
12726
12727 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12728 specifying a fontset as well as those not having a fontset.
12729 (free_font): Make it empty.
12730 (realize_face): Use changed load_font.
12731
12732 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12733 fit for charset, get the right one.
12734
12735 * xfaces.c (load_font): Take frame and name parameter, return
12736 font.
12737 (free_font): Likewise.
12738 (split_font_name): Compute numeric values for height, swidth etc.
12739 (cmp_font_names): Use them.
12740 (find_best_width_font): Ditto.
12741 (find_best_height_font): Ditto.
12742 (find_best_weight_font): Ditto.
12743 (find_best_slant_font): Ditto.
12744 (lface_hash): Add weight, slant, swidth and relief to hash value.
12745 (lface_equal_p): Make it faster.
12746 (lface_from_symbol): Use assq_no_quit.
12747 (Fnote_default_face_changed): Removed.
12748 (cmp_font_names): Use strcmp instead of xstricmp.
12749 (face_charset_registries): Removed.
12750
12751 1998-04-20 Gerd Moellmann <gerd@gnu.org>
12752
12753 * frame.h (CHECK_FRAME): Give this macro a statement form.
12754 (CHECK_LIVE_FRAME): Ditto.
12755
12756 * xfaces.c (find_best_width_font): Find the best matching font
12757 for a given width.
12758 (find_best_height_font): Likewise for height.
12759 (find_best_weight_font): Likewise for weight.
12760 (find_best_slant_font): Likewise for slant.
12761 (choose_face_font): Use them.
12762 (get_lface_attributes): Always return frame-local face attrs.
12763 (Finternal_merge_in_global_face): Merge local face with
12764 global face attributes.
12765
12766 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12767 Lisp face attributes.
12768
12769 1998-04-19 Gerd Moellmann <gerd@gnu.org>
12770
12771 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12772 and :italic for compatibility.
12773 (Finternal_set_lisp_face_attribute_from_resource): Handle
12774 :bold and :italic. Handle boolean resource values for
12775 :underline and :italic.
12776
12777 * xfns.c (display_x_get_resource): Make it externally visible.
12778
12779 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12780 If that frame is non-null, return the frame-local face.
12781 (Finternal_make_lisp_face): Additional frame argument.
12782 (lface_attributes): Get face attributes from global and frame-local
12783 definitions.
12784 (Finternal_lisp_face_equal_p): Additional frame argument.
12785 (merge_lisp_face_vector_with_property): Ditto.
12786 (Frealize_basic_faces): Removed.
12787 (Finternal_get_lisp_face_attribute): Additional frame argument.
12788 (Finternal_lisp_face_p): Ditto.
12789 (load_color) [MSDOS]: Removed because it isn't clear how
12790 to do this for MS-DOS.
12791
12792 * xfaces.c (lface_from_symbol): Get global face definition
12793 from face-global-alist.
12794
12795 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12796 as values for :underline and :inverse-video.
12797 (Finternal_set_lisp_face_attribute): Allow nil values.
12798
12799 1998-04-17 Gerd Moellmann <gerd@gnu.org>
12800
12801 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12802
12803 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12804 (Finternal_make_lisp_face): Add new face to Vall_faces.
12805
12806 * xdisp.c (echo_area_display): Remove code recomputing faces.
12807 (redisplay_internal): Ditto.
12808 (init_iterator): Do it here.
12809
12810 * xfaces.c (choose_face_font): Check that swidth doesn't change
12811 for subusequent attributes.
12812 (xlfd_point_size): Return int.
12813
12814 * xdisp.c (redisplay_internal, echo_area-display): If realized
12815 faces have been cleared, call recompute_basic_faces.
12816
12817 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12818 face_attributes_changed_p.
12819 (remove_all_realized_faces): Remove all realized faces on
12820 all frames.
12821 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12822
12823 * xdisp.c (redisplay_internal): If face attributes have been
12824 changed since the last redisplay, recompute basic faces.
12825 (echo_area_display): Ditto.
12826
12827 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12828
12829 * xfaces.c (min_char_bounds): If face cache not yet present,
12830 don't try to get font dimensions from faces.
12831
12832 * xterm.c (x_frame_mode_line_height): If face cache not present
12833 set, return default height.
12834
12835 * alloc.c (mark_face_cache): Check for null faces. Correct
12836 index bug.
12837
12838 * dispextern.h (struct face): Renamed from struct rface. Member
12839 underline renamed underline_p. Make it a bit-field.
12840
12841 * xfaces.c (init_frame_faces): Allocate face cache.
12842 (free_frame_faces): Free face cache.
12843 (recompute_basic_faces): Realize basic faces only if face cache is
12844 allocated, i.e. after init_frame_faces has been called.
12845
12846 * frame.c (make_frame): Initialze face cache with null.
12847
12848 * xfaces.c (same_size_fonts): Removed.
12849
12850 * xterm.c (x_set_glyph_string_gc): Add post-condition
12851 s->gc != 0.
12852 (x_set_mouse_face_gc): Ditto.
12853 (x_set_mode_line_face_gc): Ditto.
12854
12855 * xfaces.c (realize_default_face): Return int. Value is
12856 zero if frame params don't contain enough information to
12857 realize the default face.
12858 (realize_basic_faces): Ditto.
12859 (init_frame_faces): Realize basic faces.
12860
12861 * xfns.c (x_set_font): First store real font name in frame
12862 parameters, then call recompute_basic_faces.
12863
12864 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12865
12866 1998-04-16 Gerd Moellmann <gerd@gnu.org>
12867
12868 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12869
12870 * xfns.c (Fx_face_fixed_p): Removed.
12871 (Fx_list_fonts): Moved to xfaces.c.
12872
12873 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12874 face_at_buffer_position. Parameter charset removed; always
12875 compute face for CHARSET_ASCII.
12876 (face_at_string_position): Renamed from
12877 compute_face_at_string_pos. Parameter charset removed; always
12878 compute for CHARSET_ASCII.
12879 (lookup_face_for_charset): Take frame parameter instead of
12880 face_cache.
12881 (lookup_face): Ditto.
12882 (compute_char_face): Renamed from compute_glyph_face.
12883
12884 * xdisp.c (init_iterator): Initialize charset member.
12885 (reseat_iterator_to_string): Ditto.
12886 (get_charset_at_buffer_position): Determine charset at
12887 buffer position in current_buffer.
12888 (reseat_iterator): Call above function.
12889 (compute_face_at_iterator_position): Call
12890 compute_face_at_buffer_pos.
12891 (compute_face_at_iterator_string_position): Call
12892 compute_face_at_string_pos.
12893 (get_face_from_id): Removed.
12894 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12895 Call get_charset_at_buffer_position.
12896 (reseat_iterator): Determine face if charset at pos differs
12897 from iterator's charset.
12898 (reseat_iterator_to_glyph_pos): Removed.
12899
12900 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12901 Determine charset from buffer position.
12902 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12903 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12904
12905 * dispextern.h (struct display_iterator): Add member charset.
12906
12907 1998-04-15 Gerd Moellmann <gerd@gnu.org>
12908
12909 * xfaces.c (compute_char_face): Removed.
12910
12911 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12912 with new parameter list.
12913
12914 * xfaces.c (region_face): Removed.
12915 (allocate_face): Removed.
12916 (copy_face): Ditto.
12917 (face_eql): Removed.
12918 (intern_face): Removed.
12919 (clear_face_cache): Removed.
12920 (load_font): Ditto.
12921 (unload_font): Ditto.
12922 (load_color): Ditto.
12923 (unload_color): Ditto.
12924 (new_computed_face): Ditto.
12925 (intern_computed_face): Ditto.
12926 (ensure_face_ready): Ditto.
12927 (merge_faces): Ditto.
12928 (compute_base_face): Ditto.
12929 (merge_face_list): Ditto.
12930 (Fmake_face_internal): Removed.
12931 (Fset_face_attribute_internal): Ditto.
12932 (face_name_id_number): Removed.
12933 (Fframe_face_alist): Ditto.
12934 (Fset_frame_face_alist): Ditto.
12935 (Finternal_next_face_id): Ditto.
12936
12937 * xterm.h (struct x_output): Remove computed_faces, and
12938 param_faces. Remove macros accessing them.
12939
12940 * xfaces.c: Entirely new face implementation added.
12941
12942 1998-04-11 Gerd Moellmann <gerd@gnu.org>
12943
12944 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12945 `charpos'.
12946
12947 1998-04-10 Gerd Moellmann <gerd@gnu.org>
12948
12949 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12950 scroll bar window to reduce flickering. Clear entire height.
12951
12952 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12953 current_x and hpos to zero after moving to previous line
12954 start.
12955
12956 1998-04-03 Gerd Moellmann <gerd@gnu.org>
12957
12958 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12959
12960 * xfaces.c (xlfd_point_size): Compute relative point size of
12961 fonts from font and frame resolution.
12962 (sort_fonts): New function to sort fonts, temporarily setting
12963 font_frame to the frame in effect.
12964 (xlfd_point_size): Take additional frame parameter to be able
12965 to get at the display's resolution.
12966
12967 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12968 BLACK_PIX_DEFAULT.
12969 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12970 screen of display.
12971
12972 1998-03-31 Gerd Moellmann <gerd@gnu.org>
12973
12974 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12975
12976 * fontset.h: Add external declarations for Vfontset_alias_alist
12977 and Vglobal_fontset_alist.
12978
12979 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12980 (realize_default_face): If frame parameters contain an artificial
12981 font name naming a fontset, set the family of the default face to
12982 the fontset name given by the registry.
12983
12984 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12985
12986 1998-03-22 Gerd Moellmann <gerd@gnu.org>
12987
12988 * alloc.c (mark_object): Add function prototype. Add cast to
12989 Lisp_Object pointer in call to mark_object for symbol names
12990 because this otherwise gives a warning from gcc 2.8.1.
12991 (mark_face_cache): Mark Lisp objects in realized faces.
12992
12993 1998-03-19 Gerd Moellmann <gerd@gnu.org>
12994
12995 * frame.h (struct frame): Add member face_cache.
12996
12997 * alloc.c (mark_object): Mark face cache.
12998 (mark_face_cache): Mark Lisp faces in face cache of frame.
12999
13000 * frame.c (make_frame): Initialize face_cache.
13001 (Fdelete_frame): Free it.
13002
13003 1998-03-18 Gerd Moellmann <gerd@gnu.org>
13004
13005 * xfaces.c: Very first skeleton of functions for face realization,
13006 face merging, face cache etc.
13007
13008 * dispextern.h (struct rface): Realized faces. Will replace
13009 struct face when tested.
13010 (struct face_cache): Realized face caches.
13011
13012 * xdisp.c (init_iterator): Initialize area member of display
13013 iterator.
13014
13015 1998-03-17 Gerd Moellmann <gerd@gnu.org>
13016
13017 * xterm.c (x_append_glyph): Use it->area to store glyphs.
13018
13019 * dispextern.h (struct display_iterator): New member area.
13020
13021 * xterm.c (note_overwritten_text_cursor): Note when the text
13022 cursor of a window is overwritten.
13023
13024 * xdisp.c (set_cursor_from_row): If PT is not found in the
13025 row, display the cursor at the start of the row.
13026
13027 * dispnew.c (direct_output_forward_char): Call
13028 set_cursor_from_row.
13029
13030 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
13031 position is not in an overlay string, set iterator's position and
13032 method explicitly so.
13033 (set_cursor_from_row): Correct cursor position calculation.
13034 Make it externally visible.
13035 (redisplay_window): Call set_cursor_from_row so that there is only
13036 one place where the cursor position is calculated from a current
13037 row.
13038
13039 * dispextern.h (struct display_iterator): New member
13040 overlay_strings_at_end_processed_p.
13041
13042 * xdisp.c (check_iterator): Perform sanity checks on
13043 display_iterators.
13044 (next_element_from_buffer): Check for overlay strings at ZV.
13045
13046 1998-03-16 Gerd Moellmann <gerd@gnu.org>
13047
13048 * buffer.c (init_buffer_once): Add left_margin_width and
13049 right_margin_width to buffer_local_flags.
13050
13051 * dispnew.c (margin_glyphs_to_reserve): Function computing
13052 number of glyphs to reserve for a marginal area.
13053 (adjust_glyph_matrix): Call it.
13054 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
13055 is not alive.
13056
13057 * window.c (Fset_window_margins): Allow floats.
13058
13059 * buffer.c (syms_of_buffer): Add buffer-local variables
13060 left-margin-width and right-margin-width. Add defaults
13061 default-left-margin-width and default-right-margin-width.
13062
13063 * buffer.h (struct buffer): New members left_margin_width
13064 and right_margin_width.
13065
13066 * window.c (Fset_window_margins): Make window the last and
13067 optional argument.
13068
13069 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
13070 flag no_marginal_areas_p differently.
13071 (x_clear_end_of_line): Ditto.
13072 (x_draw_glyph_string_relief): Compute width of relief differently
13073 for rows with flag no_marginal_areas_p.
13074
13075 * dispnew.c (update_window_line): Update marginal areas only
13076 for rows that don't have no_marginal_areas_p set.
13077
13078 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
13079 (display_menu_bar): Ditto.
13080
13081 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
13082
13083 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
13084 marginal areas in window-based redisplay.
13085
13086 * dispextern.h (struct glyph_matrix): New members
13087 left_margin_glyphs and right_margin_glyphs.
13088
13089 1998-03-15 Gerd Moellmann <gerd@gnu.org>
13090
13091 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
13092
13093 * charset.c (non_ascii_char_to_string): Use char type parameters
13094 because the function is used that way from outside. Use unsigned
13095 char internally.
13096
13097 * window.c (change_window_height): Return void.
13098 (make_dummy_parent): Return void.
13099 (init_window_once): Return void.
13100 (syms_of_window): Ditto.
13101 (keys_of_window): Ditto.
13102 (delete_window): Correct return with and without value.
13103
13104 * buffer.c (record_buffer): Return void.
13105
13106 * marker.c (unchain_marker): Return void.
13107
13108 * window.c (unshow_buffer): Return void.
13109 (replace_window): Ditto.
13110 (delete_window): Ditto.
13111
13112 * term.c (delete_glyphs_hook): Void return type.
13113 (ring_bell_hook): Ditto.
13114 (set_terminal_window_hook): Ditto.
13115
13116 * sysdep.c (init_sigio): Return void.
13117
13118 * xterm.c (x_set_window_size): Return void.
13119 (x_calc_absolute_position): Ditto.
13120 (x_set_offset): Ditto.
13121 (x_focus_on_frame): Ditto.
13122 (x_unfocus_frame): Ditto.
13123 (x_make_frame_visible): Ditto.
13124 (x_make_frame_invisible): Ditto.
13125 (x_iconify_frame): Ditto.
13126 (x_destroy_window): Ditto.
13127 (x_wm_set_window_state): Ditto.
13128 (x_wm_set_icon_pixmap): Ditto.
13129 (x_wm_set_icon_position): Ditto.
13130 (x_initialize): Ditto.
13131 (x_error_quitter): Ditto.
13132 (x_destroy_window): Use xfree instead of free.
13133
13134 * keyboard.c (clear_waiting_for_input): Return void.
13135
13136 * xterm.c (x_wm_set_size_hint): Return void.
13137 (x_raise_frame): Ditto.
13138 (refreshicon): Ditto.
13139 (x_error_catcher): Ditto.
13140 (x_clear_errors): Ditto.
13141
13142 * keyboard.c (record_asynch_buffer_change): Return void.
13143
13144 The first line of the following paragraph was garbled for an
13145 unknown reason. It couldn't be fully reconstructed.
13146
13147 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
13148 (x_lower_frame): Ditto.
13149 (x_scroll_bar_clear): Ditto.
13150 (XTflash): Add default case in switch for -Wall.
13151 (construct_mouse_click): Return Qnil.
13152 (cancel_mouse_face): Return void.
13153 (x_queue_event): Use xmalloc instead of malloc.
13154 (x_unqueue_events): Use xfree instead of free.
13155
13156 * ccl.c (ccl_driver): Return int.
13157
13158 * keyboard.c (stop_polling): Return void.
13159 (start_polling): Ditto.
13160
13161 * term.c (keys): Add braces in initializer list for -Wall.
13162
13163 * sysdep.c (tabs_safe_p): Return int.
13164 (init_baud_rate): Return void.
13165
13166 * xterm.c (x_draw_bitmap): Add default case.
13167 (x_setup_relief_colors): Use DefaultScreen instead of
13168 DefaultScreenOfDisplay.
13169 (x_delete_glyphs): Return void.
13170 (construct_menu_click): Put in #if 0 because it isn't called.
13171
13172 * xdisp.c (load_overlay_strings): Remove extraneous argument
13173 in call to qsort.
13174 (get_overlay_arrow_glyph_row): Add missing return value.
13175
13176 * window.c (set_window_height): Return void.
13177 (set_window_width): Ditto.
13178
13179 * sysdep.c (request_sigio): Return void.
13180 (unrequest_sigio): Ditto.
13181 (get_frame_size): Ditto.
13182
13183 * scroll.c (scroll_cost): Return int.
13184 (do_line_insertion_deletion_costs): Return void.
13185
13186 * frame.c (Fdelete_frame): Use xfree instead of free.
13187
13188 * fileio.c (report_file_error): Return void.
13189
13190 * dispnew.c: Make compilable with -Wall.
13191 * term.c: Ditto.
13192
13193 * charset.h (CHAR_LEN): Moved here from dispextern.h.
13194
13195 1998-03-14 Gerd Moellmann <gerd@gnu.org>
13196
13197 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
13198 increased.
13199 (x_setup_relief_color): Free color only for appropriate visual
13200 classes.
13201
13202 * xterm.c (expose_window): Fix calculation of intersection of mode
13203 line rectangle with exposed rectangle.
13204
13205 * xdisp.c (redisplay_window): Don't do cursor movement based
13206 on current matrix if w->last_point is not valid.
13207
13208 1998-03-09 Gerd Moellmann <gerd@gnu.org>
13209
13210 * xterm.c (expose_line): Redraw mode line and menu lines
13211 differently because they reach into the scroll bar area.
13212
13213 * xdisp.c (redisplay_window): If redisplaying with same window
13214 start, don't accept cursor on partially visible line.
13215
13216 1998-03-08 Gerd Moellmann <gerd@gnu.org>
13217
13218 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
13219 for wider mode lines.
13220 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
13221
13222 * xdisp.c (init_iterator): Increase last_visible_x by vertical
13223 scroll bar width for mode lines.
13224
13225 * dispnew.c (allocate_matrices_for_window_redisplay): Include
13226 vertical scroll bar width in width calculation so that we can
13227 display mode lines wider.
13228
13229 * xdisp.c (redisplay_window): Restore buffers before returning
13230 when fonts have changed.
13231
13232 * dispnew.c (update_window): Mark invisible rows in the current
13233 matrix invalid.
13234
13235 * xdisp.c (try_window_id): Force update of first row displayed
13236 at window end.
13237 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
13238
13239 1998-03-05 Gerd Moellmann <gerd@gnu.org>
13240
13241 * dispextern.h (struct glyph_row): Member max_ascent renamed
13242 ascent. Member max_descent replaced by height.
13243 (struct display_iterator): Member max_descent replaced by height.
13244 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
13245
13246 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
13247 class makes it unnecessary or dangerous.
13248
13249 * xdisp.c (redisplay_window): Case only point has changed, and
13250 point has moved forward. Move forward over overlay strings.
13251 (display_line): Don't set cursor if first glyph from PT is part of
13252 a continuation line.
13253
13254 1998-02-21 Gerd Moellmann <gerd@gnu.org>
13255
13256 * xdisp.c (start_display): When computing continuation lines
13257 width, add current_x to the continuation lines width because
13258 move_iterator_to will stop in front of the buffer position moved
13259 to.
13260
13261 1998-02-20 Gerd Moellmann <gerd@gnu.org>
13262
13263 * xdisp.c (redisplay_window): Don't try try_window_id if
13264 windows_or_buffers_changed.
13265
13266 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
13267 determine a color.
13268 (x_setup_relief_color): Allocate/ change one relief.
13269 (x_setup_relief_colors): Call above function.
13270
13271 * xterm.h (struct relief): New structure type holding relief info:
13272 GCs, colors, and whether colors are allocated.
13273
13274 * xterm.c (x_alloc_lighter_color): If multiplying by factor
13275 produces the same color, try adding a delta to RGB values.
13276 (x_setup_relief_colors): Free color cells.
13277
13278 * xterm.h (struct x_output): New members white_relief_pixel,
13279 black_relief_pixel holding the foreground colors allocated for
13280 relief GCs. New members white_allocated_p, black_allocated_p.
13281
13282 * xterm.c (x_scroll_run): Don't set updated_window to null.
13283 This resets updated_window when called from scrolling_window.
13284
13285 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
13286
13287 * xterm.c (x_scroll_run): Additional window parameter. Set
13288 and reset updated_window.
13289
13290 * dispnew.c (line_dance_hook): Additional window parameter.
13291
13292 * xdisp.c (try_window_reusing_current_matrix): Don't call
13293 update_window_begin/end here. The end function would display the
13294 cursor on a wrong position and the additional functionality of
13295 update_window_begin is not needed anyway. Just set
13296 updated_window.
13297 (try_window_id): Ditto.
13298
13299 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
13300 Don't redraw cursor during redisplay.
13301
13302 * xterm.c (x_scroll_run): Renamed from do_line_dance.
13303
13304 * xdisp.c (redisplay_window): For window-based redisplay, alway
13305 try try_window_id.
13306
13307 * xterm.c (struct glyph_string): New member two_byte_p that is
13308 non-zero if 16-bit drawing functions must be used.
13309 (x_fill_composite_glyph_string): Set it.
13310 (x_fill_glyph_string): Set it.
13311 (x_draw_glyph_string_foreground): Use it.
13312 (x_draw_vertical_border): Make line 1 pixel less tall.
13313 (x_draw_row_bitmaps): Decrease width of area cleared on the left
13314 side by 1 pixel if window is not right-most hasn't vertical scroll
13315 bars.
13316 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
13317 out of bounds.
13318 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
13319 hl == DRAW_CURSOR.
13320
13321 * xdisp.c (start_display): Check that window start is at line
13322 start if GLYPH_DEBUG != 0.
13323
13324 * window.c (window_scroll_pixel_based): Move assertion to
13325 start_display.
13326
13327 1998-02-19 Gerd Moellmann <gerd@gnu.org>
13328
13329 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
13330 frame hasn't the focus.
13331
13332 * window.c (make_window): Initialize dy.
13333 (replace_window): Ditto.
13334
13335 * window.h (window): New member dy specifying the amount by which
13336 a window is scrolled "smoothly".
13337
13338 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
13339 y-position because it can be negative.
13340 (x_draw_row_bitmaps): Don't clear with negative y-position like
13341 above.
13342 (x_clear_end_of_line): Same theme as above.
13343
13344 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
13345 exact match exists, the nearest existing color. Patterned after
13346 defined_color.
13347 (x_alloc_lighter_color): Allocate a color that is lighter or
13348 darker than a given color by a specified factor.
13349 (x_setup_relief_colors): Set up relief line colors based on
13350 the background color of a glyph string face.
13351 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
13352
13353 * xfns.c (x_make_gc): Don't allocate relief GCs.
13354 * widget.c (create_frame_gcs): Don't allocate relief GCs.
13355 (setup_frame_gcs): Don't change relief GCs.
13356
13357 * xterm.h (struct x_output): New member relief_background giving
13358 the background pixel color for which relief GCs can be used.
13359 Set by x_setup_relief_colors.
13360
13361 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
13362 for mode and menu lines.
13363
13364 * xdisp.c (set_next_iterator_stop_pos): No longer static.
13365
13366 * dispnew.c (direct_output_for_insert): Call
13367 set_next_iterator_stop_pos after having changed it2.endpos.
13368
13369 1998-02-17 Gerd Moellmann <gerd@gnu.org>
13370
13371 * dispnew.c (update_window): Work on selected_window, only.
13372
13373 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
13374 hpos is >= number of glyphs in the cursor row.
13375
13376 * xdisp.c (try_window_id): Bug fix; update_window_end was not
13377 called.
13378
13379 1998-02-16 Gerd Moellmann <gerd@gnu.org>
13380
13381 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
13382 and menu lines.
13383
13384 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
13385 enough glyphs to display a mode line or menu line which draws over
13386 flags areas.
13387
13388 * xterm.c (XTset_vertical_scroll_bar): Use
13389 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
13390 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
13391 (x_draw_glyphs): Draw over flags areas when drawing a mode line
13392 or menu.
13393 (x_set_glyph_string_clipping): Set clipping differently if drawing
13394 a mode line or menu line.
13395
13396 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
13397
13398 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
13399 menu lines.
13400 (x_scroll_bar_create): Don't clear flags areas.
13401 (x_draw_row_bitmaps): Clear visible row height, only.
13402
13403 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
13404
13405 1998-02-15 Gerd Moellmann <gerd@gnu.org>
13406
13407 * dispnew.c (direct_output_for_insert): When checking for tabs in
13408 the line, set it2.endpos to ZV.
13409
13410 * window.h (struct window): New member cursor_off_p.
13411 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
13412 for X.
13413 * dispnew.c (redraw_cursor_hook): If non-null, function that can
13414 be called to display or erase the cursor.
13415 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
13416 or selected_window.
13417
13418 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
13419
13420 * dispnew.c (update_window_line): Special handling of inverse
13421 lines in #if 0 removed.
13422
13423 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13424 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13425 (x_clear_frame): Renamed from XTclear_frame.
13426 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13427 (x_ins_del_lines): Renamed from XTins_del_lines.
13428 (x_change_line_height): Renamed from XTchange_line_height.
13429 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13430 (x_clear_cursor): Renamed from clear_cursor.
13431 (x_update_begin): Renamed from XTupdate_begin.
13432 (x_update_end): Renamed from XTupdate_end.
13433 (x_update_window_begin): Renamed from XTupdate_window_begin.
13434 (x_update_window_end): Renamed from XTupdate_window_end.
13435 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13436 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13437 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13438 (x_produce_special_glyphs): Implementation in #if 0 removed.
13439
13440 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13441 flag in the dump.
13442
13443 * dispnew.c (update_text_area): Handling of glyphs with pixel
13444 width zero removed. Decrement desired stop pos if desired row
13445 fills its line.
13446
13447 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13448 width zero removed.
13449 (BUILD_GLYPH_STRINGS): Set glyph string flag
13450 extends_to_end_of_line_p based on row's flag fill_line_p and face
13451 background and stipple. Make sure it works for composite characters.
13452
13453 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13454 fill_line_p. For window-based redisplay, add a space only if
13455 the row is empty so that we know the face to draw.
13456
13457 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13458 means draw the face of the last glyph in the text area to the
13459 right end of the text area.
13460
13461 * xdisp.c (init_iterator): Show region in window mini-buffer
13462 window refers to.
13463
13464 * dispextern.h (struct display_iterator): Redundant member
13465 region_showing_p removed. Test for region_beg > 0 instead.
13466
13467 * dispnew.c (update_text_area): Clear to end of line if cursor is
13468 beyond the end of the desired line. Necessary because we don't
13469 have a phys_cursor_glyph with which to erase the cursor. We don't
13470 have one because this method of drawing a cursor doesn't work with
13471 lbearing/rbearing.
13472
13473 * xterm.c (XTinsert_glyphs): Block input.
13474
13475 1998-02-14 Gerd Moellmann <gerd@gnu.org>
13476
13477 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13478 glyph strings.
13479 (x_draw_glyph_string_background): Fill background with background
13480 pixel for the first glyph of a composite character.
13481
13482 * xdisp.c (try_window): Change return type to int. Value is zero
13483 if fonts were loaded during redisplay.
13484 (redisplay_window): Return if fonts have been loaded during
13485 redisplay.
13486 (append_space): New parameter default_face_p.
13487
13488 1998-02-13 Gerd Moellmann <gerd@gnu.org>
13489
13490 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13491 don't let a partially visible line in a current matrix stay
13492 enabled.
13493
13494 1998-02-09 Gerd Moellmann <gerd@gnu.org>
13495
13496 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13497 in #if PROMPT_IN_BUFFER.
13498
13499 * xdisp.c (display_line): If row ends in ZV, make the space
13500 that is added to place the cursor on it appear in default face.
13501
13502 * xterm.c (expose_area): New function redrawing a single
13503 glyph row area.
13504 (expose_line): Use it to redraw all areas of a row.
13505
13506 * dispextern.h (move_operation_enum): New enum
13507 move_operation_enum.
13508
13509 * window.c (window_scroll_pixel_based): Remove now unnecessary
13510 code that made sure that it->current_y doesn't become negative.
13511
13512 * xdisp.c (move_iterator_in_display_line_to): New parameter
13513 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13514 (move_iterator_to): Ditto.
13515
13516 * dispextern.h (struct glyph_matrix): New member window_width.
13517
13518 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13519 case of changing window height.
13520
13521 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
13522 border to the left.
13523
13524 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13525 says this aspect of Emacs is currently redesigned.
13526
13527 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13528 have to draw a vertical border.
13529
13530 * window.c (window_scroll_pixel_based): When scrolling down by
13531 screen-fulls, make sure it.current_y doesn't get negative because
13532 this would confuse move_iterator_vertically.
13533
13534 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13535 the case continuation lines are involved.
13536 (try_window_id): Don't set the cursor into scroll margins.
13537
13538 1998-02-08 Gerd Moellmann <gerd@gnu.org>
13539
13540 * xterm.c (x_append_glyph): Don't compute left_overhang and
13541 right_overhang.
13542 (XTproduce_glyphs): left_overhang and right_overhang removed.
13543 Set it->glyph_row->contains_overlapping_glyphs_p.
13544
13545 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13546 and right_overhang removed.
13547
13548 * dispextern.h (struct glyph_row): New member
13549 contains_overlapping_glyphs_p used to optimize glyph drawing.
13550 (struct display_iterator): left_overhang and right_overhang
13551 removed.
13552 (struct glyph): Ditto.
13553
13554 * xterm.c (x_draw_relief): Removed.
13555 (x_draw_bitmap): Renamed from draw_bitmap.
13556 (x_draw_glyphs): Completely new implementation of draw_glyphs
13557 capable of handling arbitrary lbearing and rbearing values.
13558 Several sub-functions not mentioned here.
13559
13560 1998-01-30 Gerd Moellmann <gerd@gnu.org>
13561
13562 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
13563 if displaying hollow box cursor. draw_glyphs should handle
13564 other cases.
13565 (draw_glyphs): Move start to the left and end to the right if they
13566 overlap with previous or following characters.
13567 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
13568 make sure XDrawString uses function GXset. Otherwise the
13569 character under the cursor would be invisible.
13570 (x_draw_bar_cursor): Don't draw over previous character if it
13571 has right_overhang.
13572
13573 * window.c (get_phys_cursor_glyph): Return the glyph under a
13574 window's physical cursor.
13575
13576 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13577 (x_draw_bar_cursor): Ditto.
13578 (x_erase_phys_cursor): Ditto.
13579 (x_phys_cursor_in_rect_p): Ditto.
13580 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13581
13582 * window.c (make_window): Remove reference to phys_cursor_glyph.
13583 (replace_window): Ditto.
13584
13585 * window.h (struct window): Remove phys_cursor_glyph. There is
13586 now always a glyph present for placing the cursor on it in
13587 each glyph row, even at the end of a line.
13588
13589 * xdisp.c (append_space): Function to add a space to an iterators
13590 glyph row.
13591 (display_line): Add spaces at the end of lines that are used to
13592 place the cursor on them.
13593 (compute_line_metrics): If row consists of a space only that was
13594 added to place the cursor on it, use that space's height as the
13595 line height.
13596
13597 1998-01-29 Gerd Moellmann <gerd@gnu.org>
13598
13599 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13600 glyphs.
13601
13602 1998-01-28 Gerd Moellmann <gerd@gnu.org>
13603
13604 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13605 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13606
13607 * dispextern.h (struct glyph): Add left_overhang and
13608 right_overhang.
13609 (struct display_iterator): Ditto.
13610
13611 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13612 glyphs have different ascent or descent than original row.
13613
13614 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13615 row->max_descent only if unknown.
13616 (display_line): Compute row->max_ascent and row->max_descent.
13617 (display_string): Ditto.
13618
13619 * window.h (struct window): New members phys_cursor_ascent and
13620 phys_cursor_descent.
13621
13622 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13623 (x_draw_hollow_cursor): Ditto.
13624 (x_erase_phys_cursor): Ditto.
13625 (x_display_and_set_cursor): Set them.
13626 (x_append_glyph): Don't set glyph members that were removed.
13627
13628 * dispextern.h (struct glyph): Members ascent, descent,
13629 contributes_to_line_height_p removed.
13630
13631 1998-01-25 Gerd Moellmann <gerd@gnu.org>
13632
13633 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13634 names for face ids of frame default face and mode line face.
13635
13636 * xdisp.c (compute_face_at_iterator_string_position): If
13637 displaying a mode line use MODE_LINE_FACE_ID instead of
13638 DEFAULT_FACE_ID.
13639
13640 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13641 (display_string): Ditto, additional parameter lisp_string.
13642 (display_line): Call display_string with Lisp mini-buffer prompt
13643 string.
13644 (display_menu_bar): Call display_string with Lisp string.
13645 (display_mode_element): Ditto.
13646 (next_element_from_string): Make it work for non-overlay Lisp
13647 strings with field width and precision.
13648
13649 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13650 PROMPT_IN_BUFFER.
13651
13652 * xfaces.c (compute_string_char_face): Fix face computation
13653 for overlay strings.
13654
13655 * xdisp.c (struct overlay_entry): Add member after_string_p.
13656 (load_overlay_strings): Simplify.
13657
13658 * window.c (delete_window): Defer glyph matrix adjustment.
13659 (Fsplit_window): Ditto.
13660 (change_window_height): Ditto.
13661 (Fset_window_configuration): Ditto.
13662 (Fset_window_margins): Ditto.
13663 * frame.c (set_menu_bar_lines): Ditto.
13664 (Fmake_terminal_frame): Ditto.
13665 * dispnew.c (change_frame_size_1): Ditto.
13666
13667 1998-01-24 Gerd Moellmann <gerd@gnu.org>
13668
13669 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13670
13671 * dispnew.c (direct_output_for_insert): Give up if start
13672 position has overlay strings.
13673
13674 * xdisp.c (display_line): Don't set cursor if row ends in middle
13675 of overlay string.
13676 (Fdump_redisplay_state): Print complete row start and end
13677 position.
13678 (redisplay_window): Cursor movement when matrix hasn't changed---
13679 if PT < last_point, maybe move forward if row ends at PT and
13680 in middle of char.
13681
13682 * minibuf.c (read_minibuf): Save the value of
13683 minibuffer_prompt_length in minibuf_save_list.
13684 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13685
13686 * xdisp.c (redisplay_window): Add assertion for cursor movement
13687 case, PT < last_point.
13688 (move_iterator_in_display_line_to): If to_pos specified, move
13689 over before-strings.
13690
13691 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13692 start.string_index > 0.
13693
13694 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13695 is set. Retry redisplay if fonts_changed_p is set before update.
13696
13697 * xterm.c (x_load_font): Set fonts_changed_p.
13698
13699 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13700
13701 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13702
13703 * xdisp.c (try_window): Check fonts_changed_p.
13704 (try_window_reusing_current_matrix): Ditto.
13705 (try_window_id): Ditto.
13706
13707 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13708 (fonts_changed_p): Flag indicating a font change since the last
13709 glyph matrix adjustment.
13710
13711 * xterm.c (x_per_char_metric): Use font->max_bounds as
13712 char metric of the font's default char if the default char
13713 hasn't per char metric itself.
13714
13715 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13716 for font change.
13717 (min_char_bounds): Check face->font != NULL.
13718 (font_min_bounds): Return minimum font metrics. Capture the
13719 case of invalid min_bounds contents.
13720 (min_char_bounds): Call font_min_bounds.
13721
13722 1998-01-22 Gerd Moellmann <gerd@gnu.org>
13723
13724 * xdisp.c (start_display): Don't set it->prompt_width if
13725 PROMPT_IN_BUFFER.
13726 (move_iterator_in_display_line_to): Ditto.
13727 (display_line): Don't display prompt via display_string if
13728 PROMPT_IN_BUFFER.
13729
13730 * minibuf.c (Fminibuffer_prompt_width): Return value from
13731 current_buffer if PROMPT_IN_BUFFER.
13732 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
13733 mini-buffer and make it read-only.
13734 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13735 minibuffer_prompt_length instead of BEGV.
13736 (Fminibuffer_complete_word): Ditto.
13737 (Fminibuffer_complete_word): Ditto.
13738
13739 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13740 is less than mini-buffer prompt width, use prompt width as start.
13741
13742 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13743 position is less than mini-buffer prompt width, use the prompt
13744 width as start.
13745
13746 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13747 end of prompt if applied to a mini-buffer and BEG reached.
13748
13749 1998-01-21 Gerd Moellmann <gerd@gnu.org>
13750
13751 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13752 length to start position.
13753
13754 * buffer.c (Fget_buffer_create): Initialize
13755 minibuffer_prompt_length.
13756 (Fmake_indirect_buffer): Ditto.
13757 (Fkill_buffer): Ditto.
13758
13759 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13760 if PROMPT_IN_BUFFER.
13761
13762 1998-01-19 Gerd Moellmann <gerd@gnu.org>
13763
13764 * xdisp.c (next_element_from_string): Make it work for arbitrary
13765 Lisp strings.
13766 (set_iterator_to_next): Advance to next overlay string only
13767 if it->string is an overlay string.
13768
13769 * dispextern.h (struct display_iterator):
13770 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13771
13772 * xfaces.c (compute_string_char_face): Compute face for
13773 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13774
13775 * xdisp.c (next_element_from_string): Renamed from
13776 next_element_from_overlay_string.
13777 (compute_face_at_iterator_string_position): Renamed from
13778 compute_face_at_iterator_overlay_string_position.
13779
13780 * dispextern.h (struct display_iterator): Member overlay_string
13781 renamed string.
13782
13783 * xdisp.c (next_element_from_c_string): Renamed from
13784 next_element_from_string.
13785
13786 * dispextern.h (struct glyph_pos): Reversed meaning of
13787 overlay_string_index and string_index.
13788
13789 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13790 this function always return the first character of an overlay
13791 string.
13792
13793 1998-01-18 Gerd Moellmann <gerd@gnu.org>
13794
13795 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13796 forced or new pos > next_invisible_check_pos.
13797 (redisplay_window): Don't try same window start if PT < window
13798 start.
13799 (move_iterator_vertically): Bug fix satisfying post-condition
13800 when ZV is reached and no newline in front.
13801 (move_iterator_vertically_backward): New implementation.
13802 (move_iterator_vertically_backward): Bug fixes.
13803
13804 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13805 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13806 (adjust_glyphs_for_font_change): Always adjust.
13807
13808 * dispnew.c (struct dim): Use int.
13809
13810 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13811 (allocate_face): Initialize it.
13812 (load_font): Use XLoadQueryFont again instead of x_load_font.
13813 (unload_font): Use XFreeFont again.
13814 (min_char_bounds): Iterate over fonts of faces. Use frame's
13815 font sizes as default. Remove parameter except_last_font_p.
13816
13817 * dispextern.h (struct face): Add font_name.
13818
13819 1998-01-17 Gerd Moellmann <gerd@gnu.org>
13820
13821 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13822 to start of line if ending at ZV and no newline in front.
13823 (move_iterator_to): If to_y specified, always first move to x = 0,
13824 so that move stops at line start instead of line end. This is
13825 probably what callers would expect to happen.
13826
13827 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13828 can handle different line heights.
13829 (window_scroll_line_based): Formerly window_scroll.
13830 (window_scroll): Call both.
13831
13832 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13833 (move_iterator_in_display_line_to): Ditto.
13834 (display_line): Ditto.
13835
13836 * minibuf.c (read_minibuf): Conditionally insert prompt into
13837 buffer instead of handling prompts specially. Change other
13838 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13839
13840 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13841 upper window. Optimize calls to xrealloc if same width.
13842
13843 * xdisp.c (redisplay_window): Don't use
13844 try_window_reusing_current_matrix if window scroll functions
13845 exist.
13846
13847 * dispextern.h (struct display_iterator): Member
13848 redisplay_end_trigger_p removed.
13849
13850 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13851 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13852
13853 1998-01-16 Gerd Moellmann <gerd@gnu.org>
13854
13855 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13856 nil. Optimize truncate-lines t and moving backward.
13857 (move_iterator_to_previous_visible_line_start): Contains the heart
13858 of the previous set_iterator_to_previous_visible_line_end. Don't
13859 reseat the iterator. Used by move_iterator_by_lines.
13860 (set_iterator_to_previous_visible_line_start): Call function
13861 above.
13862 (move_iterator_in_display_line_to): Check TO_POS before doing
13863 anything else. Otherwise to_pos == PT would move to x of PT+1.
13864
13865 * indent.c (Fvertical_motion): Use display_iterator.
13866
13867 * xdisp.c (move_iterator_by_lines): New function moving by screen
13868 lines.
13869 (redisplay_window): Use it.
13870 (move_iterator_to): Correct branch of to_vpos specified.
13871 (move_iterator_vertically_backward): Increment nlines after having
13872 backed up over some lines because the last line was not backed up
13873 over.
13874 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13875 calculate it->vpos and it->current_y relative to this row.
13876 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
13877 have a big effect and it is complex.
13878 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13879
13880 1998-01-15 Gerd Moellmann <gerd@gnu.org>
13881
13882 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13883 join nicely. Lines with widths > 2 don't join nicely under X.
13884 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13885 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13886 width 1; remove references to relief_gc_line_width.
13887 * xfns.c (x_make_gc): Ditto.
13888
13889 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13890 if relief changes.
13891 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13892 to get a relief because they can be negative.
13893
13894 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13895 positions are for the middle of lines under X.
13896
13897 * xdisp.c (try_window_id): Always search for the cursor by setting
13898 w->cursor.vpos = -1. Search in unchanged rows at the top and
13899 bottom if cursor not found in displayed lines.
13900 (display_mode_line): First extend face, then set right shadow
13901 flag. Otherwise the wrong glyph gets the right shadow.
13902
13903 * dispnew.c (direct_output_for_insert): Give up if line contains
13904 a tab. The number of spaces inserted for a tab changes if we
13905 insert glyphs in front of it.
13906
13907 * xterm.c (x_list_fonts): Changes undone because the Lisp
13908 implementation for make-face-smaller, make-face-larger, and
13909 make-face-fixed can do without them.
13910
13911 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13912 inserted.
13913
13914 * xdisp.c (try_window_id): First compute beg_unchanged, then
13915 compare with window start pos.
13916
13917 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13918 fixed-width font.
13919 (syms_of_xfns): defsubr for x-face-fixed-p.
13920
13921 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13922 enabled, don't do anything because this row will be newly drawn
13923 anyway and because we can additionally no longer determine the row
13924 height.
13925
13926 * xdisp.c (display_line): Bug fix cursor positioning.
13927
13928 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13929 removed. x-list-fonts.c is now obsolete.
13930 (Qfixed, Qvariable): Moved here from xfaces.c.
13931
13932 1998-01-14 Gerd Moellmann <gerd@gnu.org>
13933
13934 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13935 FETCH_BYTE for truncated lines.
13936 (display_line): Set cursor differently.
13937 (display_line): Fixed bug setting last_pos_on_this_line wrong
13938 for truncated lines.
13939
13940 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13941 redisplay.
13942
13943 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13944
13945 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13946 assertion that character dimensions are not zero.
13947
13948 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13949 input is blocked.
13950
13951 * xdisp.c (decode_mode_spec): Faster implementation of line number
13952 display.
13953
13954 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13955 bitmaps if bitmaps don't fill the entire area.
13956 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13957
13958 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
13959 pixel height of flags bitmaps.
13960
13961 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13962 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13963
13964 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13965 in pixels of a flags area of a frame.
13966 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13967 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13968 occupied by a flags area.
13969
13970 1998-01-13 Gerd Moellmann <gerd@gnu.org>
13971
13972 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13973 window_end_valid.
13974
13975 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13976 GLYPH_DEBUG != 0.
13977
13978 * xdisp.c (display_line): Correct wrong calculation of row->x for
13979 the case of nglyphs == 1.
13980 (hscroll_window_tree): Renamed from hscroll_windows.
13981 (hscroll_windows): New function calling hscroll_window_tree that
13982 clears desired matrices on a frame when hscroll has been changed.
13983 (redisplay_p): Global flag set during redisplay.
13984 (redisplay_internal): Set and clear redisplay_p.
13985
13986 * xfaces.c (min_char_bounds): Add assertion that width and height
13987 are not zero at the end. Initialize *height and *width to -1,
13988 instead of using BITS_PER_SHORT. If font has min_bounds.width
13989 zero, use its max_bounds.width.
13990
13991 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13992 width and height.
13993
13994 1998-01-12 Gerd Moellmann <gerd@acm.org>
13995
13996 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13997 changed. Don't clear desired matrices.
13998
13999 * xdisp.c (hscroll_windows): Compute pt after setting
14000 current_buffer.
14001 (redisplay_window): Don't do cursor movement based on current
14002 matrix if just_this_one_p is zero.
14003
14004 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
14005 specifying that fixed-width, variable-width fonts or both
14006 should be returned.
14007
14008 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
14009 (syms_of_xfaces): Initialize them.
14010
14011 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
14012 cached information.
14013
14014 1998-01-11 Gerd Moellmann <gerd@acm.org>
14015
14016 * xdisp.c (display_mode_line): Extend face to end of line.
14017
14018 * xdisp.c (echo_area_display): Don't call display_string with
14019 echo_area_glyphs_length == 0 which would mean infinite precision.
14020 (redisplay_internal): Adjust window_end_vpos if necessary.
14021
14022 1998-01-07 Gerd Moellmann <gerd@acm.org>
14023
14024 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
14025
14026 1998-01-05 Gerd Moellmann <gerd@acm.org>
14027
14028 * xdisp.c (get_row_start_continuation_line_width): Removed.
14029 (init_iterator_to_row_start): Set it.current_x from row.
14030 (try_window_id): Set it.continuation_lines_width directly from
14031 row.
14032
14033 * xdisp.c (hscroll_windows): Use w->pointm if window is not
14034 selected_window.
14035 (hscroll_windows): Center cursor in window.
14036 (hscroll_windows): Call move_iterator_in_display_line_to.
14037
14038 1998-01-04 Gerd Moellmann <gerd@acm.org>
14039
14040 * xdisp.c (hscroll_windows): Check hscroll < 0.
14041 (redisplay_window): Allow quick cursor movement if overlay arrow
14042 but frame uses window-based redisplay.
14043 (display_line): Take special case for nglyphs == 1 out of #if 0.
14044 (display_line): Set row->ends_at_zv_p after the loop displaying
14045 glyphs because ZV can be in truncated text.
14046 (hscroll_windows): Use init_iterator_to_row_start.
14047
14048 * dispnew.c (scrolling_window): Calculation of overlapping
14049 runs fixed.
14050 (row_equal_p): Compare continued_p and continuation_line_p.
14051
14052 1998-01-02 Gerd Moellmann <gerd@acm.org>
14053
14054 * xterm.c (x_get_mode_line_face_gc): Renamed from
14055 x_get_modeline_face_gc.
14056
14057 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
14058 buffer position to look for text properties.
14059 (get_face_from_cursor_pos): Use it.
14060 (compute_face_at_iterator_position): Use it.
14061 (next_element_from_buffer): Use it.
14062
14063 * dispnew.c (scrolling_window): Decrement run's y-position
14064 when extending it backwards.
14065
14066 * xterm.c (do_line_dance): Don't ever copy more than window height.
14067
14068 1998-01-01 Gerd Moellmann <gerd@acm.org>
14069
14070 * xdisp.c (redisplay_window): Cursor motion in unchanged
14071 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
14072 (init_iterator_to_next_row_start): Special handling of lines
14073 ending in middle of char removed.
14074 (hscroll_windows): Hscroll windows only if window_end_valid is not
14075 nil.
14076 (try_window_reusing_current_matrix): Call hscroll_windows.
14077 (init_iterator_to_row_start): Initialize iterator for display
14078 starting at a position given by a glyph_row->start.
14079 (redisplay_window): Don't use vmotion because it gives wrong
14080 results if lines are continued and variable width fonts are used.
14081
14082 * dispextern.h (struct glyph_pos): New member dpvec_index.
14083 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
14084 the middle of a character.
14085 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
14086 the middle of a character.
14087
14088 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
14089 it.
14090 (next_element_from_display_vector): Use it->dpvec_index.
14091 (reseat_iterator): Reset it.
14092 (init_iterator): Reset it.
14093 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
14094 it->pos.dpvec_index from a glyph_pos structure.
14095 (init_iterator_from_glyph_pos): Call the function above.
14096 (reseat_iterator_to_glyph_pos): Ditto.
14097
14098 * dispnew.c (direct_output_forward_char): Don't use this method at
14099 overlay boundaries or near invisible text.
14100 (direct_output_forward_char): Step through glyph row to find
14101 cursor position.
14102
14103 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
14104 frame font if line height differs from font height.
14105
14106 * xdisp.c (set_iterator_to_next): Renamed from
14107 move_iterator_forward to avoid confusion with other move_.*
14108 functions.
14109
14110 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
14111
14112 1997-12-31 Gerd Moellmann <gerd@acm.org>
14113
14114 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
14115 same naming convention as for other GC functions.
14116 (draw_glyphs): Don't fill background when drawing a cursor and
14117 font height is less than line height.
14118
14119 1997-12-30 Gerd Moellmann <gerd@acm.org>
14120
14121 * xdisp.c (init_display_iterator.*): Renamed to shorter names
14122 init_iterator_.*.
14123
14124 * xdisp.c (move_iterator_forward): Restore it->len from
14125 it->dpvec_char_len if dpend reached.
14126 (get_next_display_element): Don't consume translated char
14127 prematurely.
14128 (display_line): Don't set this_.* variables if row is continued.
14129 (start_display): Move to start of continuation line if ending
14130 up at end of continued line.
14131
14132 * dispextern.h (struct display_iterator): New member dpvec_char_len.
14133
14134 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
14135 checking TO_X and continuation lines.
14136 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
14137 of a continued line, don't consider this line as unchanged because
14138 it may no longer be continued.
14139
14140 1997-12-29 Gerd Moellmann <gerd@acm.org>
14141
14142 * xdisp.c (try_window_id): Catch the case that moving over
14143 continuation lines moves first_unchanged_at_end_row to a row not
14144 displaying text.
14145
14146 * dispextern.h (struct glyph_row): New member
14147 continuation_lines_width. Member continuation_line_p removed.
14148 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
14149 continuation line.
14150 * xdisp.c (display_line): Set row->continuation_lines_width.
14151 (get_row_start_continuation_line_width): Set continuation lines
14152 width of iterator from continuation lines width of glyph row.
14153 (get_row_start_continuation_line_width): Make it inline.
14154 (set_window_cursor): Make it inline.
14155 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
14156 (Fdump_redisplay_state): Ditto.
14157
14158 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
14159 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
14160
14161 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
14162 after determining the continuation lines width for
14163 last_unchanged_at_beg_row.
14164
14165 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
14166
14167 * xdisp.c (display_mode_line): Handle 3D faces only on frames
14168 which support faces.
14169 (init_display_iterator): Ditto.
14170 (move_iterator_via_matrix): Skip over truncation glyph at the row
14171 start on terminal frames.
14172 (hscroll_windows): Choose hscroll margin differently for window
14173 system and terminal frames.
14174
14175 1997-12-28 Gerd Moellmann <gerd@acm.org>
14176
14177 * xdisp.c (hscroll_windows): Change hscroll of windows.
14178 (redisplay_internal): Call it.
14179
14180 * dispnew.c (direct_output_for_insert): Give up if a glyph
14181 doesn't fit completely on the line.
14182 (direct_output_forward_char): Give up for non-ASCII chars.
14183 (direct_output_forward_char): Set redisplay_performed_directly_p.
14184
14185 * dispextern.h (struct display_iterator): Make first_visible_x
14186 and last_visible_x ints; this is for very long truncated lines.
14187
14188 * xdisp.c (move_iterator_in_display_line_to): Separate check for
14189 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
14190 positioning problems with the mouse.
14191 (move_iterator_in_display_line_to): Truncate lines if it->current_x
14192 >= it->last_visible_x instead of >.
14193 (display_line): Ditto.
14194
14195 * xterm.c (draw_glyphs): Draw rectangles if font could not be
14196 loaded.
14197 (XTproduce_glyphs): Calculate pixel_width for composite chars and
14198 non-ASCII chars differently. Always produce 1 glyph for composite
14199 chars. If font not found, use CHARSET_WIDTH to calculate width of
14200 non-ASCII chars.
14201 (x_get_char_font_and_encoding): Return null if font could not be
14202 loaded. Reset font to null if fontset could not be loaded.
14203 (draw_glyphs): Fill background if font not found.
14204 (draw_glyphs): Unused parameter just_foreground_p removed. New
14205 parameter composite_glyph.
14206 (draw_glyphs): Use enumeration for parameter hl.
14207 (draw_glyphs): Pass a display area relative x-position to
14208 draw_glyphs when calling it recursively for composite chars.
14209
14210 1997-12-27 Gerd Moellmann <gerd@acm.org>
14211
14212 * xterm.c: Patches from handa.etl.go.jp integrated.
14213 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
14214 find a font_info.
14215
14216 * xdisp.c (move_iterator_in_display_line_to): Check to_x
14217 for nglyphs == 1.
14218
14219 * xterm.c (x_draw_relief): Draw relief lines.
14220 (draw_glyphs): Call x_draw_relief.
14221
14222 1997-12-26 Gerd Moellmann <gerd@acm.org>
14223
14224 * xfns.c (x_make_gc): Create relief GC's.
14225
14226 * widget.c (create_frame_gcs): Create GC's for relief drawing.
14227 (setup_frame_gcs): Initialize them.
14228 (EmacsFrameDestroy): Free them.
14229
14230 * xdisp.c (try_window_id): Get continuation lines width if
14231 last_unchanged_at_beg_row is continued or a continuation line.
14232 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
14233 (redisplay_window): Case point has changed, and it has not
14234 moved off the frame. Don't increment row if PT equals the row
14235 end if the row ends in ZV.
14236
14237 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
14238 (expose_line): Call it.
14239 (x_after_update_window_line): Call it.
14240
14241 * xdisp.c (display_line): Reset continuation_lines_width when ZV
14242 reached.
14243
14244 * xterm.c (x_after_update_window_line): Draw continuation line
14245 bitmap.
14246
14247 * dispnew.c (update_window_line): Call
14248 after_update_window_line_hook when row's continuation_line_p
14249 changes.
14250
14251 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
14252
14253 * xdisp.c (display_line): Handle continued lines on window system
14254 frames differently since continuation glyphs are not displayed.
14255 (move_iterator_in_display_line_to): Ditto.
14256 (move_iterator_in_display_line_to): Take the mini-buffer prompt
14257 into account.
14258 (move_iterator_vertically_backward): Handle dy == 0 specially.
14259 (redisplay_window): Catch the case of small windows when
14260 recentering where moving back window_height/2 moves us beyond the
14261 top of the display area of the window.
14262
14263 1997-12-18 Gerd Moellmann <gerd@acm.org>
14264
14265 * xdisp.c (move_iterator_vertically_backward): Unused parameter
14266 dvpos removed.
14267
14268 1997-12-17 Gerd Moellmann <gerd@acm.org>
14269
14270 * dispnew.c (direct_output_forward_char): Correct new cursor
14271 x-position.
14272
14273 1997-12-16 Gerd Moellmann <gerd@acm.org>
14274
14275 * xterm.c (x_after_update_window_line): Remove unused parameters.
14276 (XTclear_end_of_line): Clear to display_height instead of
14277 display_height - 1.
14278
14279 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
14280 (update_window_line): Call after_update_window_line_hook if
14281 rows have different y-positions, or different height.
14282
14283 1997-12-14 Gerd Moellmann <gerd@acm.org>
14284
14285 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
14286
14287 * window.c (coordinates_in_window): Call frame_mode_line_height.
14288
14289 * xterm.c (x_draw_3d_border): Removed.
14290 (x_draw_row_borders): Removed.
14291
14292 * dispnew.c (update_window): References to
14293 FRAME_MODE_LINE_BORDER_WIDTH removed.
14294
14295 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
14296 (FRAME_MODE_LINE_HEIGHT): Removed.
14297
14298 * xterm.c (draw_3d_borders_p): Removed.
14299 (draw_glyphs): Ditto.
14300 (XTwrite_glyphs): Ditto.
14301 (expose_line): Ditto.
14302 (x_initialize): Ditto.
14303
14304 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
14305 frame_mode_line_height.
14306
14307 * term.c (frame_mode_line_height): Get the pixel height of a
14308 frame's mode line.
14309 (frame_mode_line_height_hook): Hook to implement system dependent
14310 versions.
14311
14312 * xterm.c (x_initialize): Set the hook.
14313 (XTframe_mode_line_height): X version of frame_mode_line_height.
14314
14315 * xdisp.c (echo_area_display): Call gobble_input to flush the X
14316 output buffer.
14317 (display_string): Don't add right truncation mark if line ends in
14318 padding space.
14319 (init_display_iterator): If called with modeline_p non-zero, set
14320 face_id to 1, which is the id of the mode line face.
14321
14322 * keyboard.c (cmd_error_internal): Write to stderr if selected
14323 frame is Vterminal_frame under X. This is the case when a font
14324 cannot be loaded when Emacs starts. Replace test for
14325 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
14326
14327 * xfaces.c (compute_overlay_string_char_face): Compute the
14328 face of a character in an overlay string.
14329 * xterm.h (compute_overlay_string_char_face): Prototype.
14330 * xdisp.c (compute_face_at_iterator_overlay_string_position):
14331 Use it.
14332
14333 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
14334 set_iterator_to_next_overlay.
14335 (struct overlay_entry): Structure used to sort overlay strings.
14336 (compare_overlay_entries): Compare overlay strings.
14337 (load_iterator_with_overlay_strings): Load a chunk of overlay
14338 strings.
14339 (get_overlay_strings_at_iterator_position): Call it.
14340 (next_element_from_overlay_string): Set it->object to the overlay
14341 string. Prepare for setting it->position to a string position.
14342 (get_overlay_strings_at_iterator_position): Renamed from
14343 get_overlays_at_iterator_position.
14344 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
14345 chunks of overlay strings.
14346 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
14347
14348 * dispextern.h (struct display_iterator): New vector
14349 overlay_strings and new member n_overlay_strings---formerly
14350 overlays and n_overlays.
14351 (struct glyph_pos): Remove after_string_p; overlay_index
14352 renamed to string_index.
14353
14354 1997-12-13 Gerd Moellmann <gerd@acm.org>
14355
14356 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
14357 when allocating a vector.
14358 (release_iterator): Removed.
14359 (restore_iterator): Removed.
14360 (copy_iterator): Removed.
14361
14362 1997-12-08 Gerd Moellmann <gerd@acm.org>
14363
14364 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
14365 clearing a mini-buffer window that is not active.
14366 (redisplay_window): Do not scroll one line too early when last
14367 window line is completely visible.
14368 (init_display_iterator): Leave some room to display the cursor
14369 after the last glyph on a continued line.
14370
14371 * xterm.h (struct x_output): trunc_area_extra renamed
14372 flags_areas_extra.
14373 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
14374
14375 * dispnew.c (update_window_line): Call
14376 after_update_window_line_hook when current row is not enabled
14377 which is the case after a frame has been cleared.
14378
14379 * xdisp.c (display_mode_line): Reset row flags for truncation
14380 on right side for the mode line.
14381
14382 * xterm.c (bitmap_type): Type of bitmap to display in flags
14383 area of frame.
14384 (x_after_update_window_line): Use the enum.
14385 (draw_bitmap): Ditto.
14386
14387 1997-12-07 Gerd Moellmann <gerd@acm.org>
14388
14389 * xterm.c (x_clip_to_row): Include width of both flag areas.
14390 (do_line_dance): Ditto.
14391 (expose_window_tree): Ditto.
14392 * dispnew.c (update_window_line): Call
14393 after_update_window_line_hook for right truncation and continuation.
14394 * xdisp.c (init_display_iterator): Don't subtract width of
14395 continuation glyphs for window-based redisplay.
14396 * xterm.c (draw_bitmap): Draw continuation bitmap.
14397 * widget.c (set_frame_size): Double trunc_area_extra.
14398 (EmacsFrameSetCharSize): Ditto.
14399 * xfns.c (x_figure_window_size): Ditto.
14400 * xterm.c (x_set_window_size): Ditto.
14401 (x_after_update_window_line): Draw right truncation mark.
14402
14403 * xterm.c (draw_glyphs): Bug fix buffer overrun.
14404
14405 * window.h: Include blocker around dispextern.h removed.
14406
14407 * eval.c (Feval): Check interrupt_input_block == 0.
14408
14409 * dispextern.h (struct display_iterator): Former ovstr made a
14410 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
14411 next_ovstr_invisble_check_pos; check at these positions for
14412 face changes and changes in invisible text property.
14413 (struct glyph_pos): Former ovlen now overlay_string_index.
14414
14415 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
14416 overlay_string.
14417 (set_iterator_to_next_overlay_string): Set overlay_string and
14418 pos.overlay_string_index.
14419 (get_overlays_at_iterator_position): Use overlay_string and
14420 overlay_string_index.
14421 (next_element_from_overlay_string): Use overlay_string and
14422 overlay_string_index.
14423 (move_iterator_forward): Increment overlay_string_index.
14424 (try_window_id): Use overlay_string and overlay_string_index.
14425 (move_iterator_forward): At end of dpvec, maybe use method
14426 next_element_from_overlay_string for the case a character from an
14427 overlay string was translated via a display table.
14428 (reseat_iterator_to_string): Take a Lisp string.
14429 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14430 (compute_face_at_iterator_overlay_string_position): Compute face
14431 based on text properties for an overlay string.
14432 (next_element_from_overlay_string): Check invisible and face text
14433 properties.
14434
14435 (set_iterator_to_next_overlay_string): Restore face id before
14436 overlay strings when no more overlay strings are found to return.
14437 Initialize next_ovstr_.*check_pos for each new overlay string
14438
14439 A line in the following paragraph was garbled for an unknown
14440 reason. It couldn't be fully reconstructed.
14441
14442 (compute_base_face): Made public.
14443 (merge_face_list): Ditto.
14444 (intern_computed_face): Ditto.
14445
14446 * xdisp.c (redisplay_window): Cursor movement in unchanged
14447 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14448 of row is > instead of >= last_y.
14449
14450 * buffer.h (overlays_at): Function prototype.
14451
14452 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14453 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14454
14455 * xdisp.c (release_iterator): Release dynamically allocated
14456 memory of a display_iterator.
14457 (copy_iterator): Copy an iterator.
14458 (restore_iterator): Restore an iterator from a backup copy.
14459 (global): Use the functions above.
14460 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14461 * dispnew.c (direct_output_for_insert): Call release_iterator.
14462
14463 * dispextern.h (struct display_iterator): Allocate overlays
14464 vector dynamically.
14465
14466 1997-12-06 Gerd Moellmann <gerd@acm.org>
14467
14468 * Makefile.in (window.o): Depends on dispextern.h.
14469
14470 * buffer.c (overlays_at): Make it work when extending vectors
14471 and an initial vector of zero size.
14472
14473 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14474 from set_cursor_to_previous_visible_line_end.
14475 (set_iterator_to_next_visible_line_start): Renamed from
14476 set_cursor_to_next_visible_line_end.
14477 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14478 (compute_face_at_iterator_position): Renamed from
14479 compute_cursor_face.
14480 (set_iterator_to_next_overlay_string): Renamed from
14481 cursor_to_next_overlay_string.
14482 (get_overlays_at_iterator_position): Renamed from
14483 get_overlays_for_cursor.
14484 (reseat_iterator): Renamed from reseat_cursor.
14485 (setup_iterator_overlays_from_glyph_pos): Renamed from
14486 setup_overlays_from_pos.
14487 (init_string_iterator): Renamed from init_string_cursor.
14488 (get_next_display_element): Renamed from next_display_element.
14489 (move_iterator_forward): Renamed from advance_display_cursor.
14490 (get_overlays_at_iterator_position): Allocate overlays vector
14491 dynamically.
14492
14493 * xdisp.c: display_cursor renamed display_iterator.
14494 * dispextern.h: Ditto.
14495 * dispnew.c: Ditto.
14496
14497 1997-12-01 Gerd Moellmann <gerd@acm.org>
14498
14499 * window.c (mark_window_cursors_off): Function comment added.
14500 (window_topmost_p, window_rightmost_p): Removed because not used.
14501
14502 1997-11-30 Gerd Moellmann <gerd@acm.org>
14503
14504 * emacs.c (main): Function prototypes removed in profiling code.
14505 Use safe_bcopy as start of text.
14506
14507 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14508 mirrored_make_current -> make_current.
14509
14510 * xdisp.c: (store_frame_title_char): New function to store a
14511 single character for the frame title with re-allocation of
14512 frame_title_buf.
14513 (init_xdisp): Intialize frame_title_.* variables to null.
14514
14515 * dispnew.c (quit_error_check): Removed.
14516
14517 * eval.c (Fsignal): Call to quit_error_check removed.
14518 * keyboard.c (quit_throw_to_read_char): Ditto.
14519
14520 1997-11-23 Gerd Moellmann <gerd@acm.org>
14521
14522 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14523 to mean a zero relief.
14524
14525 1997-11-19 Gerd Moellmann <gerd@acm.org>
14526
14527 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14528 unconditionally.
14529 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14530 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14531 (check_glyph_memory): Define function body unconditionally.
14532
14533 1997-11-17 Gerd Moellmann <gerd@acm.org>
14534
14535 * dispnew.c (scrolling_window): Alternative version of this
14536 function removed.
14537
14538 1997-11-16 Gerd Moellmann <gerd@acm.org>
14539
14540 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14541 of height CANON_Y_UNIT.
14542 * dispextern.h: Prototype for that function.
14543 * xdisp.c (echo_area_display): Don't use display_string to
14544 produce empty rows. Use make_empty_enabled_row instead.
14545
14546 * dispnew.c (scrolling_window): New version using diff-like
14547 algorithm activated.
14548
14549 1997-11-15 Gerd Moellmann <gerd@acm.org>
14550
14551 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14552 (clear_desired_matrices): Ditto.
14553 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14554 for menu_bar_window.
14555
14556 * alloc.c (mark_object): Mark menu_bar_window of frames.
14557
14558 * xterm.c (XTupdate_window_end): Don't display cursor if
14559 pseudo_window_p.
14560
14561 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14562 set mini_p.
14563 (update_window): Don't set cursor if pseudo_window_p.
14564
14565 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14566
14567 * window.h (struct window): New flag pseudo_window_p set to
14568 1 for windows that aren't really part of the window tree, like
14569 menu_bar_window's of frames.
14570 * window.c (make_window): Initialize it.
14571 (replace_window): Ditto.
14572 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14573
14574 * frame.c (make_frame): Initialize menu_bar_window to nil.
14575
14576 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14577 FACE_RELIEF
14578
14579 * xfaces.c (copy_face): shadow_thickness -> relief.
14580 (face_eql): Ditto.
14581 (merge_faces): Ditto.
14582 (compute_base_face): Ditto.
14583 (Fset_face_attribute_internal): Ditto.
14584 * dispextern.h (struct face): Ditto.
14585
14586 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14587 it is non-nil.
14588
14589 * xdisp.c (display_menu_bar): Display the menu bar in
14590 f->menu_bar_window if appropriate.
14591 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14592
14593 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14594 dummy window and window matrices for f->menu_bar_window.
14595 (free_glyphs): Free the dummy window and its glyph matrices.
14596
14597 * frame.h (struct frame): New member menu_bar_window.
14598
14599 1997-11-09 Gerd Moellmann <gerd@acm.org>
14600
14601 * dispnew.c (scrolling_window): New version with diff-like
14602 algorithm.
14603
14604 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14605 old_start always start displaying at start of
14606 first_row_to_display. The previous scheme failed if the last row
14607 was fully visible.
14608
14609 * dispnew.c (update_window): Remove cost calculations. Remove
14610 redundant preempt_count calculations.
14611
14612 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14613 differently.
14614
14615 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14616
14617 * window.c (syms_of_window): Functions for marginal areas if
14618 WITH_MARGINAL_AREAS is defined.
14619
14620 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
14621 removed.
14622
14623 * dispnew.c (scrolling): Call line_hash_code because hash values
14624 are not set in the frame matrix.
14625
14626 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14627 (redisplay_window): Check line_ins_del_ok before calling
14628 try_window_id.
14629 (try_window_reusing_current_matrix): Give up for terminal frames
14630 if window is not full width or we cannot insert/delete lines.
14631 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14632 frames.
14633
14634 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14635 Lisp_Object to mark_object.
14636
14637 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14638 window rows have the same glyph pointers.
14639 (try_window_id): Call it.
14640
14641 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14642 a glyph matrix.
14643 (mark_object): Call it.
14644
14645 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14646 truncations.
14647 (display_line): Ditto.
14648 (display_line): Ditto for DISP_CONTINUATION.
14649 (display_line): Truncation on right: test current_x >
14650 last_visible_x.
14651 (skip_in_display_line_to): Ditto.
14652 (skip_via_matrix): Stop skipping in glyph row at face extending
14653 glyphs or at padding spaces.
14654
14655 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14656
14657 * xdisp.c (display_line): Use glyph->object == 0 for padding
14658 glyphs.
14659 (redisplay_window): Don't let cursor move over padding
14660 spaces.
14661
14662 * dispextern.h (struct glyph): Fix comment for object.
14663
14664 1997-11-08 Gerd Moellmann <gerd@acm.org>
14665
14666 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14667 has a mode line.
14668 * xdisp.c (redisplay_window): Use it.
14669 (display_mode_line): Check that window wants mode line.
14670
14671 1997-11-03 Gerd Moellmann <gerd@acm.org>
14672
14673 * xdisp.c (display_menu_bar): Enable menu bar rows.
14674
14675 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14676 (x_erase_phys_cursor): Ditto.
14677 (x_draw_bar_cursor): Ditto.
14678
14679 1997-11-02 Gerd Moellmann <gerd@acm.org>
14680
14681 * dispnew.c (update_marginal_area): Update a marginal area.
14682 (update_text_area): Update text area.
14683 (update_window_line): Call both.
14684
14685 * xterm.c (XTclear_end_of_line): Translate coordinates area
14686 dependent.
14687
14688 * dispnew.c (updated_area): Row area being updated in
14689 update_window_line.
14690 (update_window_line): Set it.
14691 (update_marginal_area): Clear to end of line if not in text area.
14692
14693 * window.c (Fset_window_margins): Increment
14694 windows_or_buffer_changed. Adjust glyphs.
14695
14696 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14697 area X coordinates to frame coordinates.
14698 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
14699 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14700 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14701
14702 * xterm.c (draw_glyphs): Use text area width as display width.
14703
14704 * xdisp.c (init_display_info): Subtract widths of marginal areas
14705 from last_visible_x.
14706
14707 * alloc.c (mark_object): Mark objects in glyphs only if they are
14708 overlays. Mark only if current_matrix != 0. Activate the code.
14709
14710 * window.c (Fset_window_margins): Set margins.
14711 (Fwindow_margins): Return margin area widths.
14712 (syms_of_window): Add defsubr's.
14713
14714 * window.h (struct window): left_margin_width, right_margin_width.
14715
14716 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14717 and cols.
14718
14719 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14720 truncation/overlay arrow area.
14721 (struct frame): trunc_area_pixel_width, and _cols.
14722
14723 * window.c (Fsplit_window): Use it.
14724
14725 * window.c (Fsplit_window): Set cursor vpos to -1 after
14726 splitting.
14727 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14728 split windows.
14729
14730 * dispnew.c (set_window_cursor_after_update): Accept out
14731 of bounds cursor positions.
14732
14733 * xdisp.c (redisplay_internal): Check that after cursor motion
14734 within line, PT is on same line.
14735
14736 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14737 FRAME_TRUNC_WIDTH.
14738
14739 * xterm.h (struct x_output): trunc_area_extra.
14740 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14741 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14742 * widget.c (set_frame_size): Set it.
14743 (EmacsFrameSetCharSize): Ditto.
14744 * xfns.c (x_figure_window_size): Ditto.
14745 * xterm.c (x_set_window_size): Ditto.
14746
14747 * dispnew.c (check_matrix_invariants): First try to check window
14748 ends (in #if 0).
14749
14750 * xdisp.c (try_window_reusing_current_matrix): Try window
14751 redisplay with different window start.
14752
14753 1997-11-01 Gerd Moellmann <gerd@acm.org>
14754
14755 * window.c (make_window): Set window_end_pos/vpos.
14756 (Fsplit_window): Zero last_cursor, window_end_valid.
14757 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14758
14759 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14760
14761 1997-10-31 Gerd Moellmann <gerd@acm.org>
14762
14763 * window.c (make_window): Initialize last_cursor.
14764 (replace_window): Ditto.
14765
14766 1997-10-29 Gerd Moellmann <gerd@acm.org>
14767
14768 * window.h: New member last_cursor.
14769 * dispnew.c (direct_output_for_insert): Set it.
14770 (direct_output_forward_char): Ditto.
14771 * xdisp.c (redisplay_internal): Ditto.
14772
14773 1997-10-28 Gerd Moellmann <gerd@acm.org>
14774
14775 * xdisp.c (redisplay_internal): Optimization 1 change partially
14776 reverted. Check this again later.
14777 (skip_via_matrix): Remove redundent test for
14778 MATRIX_ROW_DISPLAYS_TEXT_P.
14779
14780 1997-10-27 Gerd Moellmann <gerd@acm.org>
14781
14782 * dispnew.c (update_window_line): Call
14783 after_update_window_line_hook only for interesting constellations.
14784 (free_glyph_matrix): Fix memory leak.
14785
14786 * window.h: Include blocker WINDOW_H_INCLUDED, include
14787 dispextern.h.
14788 (struct window): phys_cursor_glyph as struct glyph. * window.c
14789 (make_window): Initialize it.
14790 (replace_window): Ditto.
14791 * dispnew.c (free_window_matrices): Remove freeing of
14792 phys_cursor_glyph.
14793 (check_matrix_invariants): Renamed from check_current_matrix_...
14794 * xterm.c: All references to phys_cursor_glyph changed.
14795
14796 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14797
14798 * xfaces.c: Comment update.
14799
14800 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14801 pointer. Remove phys_cursor_ascent, descent, etc.
14802 * dispnew.c (free_window_matrices): Free it.
14803 * window.c (make_window): Allocate it.
14804 (replace_window): Ditto.
14805 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14806 (x_display_and_set_cursor): Fill it.
14807 (x_phys_cursor_in_rect_p): Use it.
14808 (x_draw_hollow_cursor): Ditto.
14809 (x_draw_bar_cursor): Ditto.
14810 (x_erase_phys_cursor): Ditto.
14811
14812 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14813
14814 * xterm.c (XTget_display_info): Handle 3D facess.
14815 (draw_glyphs): Ditto.
14816
14817 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14818
14819 * xfaces.c (Fset_face_attribute_internal): New face attribute
14820 shadow-thickness.
14821 (copy_face): Handle shadow_thickness.
14822 (face_eql): Ditto.
14823 (merge_faces): Ditto.
14824 (compute_base_face): Ditto.
14825
14826 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14827 (struct display_info): Ditto.
14828 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14829 * xdisp.c (compute_cursor_face): Set it.
14830 (advance_display_cursor): Clear it.
14831
14832 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14833 (init_string_cursor): Init face_id to zero.
14834
14835 * dispextern.h (struct face): New member shadow_thickness.
14836
14837 * xdisp.c (compute_cursor_face): Set limit for text property
14838 search to 100.
14839
14840 * dispnew.c (update_window_line): Try to resynch with current line
14841 to prevent mode line flickering.
14842
14843 1997-10-26 Gerd Moellmann <gerd@acm.org>
14844
14845 * dispnew.c (set_window_cursor_after_update): React again
14846 on cursor_in_echo_area >= 0.
14847
14848 * xdisp.c (echo_area_display): Clear desired matrix before
14849 displaying into it.
14850 (display_menu_bar): Clear glyph row instead of hoping it is not
14851 enabled. This is safer.
14852
14853 * dispnew.c (check_current_matrix_invariants): Check only
14854 visible rows.
14855
14856 * xdisp.c (try_window_id): Handle window end setting in case of
14857 display to end of window, but only non-text lines displayed.
14858
14859 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14860 (check_current_matrix_invariants): Check used counts.
14861
14862 * Revisiob v114.
14863
14864 * dispnew.c (scrolling): Use hash codes from rows.
14865
14866 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14867
14868 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14869
14870 1997-10-25 Gerd Moellmann <gerd@acm.org>
14871
14872 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14873 * dispnew.c (update_window): Use it.
14874 (clear_glyph_matrix): Clear it.
14875 * xdisp.c (try_window_id): Set it.
14876
14877 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14878
14879 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14880
14881 * dispextern.h: More comments etc.
14882
14883 1997-10-24 Gerd Moellmann <gerd@acm.org>
14884
14885 * dispnew.c (set_window_cursor_after_update): Set cursor
14886 for cursor_in_echo_area == 0 to (0, 0).
14887
14888 * dispextern.h (struct glyph_row): New flags continuation_line_p
14889 and displays_text_p.
14890 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14891 * xdisp.c (display_line): Set them.
14892 (try_window_id): Move to start of continuation line to find out
14893 continuation_line_width.
14894 (first_unchanged_current_row): Don't retract row if continued,
14895 truncated etc.
14896
14897 * xterm.c: Map X coordinates.
14898
14899 1997-10-23 Gerd Moellmann <gerd@acm.org>
14900
14901 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14902 left text.
14903
14904 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14905
14906 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14907
14908 * xdisp.c (try_window_id): Clear desired matrix if not successul.
14909
14910 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14911
14912 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14913 Set this to functions to be called before/after window updates.
14914 (direct_output_for_insert): Call them.
14915 (update_window): Ditto.
14916 (update_frame): Call update_begin/ update_end for windows.
14917
14918 * xterm.c (XTupdate_window_begin): Called before window updates.
14919 (XTupdate_end): Called after window updates.
14920 (x_initialize): Set hooks to above.
14921
14922 * xdisp.c (init_display_info): Initialize c and len of
14923 display_info.
14924
14925 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14926 fonts more than once.
14927
14928 1997-10-22 Gerd Moellmann <gerd@acm.org>
14929
14930 * xdisp.c (display_line): Handle most common case of current_x <
14931 last_visible_x separately.
14932
14933 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14934
14935 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14936 so that face extending space doesn't compare equal to normal space
14937 with same face.
14938
14939 * xdisp.c (display_line): Make sure we have a position for
14940 a line end in an otherwise blank line if face is extended.
14941
14942 * dispnew.c (direct_output_for_insert): Increment row end position.
14943
14944 * window.c (Fpos_visible_in_window_p): Use old meaning of
14945 window_end_pos.
14946
14947 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14948
14949 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14950
14951 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14952 start and end positions in rows.
14953 (increment_glyph_row_buffer_positions): Stop adjusting at
14954 glyphs with positions <= 0.
14955
14956 * dispextern.h (struct glyph_pos): Structure desribing a text
14957 position including position in overlay.
14958 (struct glyph_row): Use it for start and end positions.
14959 (struct display_cursor): Use it.
14960 * xdisp.c: Use it.
14961 (display_line): Set row start and end positions.
14962
14963 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14964 assignment.
14965
14966 1997-10-21 Gerd Moellmann <gerd@acm.org>
14967
14968 * dispnew.c (update_window): Add scrolling_window again. It's
14969 necessary for scroll_step != 0.
14970
14971 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14972 scrolling.
14973
14974 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14975
14976 * xterm.c (XTupdate_end): Flush only for messages.
14977
14978 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14979 first_unchanged_row.
14980
14981 * xterm.c (XTupdate_end): Flush if miniwindow.
14982
14983 * dispnew.c (matrix_row_last_pos): New function.
14984 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
14985 Large comment moved to xdisp.c.
14986
14987 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14988 (skip_via_matrix): Check window_end_valid instead of
14989 display_completed.
14990
14991 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14992 (update_window): scrolling_window commented out. It has negative
14993 effect most of the time.
14994
14995 * xdisp.c (try_window_id): Correct parameters to
14996 scroll_glyph_matrix_range.
14997
14998 * xterm.c (XTupdate_end): XFlush commented out.
14999
15000 * window.h: Comments for window_end_pos/vpos.
15001
15002 * xdisp.c (skip_to): Assert current_buffer is the buffer
15003 of the window in which we are skipping.
15004
15005 * dispnew.c (update_window_line): Optimized clear_end_of_line.
15006
15007 * xterm.c (draw_glyphs): Bug fix. Return window relative X
15008 reached.
15009
15010 1997-10-20 Gerd Moellmann <gerd@acm.org>
15011
15012 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
15013 a face extending glyph.
15014
15015 * xdisp.c (try_window_id): Check if point will appear.
15016 (set_cursor_from_row): Set cursor position from a glyph row.
15017
15018 * dispnew.c (update_window_line): Write entire line if hash
15019 codes of lines differ.
15020
15021 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
15022 if glyph row has an infinite width glyph at its end.
15023
15024 * xdisp.c (last_unchanged_current_row): Respect partially visible
15025 lines when looking for the last row displaying text.
15026 (try_window_id): Handle partially visible lines better.
15027
15028 1997-10-19 Gerd Moellmann <gerd@acm.org>
15029
15030 * dispnew.c (update_window): Remove unused variable.
15031 (update_window_line): Simplified.
15032
15033 * xterm.c (x_get_char_font_and_encoding): Handle most common
15034 case at the beginning.
15035
15036 * xdisp.c (advance_display_cursor): Dispatch on method and
15037 order if statements by expected call frequency. Fixed unclosed
15038 comment.
15039
15040 * xdisp.c (try_window_id): New implementation.
15041
15042 * dispnew.c (increment_glyph_row_buffer_positions): Capture
15043 rows displaying a line end, only.
15044
15045 1997-10-18 Gerd Moellmann <gerd@acm.org>
15046
15047 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
15048
15049 1997-10-14 Gerd Moellmann <gerd@acm.org>
15050
15051 * xdisp.c (display_line): Mark empty lines not corresponding to
15052 text with position -1.
15053
15054 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
15055 not within window matrix bounds.
15056
15057 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
15058 (struct display_info): NGLYPHS_TO_IGNORE removed.
15059 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
15060 * term.c: Ditto.
15061 * xterm.c: Ditto.
15062
15063 * xdisp.c (init_display_cursor): Set it.
15064 (display_line): Use it to set W->REGION_SHOWING.
15065
15066 * xdisp.c (skip_via_matrix): Check for overlay arrow.
15067
15068 * region-cache.h: functino prototypes with PROTO.
15069
15070 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
15071
15072 * xdisp.c (skip_via_matrix): Check for rows that don't contain
15073 a position.
15074
15075 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
15076 rectangle based on minimum character bounds.
15077
15078 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
15079 glyph position calculations.
15080 (make_lispy_movement): Use buffer_posn_from_coords and window
15081 relative coordinates.
15082
15083 * xterm.c (construct_mouse_click): Remove #if 0 case.
15084
15085 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
15086 given row.
15087
15088 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
15089 date.
15090 (skip_to): Use it.
15091 (redisplay_window): Remove code skipping using current matrix.
15092
15093 1997-10-13 Gerd Moellmann <gerd@acm.org>
15094
15095 * xdisp.c (redisplay_window): Use available current matrix to
15096 skip faster when only point is moved withing the window.
15097
15098 * intervals.c: Include stdio.h.
15099 (find_interval): Trace to stderr to catch some nasty error
15100 that did not yet occur again with tracing.
15101 (set_point): Ditto.
15102
15103 * dispnew.c (shift_glyph_matrix): Experimental code for handling
15104 cursor positioning on partially visible lines.
15105 (set_window_cursor_after_update): Ditto.
15106
15107 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
15108
15109 * window.h (struct window): start_y removed.
15110
15111 * window.c (make_window): start_y removed.
15112 (replace_window): Ditto.
15113
15114 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
15115 descent values of the last line processed by skip_to.
15116 (redisplay_window): Use them.
15117 (skip_to): Set them.
15118
15119 * dispextern.h (struct display_cursor): New member METHOD.
15120
15121 * xdisp.c: Use function member METHOD.
15122
15123 * xdisp.c (set_next_stop_pos): Determine next position at which to
15124 check for face properties, invisible text properties, and overlays.
15125 (compute_cursor_face): Use it.
15126 (get_overlays_for_cursor): Ditto.
15127 (reseat_cursor): Ditto.
15128 (next_display_element): Ditto.
15129
15130 Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
15131
15132 * termhooks.h: Some hooks with prototypes.
15133
15134 * term.c: Some hooks with function prototypes.
15135
15136 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
15137 computing face if possible.
15138
15139 * xdisp.c (next_display_element): Use face from glyph from display
15140 table only if != 0.
15141
15142 * emacs.c: FreeBSD headers for profiling removed.
15143
15144 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
15145 display cursor, use DEC_POS instread.
15146
15147 * xfaces.c (load_font): Use x_load_font to load fonts so that
15148 all fonts are in the font table.
15149 (unload_font): Don't XFreeFont.
15150
15151 * dispnew.c (row_equal_p): Compare ascent, descent and visible
15152 row height.
15153
15154 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
15155 (x_erase_phys_cursor): Clear only visible part of row.
15156 (x_draw_bar_cursor): Set clipping.
15157 (x_draw_hollow_cursor): Ditto.
15158 (x_display_and_set_cursor): Remove clipping.
15159 (expose_window_tree): Take trunc border into account.
15160 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
15161 (expose_window): Use it.
15162
15163 * xdisp.c (display_string): Catch case that we are called with
15164 current_x already beyond max_x.
15165 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
15166 (init_display_info): Subtract vertical border glyph from
15167 last_visible_x.
15168
15169 * scroll.c (scrolling_window_1): Removed.
15170
15171 * dispnew.c (adjust_frame_glyphs): Split into two functions,
15172 based on redisplay method used.
15173 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
15174 based redisplay.
15175 (adjust_frame_glyphs_for_window_redisplay): Part for purely
15176 window based redisplay.
15177
15178 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
15179 on data structures.
15180
15181 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
15182 Handle own storage for purely window based redisplay.
15183 (allocate_matrices_for_frame_redisplay): Formerly part of
15184 allocate_matrices.
15185 (allocate_matrices_for_window_redisplay): Ditto.
15186
15187 * dispextern.h (struct glyph_matrix): window_top_y,
15188 window_height.
15189
15190 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
15191 and optimize some common cases of window changes.
15192
15193 * emacs.c (main): Remove own profiling code because 0.95 now
15194 has it in.
15195
15196 Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
15197
15198 * xterm.c (XTupdate_end): Draw horizontal border at right position.
15199 (expose_window): Draw vertical border.
15200 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
15201 don't do anything.
15202
15203 * xdisp.c (redisplay_internal): Set update_mode_line if paused
15204 for non full width windows only if not window redisplay.
15205
15206 * dispnew.c (update_window_tree): Or paused_p return of called
15207 functions.
15208
15209 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
15210 of window.
15211
15212 * window.c (Fset_window_configuration): adjust_glyphs being
15213 called twice.
15214 (Fset_window_configuration): Set frame garbaged if not all
15215 leaf windows reused.
15216
15217 1997-08-21 Gerd Moellmann <gerd@acm.org>
15218
15219 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
15220 that rows should really be cleared. Used for current matrices.
15221
15222 * dispnew.c (scrolling_window): Bug fix.
15223 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
15224
15225 * dispextern.h (struct run): Remove current_vpos.
15226
15227 * xterm.c (do_line_dance): Only one parameter.
15228
15229 * xdisp.c (display_line): Set continued_p.
15230
15231 * dispextern.h (struct glyph_row): New flag continued_p.
15232 Fix truncated_on_left_p and truncated_on_right_p to be bits.
15233 (struct glyph_row):
15234
15235 Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
15236
15237 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
15238 when calling skip_to for continued lines.
15239
15240 * dispnew.c (change_frame_size_1): Set frame garbaged.
15241
15242 * xterm.c (expose_window): Check enabled_p of rows.
15243
15244 * xdisp.c (redisplay_internal): Compare line heights before and
15245 now for redisplay optimization 2 (hit).
15246 (display_line): Set this_line_pixel_height.
15247
15248 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
15249 value.
15250 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
15251 (do_line_dance): Simplified and pixel corrected.
15252
15253 * dispnew.c (scrolling_window): Simplified.
15254
15255 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
15256
15257 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
15258 to mode line row->x.
15259
15260 Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
15261
15262 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
15263 override font of face.
15264 (draw_glyphs): Correct return value.
15265 (XTclear_end_of_line): Compare differently with output cursor
15266 position.
15267 (x_draw_hollow_cursor): 2 parameters, window and row.
15268
15269 * dispnew.c (update_window_line): If rows have different height
15270 or y, write entire line.
15271
15272 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
15273 of info struct.
15274
15275 * xfaces.c (Fset_face_attribute_internal): Don't call
15276 frame_update_line_height.
15277 (merge_faces): Don't use default font if new font has different
15278 size.
15279
15280 Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
15281
15282 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
15283 unknown. Some fonts have min_width zero.
15284 (draw_glyphs): Don't draw underlines to the end of the display
15285 line if face is merely extended to that point.
15286 (draw_glyphs): Don't assume background is filled if
15287 just_foreground_p but extending to end of line.
15288
15289 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
15290 for partially visible last lines.
15291 (x_clip_to_row): Ditto.
15292 (x_clip_to_row): Clip to display_height-1 if y + line_height >
15293 display_height since line_height is really a line distance.
15294 (x_display_and_set_cursor): If cursor on padding glyph, use
15295 min_bounds pixel width.
15296
15297 Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
15298
15299 * xterm.c (x_clip_to_row): Height value was 1 too large.
15300 (XTclear_end_of_line): Clip to display area.
15301
15302 * xfns.c (x_figure_window_sizes): Add trunc border width
15303 to frame pixel width.
15304
15305 * xdisp.c (next_display_element): Don't display overlay strings
15306 within invisible text.
15307 (skip_vertically_backward): Skip display lines.
15308
15309 Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
15310
15311 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
15312
15313 * xdisp.c (next_display_element): Next invisible
15314 text check position computed differently.
15315
15316 * dispextern.h (struct display_cursor): last_invisible_text_pos
15317 and display_ellipsis_for_invisible_p removed.
15318
15319 * xdisp.c (next_display_element): Set last_invisible_text_pos
15320 to the last position at which invisible text was found. Don't
15321 decrement cursor.pos for newlines and cr with ellipsis. Set
15322 dpvec for `...' due to invisible text directly.
15323 (redisplay_internal): Don't assert that cursor is at PT after
15324 skip_to. It may be in invisible text.
15325
15326 * keyboard.c (make_lispy_event): For mouse clicks, use
15327 x_y_to_hpos_vpos.
15328
15329 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
15330 next_overlay_pos is reached. Use limit cursor.pos + 100 when
15331 checking for invisible text.
15332
15333 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
15334
15335 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
15336
15337 * xfns.c (x_contour_region): Use pixel coordinates from window
15338 cursor instead of WINDOW_TO_FRAME_H/VPOS.
15339
15340 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
15341 Removed.
15342
15343 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
15344
15345 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
15346 pixel coordinates.
15347 (note_mouse_highlight): Use it.
15348
15349 * xdisp.c (echo_area_display): Ignore calls for terminal frames
15350 under a window system.
15351
15352 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
15353 necessary.
15354 (update_window_line): Add width of face padding glyph to
15355 displayed widths of rows.
15356
15357 * xterm.c (x_display_and_set_cursor): Set clipping after
15358 erasing cursor.
15359
15360 * window.c (Fset_window_configuration): Free only those
15361 window matrices not reused.
15362 (get_leaf_windows): Build vector of leaf windows.
15363 Corrupted archive restored from v77.
15364
15365 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
15366 like display_line does.
15367
15368 * xdisp.c (display_mode_line): Don't hscroll mode line.
15369
15370 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
15371 windows.
15372 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
15373 garbage between mode lines when splitting windows horiz.
15374
15375 * dispnew.c (direct_output_for_insert): Bug fix.
15376
15377 * dispextern.h (struct display_cursor): New member string_length.
15378
15379 * xdisp.c (next_display_element): Return padding spaces.
15380 (init_string_cursor): Take precision and field_width
15381 (display_string): Use string cursor, skip over invisible text.
15382
15383 Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
15384
15385 * xterm.c (x_clip_to_row): Clip to partially visible lines.
15386 (x_display_and_set_cursor): Call it.
15387 (draw_glyphs): Call it
15388 (draw_bitmap): Call it.
15389
15390 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
15391 (allocate_leaf_matrix): Return flags.
15392 (row_equal_p): Compare enabled_p.
15393
15394 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
15395 for type == -1.
15396
15397 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
15398 (draw_glyphs): Clip height one pixel taller.
15399
15400 * dispnew.c (direct_output_for_insert): Give up for hscrolled
15401 mini window.
15402
15403 * xdisp.c (display_line): Don't scroll mini prompt.
15404
15405 * xdisp.c (echo_area_display): Call update_single_window if
15406 possible.
15407
15408 * dispnew.c (update_window_line): Call scrolling_window.
15409 (scrolling_window): Work on enabled desired lines only.
15410 (update_single_window): Update a single window like update_frame
15411 does for all windows.
15412 (update_window, update_window_tree): Additional argument
15413 no_scrolling_p.
15414 (update_frame): Pass no_scrolling_p to update_window_tree.
15415 (update_window): Don't call scrolling_window if no_scrolling_p.
15416
15417 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
15418 Erase under hollow cursor.
15419 (x_display_and_set_cursor): Do nothing if cursor glyph row
15420 not enabled. Draw bar cursor 1 pixel smaller.
15421
15422 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
15423 since update will follow soon.
15424
15425 * xdisp.c (echo_area_display): Unitialized variable.
15426
15427 * xterm.c (draw_bitmap): Previously draw_truncation; draw
15428 overlay arrow bitmap.
15429
15430 * xdisp.c (display_line): For truncated lines, consider everything
15431 up to the final \n as part of the line for cursor positioning.
15432
15433 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15434 (x_after_update_window_line): Clear trunc marks.
15435
15436 * xterm.h (FRAME_X_TRUNC_WIDTH).
15437
15438 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
15439 of a window reserved for truncation mark.
15440
15441 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
15442
15443 * dispnew.c (update_window_line): Call after_update_windwo_line-
15444 hook.
15445
15446 * xdisp.c (display_line): Set overlay_arrow_p in row.
15447
15448 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15449
15450 * xterm.c (x_after_update_window_line): Draw truncation marks.
15451
15452 * xdisp.c (display_line): Insert truncation for lines with
15453 current_x > 0.
15454
15455 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15456 Correct y by 1.
15457 (x_display_cursor): Use default font width if width not
15458 known.
15459
15460 * xdisp.c (echo_area_display): Set row->y.
15461
15462 * dispnew.c (set_window_cursor_after_update): Don't assume
15463 all rows are enabled.
15464
15465 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15466 of cursor.pos.
15467 (skip_in_display_line_to): Check cursor.position after call to
15468 next_display_element.
15469
15470 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
15471 buffer position.
15472
15473 * xdisp.c (display_line): Set row->y here.
15474 (skip_in_display_line_to): Test for to_pos after all glyphs
15475 have been added to hpos so that hpos is at the end of all
15476 glyphs for to_pos.
15477 (start_display): Remove assertion.
15478
15479 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
15480 (update_window): Don't set row->y here.
15481
15482 * xdisp.c (next_display_element): Don't translate control chars
15483 from display table entries.
15484
15485 * dispnew.c (direct_output_for_insert): Set cursor before
15486 update end to prevent cursor flickering. Revert changes to
15487 setting cursor.endpos.
15488
15489 Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15490
15491 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15492 to PT because this prevents multi-byte characters from being
15493 recognized.
15494
15495 * xdisp.c (skip_to, display_line): Advance cursor at end of
15496 truncated line.
15497
15498 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15499 replaced by XRectangle.
15500
15501 * dispnew.c (scrolling_window): New method.
15502
15503 * xterm.c (do_line_dance): New implementation, new method.
15504
15505 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15506 visible part of line.
15507
15508 * dispnew.c (update_window_line): Fill inverse video lines
15509 with infinite width space.
15510 (update_window): Handle completely empty matrices.
15511 (set_window_cursor_after_update): Bug fix.
15512
15513 * xterm.c (draw_glyphs): Stop drawing at right window end.
15514
15515 * dispnew.c (update_window_line): Don't ignore spaces, don't
15516 fill with spaces.
15517
15518 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15519 the first glyph having width 0.
15520
15521 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
15522 a glyph that extends to the end of the line.
15523
15524 * xdisp.c (display_line): Insert one padding glyph
15525
15526 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15527 amount from info.current_x.
15528 (display_line): Ditto.
15529
15530 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15531 (change_frame_size_1): Correct cursor.x if frame gets too small.
15532 (update_window_line): Start at row->x.
15533
15534 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15535 in xdisp.c).
15536
15537 * xterm.c (set_output_cursor): Use window relative X/Y.
15538 (global): Use window relative output cursor x/y.
15539 (draw_glyphs): Remove y param. Pass window relative x/y.
15540
15541 * dispnew.c (update_window): Start rows at start_y.
15542 (update_window): Don't try scrolling because it wouldn't work
15543 with variable height lines, anyway.
15544
15545 * dispextern.h (struct glyph_row): Remove shift_left_by,
15546 add x.
15547
15548 * window.h: (struct window): New member start_y.
15549
15550 * window.c (replace_window): Initialize start_y.
15551 (make_window): Ditto.
15552
15553 Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15554
15555 * xterm.c (draw_glyphs): Clip rows that would paint over
15556 the mode line.
15557
15558 * dispnew.c (update_window): Take mode line border into
15559 account.
15560
15561 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
15562 of border around mode line.
15563
15564 * xterm.c (x_draw_row_borders): Bug fix.
15565 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15566 drawing functions.
15567
15568 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
15569 around modeline instead of inverting it.
15570
15571 * xterm.c (glyph_to_pixel_coords): Use current matrix.
15572
15573 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15574 window relative pixel coordinates as arguments.
15575
15576 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15577 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15578 COORDS mit new arguments.
15579
15580 Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15581
15582 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
15583 DISPLAY_LINE.
15584
15585 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15586 pixel coords.
15587 (make_lispy_movement): Same.
15588
15589 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15590 with new parameter meaning.
15591
15592 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15593 from canon units to pixels.
15594 (coordinates_in_window): Pixel based.
15595 (Fcoordinates_in_window_p): Convert result pixel values back
15596 to canonical units.
15597
15598 * window.h: phys_cursor_ascent + descent instead of height.
15599
15600 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
15601 chars with charset width 1.
15602
15603 * dispnew.c (direct_output_for_insert): Set updated_row.
15604
15605 Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15606
15607 * dispextern.h (struct glyph): Padding flag removed.
15608
15609 Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15610
15611 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15612
15613 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15614
15615 * dispnew.c (update_window_line): Use pixels.
15616
15617 * xdisp.c (compute_line_metrics): Correct pixel_width by
15618 shift_left_by.
15619
15620 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
15621 removed. Remove references to it everywhere. Reverse_p in
15622 glyph_row -> right_to_left_p. Change references to it.
15623
15624 Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15625
15626 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15627
15628 * xterm.c (XTinsert_glyphs): Implement it.
15629
15630 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15631 of a call from DIRECT_OUTPUT_FOR_INSERT.
15632
15633 * window.h (struct cursor_pos): Keeps both matrix positions
15634 and pixel positions.
15635 (struct window): Use it.
15636
15637 * dispnew.c (direct_output_for_insert): New version.
15638
15639 * xdisp.c (redisplay_internal): Don't do anything if it has
15640 already be done directly.
15641
15642 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15643 for any character.
15644
15645 Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15646
15647 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15648
15649 Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15650
15651 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15652 (struct glyph): ASCENT, DESCENT.
15653 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15654 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15655
15656 * xterm.c (XTget_display_info): Correct tab computation.
15657
15658 * term.c (get_display_info): Correct tab computation.
15659
15660 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15661 Renamed from CHAR_CURSOR.
15662
15663 Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15664
15665 * xdisp.c (display_text_line): Mostly pixel oriented.
15666
15667 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15668
15669 * term.c (append_intermediate_glyph): Generate padding glyphs.
15670
15671 * xdisp.c (display_text_line): More into final direction.
15672
15673 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15674 (XTget_char_info): Use tabs as multiples of spaces.
15675
15676 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15677 Use tabs as multiples of spaces.
15678
15679 * dispextern.h (struct char_info ): WHAT field.
15680
15681 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
15682 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
15683
15684 Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15685
15686 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15687 value.
15688 (init_char_info): Initialize with glyph row.
15689
15690 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15691
15692 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15693
15694 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15695 glyphs.
15696
15697 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15698 moved to xdisp.c.
15699
15700 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15701
15702 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15703 generation.
15704 (XTget_char_info): Ditto.
15705
15706 * term.c (get_char_info): Intermediate glyph generation.
15707 (append_intermediate_glyph): Ditto.
15708
15709 Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15710
15711 * dispnew.c (compute_char_cursor_face): Compute the face for a
15712 CHAR_CURSOR.
15713 (init_char_cursor): Initialize a CHAR_CURSOR.
15714 (get_char_and_advance): Get next character to display.
15715
15716 * dispextern.h (struct char_cursor): Cursor for iterating over
15717 display text of CURRENT_BUFFER.
15718
15719 Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15720
15721 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15722
15723 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15724 New member MAX_PIXEL_HEIGHT.
15725
15726 * xterm.c (x_per_char_metric): Get per character metrics.
15727 (XTget_char_info): More cases covered.
15728
15729 * term.c (get_char_and_info): Get next character and character
15730 display information.
15731 (get_char_info): Get character display information.
15732
15733 * dispextern.h: Character display information.
15734
15735 * xterm.c (x_get_char_font_and_encoding): Get font and
15736 encode character.
15737 (XTget_char_info): Get display information about a character.
15738
15739 Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15740
15741 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15742 zero if window is mini-window.
15743
15744 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15745 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15746
15747 * dispnew.c (assign_row): Assign row pixel height.
15748 (clear_glyph_row): Clear pixel height.
15749 (update_window): Use PIXEL_HEIGHT.
15750
15751 * xdisp.c (display_string): Set row pixel height temporarily.
15752 (display_text_line): Ditto.
15753
15754 * dispextern.h (GLYPH_PIXEL_WIDTH):
15755 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15756
15757 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
15758 line in default font.
15759 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15760 in default font.
15761 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15762
15763 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15764 in pixels.
15765
15766 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15767
15768 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
15769 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15770 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15771 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15772 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15773 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15774 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
15775 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15776 pixel values related to windows.
15777
15778 Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15779
15780 * xterm.c (XTflash): Flash last line of frame.
15781
15782 * dispextern.h (cursor_in_echo_area): Extern declaration.
15783
15784 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
15785 freezes stem from 16-bit functions.
15786
15787 * xterm.c (x_display_and_set_cursor): Don't display hollow
15788 cursor in mini windows.
15789
15790 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15791 (make_window): Ditto.
15792
15793 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15794 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15795 and X_DISPLAY_BAR_CURSOR.
15796 (x_display_cursor): Use it.
15797 (x_update_window_cursor): Use it.
15798
15799 * xdisp.c (display_text_line): Set cursor for window even if not
15800 selected.
15801
15802 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15803 of X and Y to denote matrix positions.
15804 (x_display_cursor): Ditto.
15805
15806 * dispnew.c (scrolling_window): Scrolling for windows.
15807
15808 Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15809
15810 * dispnew.c (build_frame_matrix): Work on windows with update
15811 flag set.
15812 (build_frame_matrix_from_window_tree): Ditto.
15813 (build_frame_matrix_from_leaf_window): Ditto.
15814
15815 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15816 building frame matrix.
15817 (redisplay_internal): Set window update flags instead of
15818 building frame matrix.
15819
15820 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15821 building frame matrix.
15822
15823 * window.c (make_window): Initialize new members.
15824 (replace_window): Ditto.
15825
15826 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15827 I don't believe this is really necessary.
15828
15829 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
15830 border glyph once.
15831
15832 Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15833
15834 * window.c (mark_window_cursors_off): Mark all cursors in
15835 window tree off.
15836
15837 * xterm.c (x_display_box_cursor): Window paraemter. Use
15838 window matrix.
15839 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15840 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15841 (x_update_cursor): Work on windows.
15842 (x_display_bar_cursor): Ditto.
15843 (x_draw_single_glyph): Ditto.
15844
15845 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15846
15847 * xterm.c (XTcursor_to): Void return type. Test for
15848 UPDATED_WINDOW. Call x_display_cursor with window.
15849 (x_display_cursor): Void return type. Window instead of frame
15850 parameter.
15851
15852 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
15853
15854 * window.c (window_rightmost_p, window_topmost_p): Based on
15855 window tree.
15856
15857 * dispnew.c (adjust_frame_message_buffer): Allocate with
15858 FRAME_MESSAGE_BUF_SIZE.
15859
15860 * window.h: PHYS_CURSOR_.* added.
15861
15862 * frame.h (struct frame): Cursor information removed.
15863
15864 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15865 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15866
15867 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15868
15869 * window.c (window_internal_width): Scroll bars no longer
15870 part of window.
15871
15872 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15873
15874 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15875
15876 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15877 (redisplay_internal): Ditto.
15878 (redisplay_window): Ditto.
15879 (redisplay_window): Ditto.
15880 (display_text_line): Ditto.
15881 (display_mode_line): Ditto.
15882
15883 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15884
15885 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15886 (direct_output_for_insert): Ditto.
15887 (direct_output_forward_char): Ditto.
15888 (update_frame_1): Ditto.
15889
15890 Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15891
15892 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
15893 being updated.
15894 (update_window): Set and clear it.
15895
15896 * dispnew.c (update_window_line, update_window, scrolling_window):
15897 First versions.
15898
15899 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15900 bar for window borders.
15901 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15902 with spaces.
15903 (fill_up_glyph_row_with_spaces): Call above function.
15904
15905 * xdisp.c (display_text_line): Don't add vertical bar for
15906 window borders.
15907 (display_string): Ditto.
15908
15909 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15910 (replace_window): Ditto.
15911
15912 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15913
15914 * xfns.c (Fx_contour_region): Use selected window cursor position.
15915 (Fx_uncontour_region): Ditto.
15916 (Fx_select_region): Ditto.
15917
15918 * frame.c (make_frame): Remove CURSOR_X/Y.
15919
15920 * xdisp.c (redisplay_internal): Use window cursor position.
15921
15922 * dispnew.c (update_frame_1): Use cursor position of selected
15923 window.
15924 (change_frame_size_1): Ditto.
15925
15926 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15927 (XTwrite_glyphs): Use cursor position of selected window.
15928
15929 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
15930
15931 * dispnew.c (set_cursor_to): Set window cursor position.
15932 (direct_output_for_insert): Use window cursor position.
15933 (init_display): Don't use frame cursor position.
15934
15935 * window.h: CURSOR_VPOS/HPOS added.
15936
15937 * frame.h (struct frame): CURSOR_X/Y removed.
15938 (FRAME_CURSOR_X): Removed.
15939 (FRAME_CURSOR_Y): Ditto.
15940
15941 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15942 (direct_output_forward_char): Ditto.
15943
15944 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
15945
15946 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15947
15948 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15949
15950 Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15951
15952 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15953 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15954
15955 * dispextern.h: Changed function names.
15956
15957 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15958 < 2.
15959 (clear_window_matrices): Formerly two functions for desired
15960 and current matrix.
15961 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15962 (update_frame): Return return value from UPDATE_FRAME_1.
15963
15964 Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15965
15966 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15967 LAST_TEXT_VPOS.
15968
15969 * frame.c (set_menu_bar_lines): Adjust matrices.
15970
15971 * dispnew.c (set_cursor_to): Set cursor position.
15972
15973 * minibuf.c (read_minibuf): Build frame matrix.
15974
15975 * xdisp.c (this_line_start_hpos): Renamed to
15976 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15977 relative.
15978 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15979 reason.
15980
15981 * dispnew.c (build_frame_matrix): Don't clear rows of the
15982 menu bar.
15983 (clear_window_records): Clear window rows.
15984 (clear_frame_records): Clear window and frame rows.
15985 (clear_glyph_matrix): Set all rows of a matrix to empty.
15986
15987 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15988 Update frame if set.
15989 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15990 removed.
15991 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15992 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15993
15994 * dispnew.c (assign_row): Assign one glyph row to another.
15995 (mirrored_make_current): Use it.
15996 (mirror_make_current): Use it.
15997 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15998 used counters for the current glyph row.
15999
16000
16001 Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
16002
16003 * lisp.h: Prototype for SCAN_BUFFER.
16004
16005 * xdisp.c (redisplay_windows): Simplified.
16006
16007 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
16008 with debug checks.
16009 (window_to_frame_hpos): Convert window to frame hpos with checks.
16010 (frame_to_window_vpos): Convert frame to window vpos with checks.
16011 (frame_to_window_hpos): Convert frame to window hpos with checks.
16012
16013 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
16014
16015 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
16016
16017 * xdisp.c (redisplay_internal): Another instance of
16018 DISPLAY_TEXT_LINE with window relative VPOS.
16019 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
16020
16021 * dispnew.c (init_desired_glyphs): Do it on window matrices,
16022 only.
16023
16024 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
16025 (redisplay_internal): Ditto.
16026
16027 * dispnew.c (cancel_window_line): Use window matrix. Changed
16028 name to CANCEL_WINDOW_LINE.
16029
16030 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
16031 relative VPOS.
16032
16033 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
16034 to frame vpos.
16035 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
16036 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
16037 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
16038
16039 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
16040 window relative VPOS.
16041 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
16042 relative VPOS.
16043
16044 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
16045 MATRIX_BUFFER_POSITIONS.
16046
16047 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
16048
16049 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
16050
16051 * dispnew.c (scroll_frame_lines): Make it work on window
16052 matrix. Change name to scroll_full_width_window.
16053
16054 * xdisp.c (message2_nolog): Don't fwrite NULL message If
16055 NONINTERACTIVE.
16056
16057 Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
16058
16059 * dispnew.c (init_desired_glyphs): Clear both frame matrix
16060 and window matrices.
16061 (adjust_window_charstarts): Use window matrix.
16062 (cancel_my_columns): Use window matrix.
16063 (direct_output_for_insert): Use window matrix, only.
16064
16065 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
16066 (display_string): Call display_glyphs.
16067 (display_menu_bar_string): Display a string in a menu bar line.
16068 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
16069 (display_text_line): Use window matrix.
16070 (try_window): Use window relative positions.
16071
16072 Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
16073
16074 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
16075 (0, 0).
16076 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
16077 top-most windows.
16078
16079 * window.h (WINDOW_TOPMOST_P): Added.
16080
16081 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
16082 (redisplay_window): Ditto.
16083 (display_text_line): Ditto.
16084 (display_menu_bar): Ditto.
16085 (display_mode_line): Ditto.
16086 (display_mode_line): Use window matrix.
16087 (display_string): Use window matrix.
16088 (display_mode_element): Ditto.
16089 (echo_area_display): Don't display if frame has no pools yet.
16090 (echo_area_display): Work with window matrix for mini window.
16091 (redisplay_window): Use window marix for mini window.
16092 (display_text_line): Assume HPOS and VPOS are window relative and
16093 use that for DISPLAY_STRING.
16094
16095 * dispextern.h: Prototype for prepare_desired_row.
16096
16097 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
16098
16099 * dispnew.c (adjust_window_charstarts): Always allocate window
16100 matrices.
16101 (clear_glyph_row): Only reset used counters and flags.
16102
16103 Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
16104
16105 * dispnew.c (scroll_frame_lines): Don't assume first scolled
16106 line is non-empty.
16107 (realloc_glyph_pool): Don't add 1 to the pool size.
16108 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
16109
16110 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
16111 (line_draw_cost): Ditto.
16112 (update_line): Ditto.
16113 (update_line): Use SPACE_GLYPH.
16114 (count_blanks): Additional parameter LEN.
16115
16116 * xdisp.c (display_text_line): Use SPACE_GLYPH.
16117 (display_text_line): Don't add null-glyph end marker.
16118 (display_string): Use SPACE_GLYPH.
16119 (display_string): Don't use null-glyph end marker.
16120
16121 * term.c (clear_end_of_line): Use SPACE_GLYPH.
16122
16123 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
16124 (fill_up_glyph_row_with_spaces): Ditto.
16125 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
16126 rows, instead of null-glyphs.
16127 (direct_output_for_insert): Don't add null-glyph end marker.
16128
16129 * scroll.c (do_direct_scrolling): Change algorithm to construct
16130 vector of lines assigned. Call MIRRORED_LINE_DANCE:
16131 (do_scrolling): Ditto.
16132
16133 * dispnew.c (mirror_line_dance): Mirror line assignments in a
16134 frame matrix in window matrices.
16135 (mirrored_line_dance): Do line assignments during scrolling.
16136 Maybe do corresponding assignments in window matrices.
16137 (check_window_matrix_pointers): Check that window rows and frame
16138 rows agree about glyph pointers.
16139 (check_matrix_pointers): Ditto.
16140 (mirrored_make_current): Make a row of a desired matrix current;
16141 maybe mirror the operation in window matrices.
16142 (mirror_make_current): Make window desired matrix row current when
16143 frame matrix row was made current.
16144
16145 Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
16146
16147 * dispnew.c (check_matrix_pointer_lossage): Check against
16148 pointer lossage in matrices.
16149 (get_glyph_matrix_row): Removed.
16150
16151 * scroll.c (do_scrolling): Simplified.
16152 (do_direct_scrolling): Simplified.
16153 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
16154 DO_.*SCROLLING.
16155
16156
16157 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
16158 (rotate_vector): Removed.
16159 (rotate_pointers): Removed.
16160 (scroll_frame_lines): Simplified.
16161
16162 Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
16163
16164 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
16165
16166 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
16167 what the name says.
16168 (clear_glyph_row): Make a glyph row structure empty.
16169 (make_matrix_row_current): Make a glyph row current.
16170 (make_window_matrix_row_current): Perform analogous row swaps
16171 for window matrices.
16172 (update_line): Call make_matrix_row_current.
16173
16174 Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
16175
16176 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
16177 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
16178 INVERSE_P.
16179 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
16180 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
16181
16182 * all files: use above new names.
16183
16184 * dispnew.c (scroll_frame_lines): Simplified. Use
16185 SCROLL_GLYPH_MATRIX.
16186 (make_glyph_row_empty): Mark a glyph row empty.
16187 (increment_glyph_row_buffer_positions): Increment
16188 buffer positions in a glyph row.
16189 (increment_glyph_matrix_buffer_positions): Increment buffer
16190 positions in a range of rows.
16191 (scroll_glyph_matrix): Scroll a glyph matrix.
16192 (swap_glyphs_in_rows): Swap glyphs between rows.
16193 (swap_glyph_pointers): Swap pointers between rows.
16194 (glyph_row_slice_p): Return 1 if one row is a slice of another.
16195 (init_display): Initialize SPACE_GLYPH.
16196 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
16197 spaces.
16198
16199 Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
16200
16201 * xterm.c (dumprectangle): Use vectors in glyph rows.
16202
16203 * xdisp.c (display_text_line): Use vectors in glyph rows.
16204 (display_string): Ditto.
16205
16206 * scroll.c (do_scrolling): Use vectors in glyph rows.
16207 (do_direct_scrolling): Ditto.
16208
16209 * alloc.c (mark_object): Use vectors in glyph rows.
16210 Mark for all frame types.
16211
16212 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
16213 glyph rows.
16214 (get_glyph_matrix_row): Ditto.
16215 (matrix_row): Ditto.
16216 (rotate_pointers): Ditto.
16217 (scroll_frame_lines): Ditto.
16218 (preserve_other_columns): Ditto.
16219 (cancel_my_columns): Ditto.
16220 (update_line): Ditto.
16221 (direct_output_for_insert): Ditto.
16222
16223 * dispextern.h (struct glyph_row): Use a vector of pointers
16224 instead of individual members. Use a vector of used counters.
16225 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
16226 (MATRIX_ROW_GLYPH_START): Ditto.
16227 (MATRIX_ROW_GLYPH_END): Ditto.
16228 (MATRIX_ROW_USED): Ditto.
16229 (MATRIX_ROW_SET_USED): Ditto.
16230
16231 * dispnew.c (line_hash_code): Simplified.
16232
16233 Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
16234
16235 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
16236 CHANGE_FRAME_SIZE_1
16237 (preserve_other_columns): Void return.
16238 (cancel_my_columns): Void return type.
16239 (scrolling): Int return type.
16240 (do_pending_window_change): Void return type.
16241 (change_frame_size): Ditto.
16242 (bitch_at_user): Ditto.
16243 (init_display): Ditto.
16244 (syms_of_display): Ditto.
16245
16246 * dispextern.h: add prototypes for REDRAW_FRAME,
16247 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
16248 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
16249 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
16250 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
16251 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
16252 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
16253 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
16254
16255 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
16256 void.
16257 (cancel_line): Return void.
16258 (clear_frame_records): Return void.
16259
16260 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
16261 (SET_CHAR_GLYPH): Fill a character glyph.
16262 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
16263 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
16264 glyph.
16265 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
16266 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
16267 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
16268 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
16269 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
16270 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
16271 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
16272 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
16273 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
16274
16275 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
16276
16277 * window.h (struct window): Add comment that no Lisp data may
16278 come below CURRENT_MATRIX.
16279
16280 * alloc.c (mark_object): Change window mark code to stop with
16281 member CURRENT_MATRIX.
16282
16283 Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
16284
16285 * scroll.c (do_scrolling): Change algorithm to use pointers.
16286 (do_direct_scrolling): Ditto.
16287
16288 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
16289 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
16290 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
16291 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
16292 Returns 1 if pool changed.
16293 (matrix_row): Additional check for lost pointers to glyph rows.
16294 (compute_matrices): Additional parameter DIM_P set means that no
16295 allocation should take place. Addtional parameter
16296 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
16297 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
16298 when window matrix changes. Additional parameter DIM_ONLY_P set
16299 to 1 to indicate that no allocation should take place.
16300 (adjust_frame_glyphs): Construct new glyph pools and glyph
16301 matrices. Optimize frame redraws.
16302 (free_glyphs): Free pools.
16303 (check_glyph_memory): Check pools not freed.
16304 (rotate_pointers): Rotate pointers in a vector of glyph rows.
16305 (scroll_frame_lines): Change algorithm to use pointers.
16306 (update_line): Ditto.
16307
16308 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
16309 (global): All macro names changed from prefix FRAME_MATRIX to
16310 MATRIX.
16311
16312 Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
16313
16314 * dispextern.h (struct glyph_pool): Replacement for former
16315 FRAME_GLYPH_MATRIX.
16316 (struct glyph_matrix): No longer contains sizes of allocated
16317 areas.
16318
16319 * xdisp.c (redisplay_internal): Don't redisplay if frame has
16320 no glyph pools.
16321
16322 * frame.c (make_frame): Initialize pools.
16323
16324 Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
16325
16326 * scroll.c (do_direct_scrolling): Don't assume that the
16327 line moving algorithm has no intermediate steps.
16328 (do_scrolling): Ditto.
16329
16330 * Makefile.in (alloc.o): Add dependency dispextern.h.
16331
16332 * alloc.c: Include dispextern.h for glyph definitions.
16333
16334 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
16335 is legal, return 0 otherwise.
16336
16337 * window.h: Add comment that windows are marked specially.
16338
16339 * alloc.c (mark_object): Mark windows specially.
16340
16341
16342 Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
16343
16344 * dispextern.h (struct glyph): Add member OBJECT
16345 referencing a Lisp object from which a glyph was drawn.
16346 Member TEXT_POSITION renamed POSITION.
16347 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
16348
16349 * alloc.c: Include dispextern.h
16350 (mark_object): Mark objects referenced from glyphs.
16351
16352 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
16353
16354 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
16355 (do_scrolling): Ditto.
16356
16357 * frame.h (struct frame): TEMP_MATRIX removed.
16358 DECODE_MODE_SPEC_BUFFER added.
16359
16360 * window.h: TEMP_MATRIX removed.
16361
16362 * scroll.c: OPHYS_LINES removed.
16363
16364 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
16365 FRAME_PTR -> struct frame *.
16366
16367 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
16368 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16369
16370 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
16371 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16372
16373 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
16374 (do_verify_charstarts): Removed.
16375
16376 * frame.c (Fmake_terminal_frame): Adjust glyphs.
16377 (Fdelete_frame): Free glyphs.
16378 (make_frame): Initialize matrix fields in frame.
16379
16380 * config.in (PROTO): Added.
16381
16382 * emacs.c (shut_down_emacs): Check glyph memory.
16383
16384 * window.c (Fdelete_window): Free window matrices.
16385 (Fset_window_configuration): Ditto.
16386 (Fdelete_window): Adjust glyphs.
16387 (Fsplit_window): Ditto.
16388 (change_window_height): Ditto.
16389 (Fset_window_configuration): Ditto.
16390 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
16391 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
16392
16393 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
16394
16395 * window.c: Include dispextern.h
16396
16397 * scroll.c (do_scrolling): Use new glyphs.
16398 (do_direct_scrolling): Ditto.
16399
16400 * xdisp.c: Some function prototypes.
16401 (redisplay_internal): Don't do anything if matrices not yet set.
16402 (redisplay_internal): Use new glyphs.
16403 (try_window_id): Ditto.
16404 (copy_part_of_rope): Ditto.
16405 (display_text_line): Ditto.
16406 (display_menu_bar): Ditto.
16407 (display_mode_line): Ditto.
16408 (display_string): Ditto.
16409
16410 * xterm.c: Prototypes for some local functions.
16411 (dumpglyphs): Use new glyphs.
16412 (XTwrite_glyphs): Ditto.
16413 (dumprectangle): Ditto.
16414 (note_mouse_highlight): Ditto.
16415 (fast_find_position): Ditto.
16416 (show_mouse_face): Ditto.
16417 (x_draw_single_glyph): Ditto.
16418 (x_display_bar_cursor): Ditto.
16419 (x_display_box_cursor): Ditto.
16420 (x_new_font): Adjust glyphs when font change.
16421
16422 * term.c (clear_end_of_line): Use new glyphs.
16423 (write_glyphs): Ditto.
16424 (insert_glyphs): Ditto.
16425
16426 * Makefile.in (term.o): term.c depends on dispextern.h
16427
16428 * term.c: Include dispextern.h
16429
16430 * dispnew.c (direct_output_forward_char): Old glyph functions
16431 removed, new inserted.
16432 (line_hash_code): Use new glyphs.
16433 (line_draw_cost): Ditto
16434 (cancel_line): Ditto
16435 (clear_frame_records): Ditto.
16436 (init_desired_glyphs): Ditto.
16437 (get_display_line): Ditto
16438 (scroll_frame_lines): Ditto.
16439 (preserve_other_columns): Ditto.
16440 (adjust_window_charstarts): Ditto.
16441 (cancel_my_columns): Ditto.
16442 (direct_output_for_insert): Ditto.
16443 (update_frame): Ditto.
16444 (quit_error_check): Made empty.
16445 (scrolling): Use new glyphs.
16446 (count_blanks): Ditto.
16447 (count_match): Ditto.
16448 (update_line): Ditto.
16449 (init_display): Adjust glyphs initially.
16450 (change_frame_size_1): Adjust glyphs.
16451
16452 * dispextern.h: Old glyphs removed, new added.
16453
16454 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16455
16456 * xterm.h: Prototype for min_char_bounds.
16457
16458 * window.h (struct window): Remove old glyphs, add new.
16459
16460 * frame.h (struct frame): Remove old glyphs, add new.
16461
16462 1999-07-20 Dave Love <fx@gnu.org>
16463
16464 * buffer.c (syms_of_buffer): Make
16465 default-enable-multibyte-characters a user variable.
16466
16467 1999-07-14 Richard Stallman <rms@gnu.org>
16468
16469 * Version 20.4 released.
16470
16471 1999-07-14 Richard Stallman <rms@gnu.org>
16472
16473 * filelock.c (lock_file): Do nothing if purifying.
16474
16475 1999-07-10 Richard Stallman <rms@gnu.org>
16476
16477 * xterm.c (x_display_bar_cursor): Use the cursor-color
16478 to display the bar, not the cursor foreground pixel.
16479
16480 1999-07-09 Andrew Innes <andrewi@gnu.org>
16481
16482 * w32console.c (w32_use_full_screen_buffer): New variable.
16483 (syms_of_ntterm): Register it.
16484 (initialize_w32_display): Set initial frame size accordingly,
16485 respecting the LINES and COLUMNS environment variables if set.
16486
16487 * w32inevt.c (w32_console_read_socket): Use it.
16488
16489 1999-07-07 Kenichi Handa <handa@etl.go.jp>
16490
16491 * callproc.c (Fcall_process): Decide coding system for decoding
16492 after we set to the target buffer. If the output goes to a
16493 unibyte buffer, suppress character code conversion.
16494
16495 * fileio.c (Finsert_file_contents): If reading into a unibyte
16496 buffer, suppress character code conversion.
16497
16498 * process.c (create_process): If the output goes to a unibyte
16499 buffer, suppress character code conversion.p
16500
16501 1999-07-07 Andreas Schwab <schwab@gnu.org>
16502
16503 * xdisp.c (line-number-display-limit): Doc fix.
16504
16505 1999-07-05 Richard Stallman <rms@gnu.org>
16506
16507 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16508 (Fcall_process_region): Likewise.
16509
16510 1999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16511
16512 * callproc.c (init_callproc): Set exec_directory if
16513 installation_directory is non-nil, without a test of exec_path.
16514
16515 1999-07-01 Andrew Innes <andrewi@gnu.org>
16516
16517 * w32xfns.c (drain_message_queue): New function.
16518
16519 * w32term.h (drain_message_queue): Add extern.
16520
16521 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16522 of WaitForMultipleObjects when user input is allowed, so we can
16523 handle incoming window messages. Call drain_message_queue when
16524 there are messages waiting; this ensures that windows created
16525 indirectly from the lisp thread get processed properly, and don't
16526 hang other applications by failing to respond to broadcasts.
16527
16528 1999-07-01 Andreas Schwab <schwab@gnu.org>
16529
16530 * callint.c (Fcall_interactively): Ignore first element of
16531 event-symbol-elements property.
16532
16533 1999-07-01 Richard Stallman <rms@gnu.org>
16534
16535 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16536
16537 1999-07-01 Kenichi Handa <handa@etl.go.jp>
16538
16539 * minibuf.c (read_minibuf): Set the multibyteness of the
16540 minibuffer before inserting `initial' string.
16541
16542 1999-06-30 Richard Stallman <rms@gnu.org>
16543
16544 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16545
16546 1999-06-29 Richard M. Stallman <rms@gnu.org>
16547
16548 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16549 Move the handling of MALLOC_CHECK_ envvar here.
16550 (main): Moved from here.
16551
16552 1999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16553
16554 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16555 function, assigned to the global __malloc_initialize_hook pointer.
16556 (main): Move malloc_set_state call into malloc_initialize_hook
16557 so that it happens as early as possible.
16558
16559 1999-06-27 Richard M. Stallman <rms@gnu.org>
16560
16561 * keyboard.c (read_key_sequence): Properly reinitialize
16562 fkey_map after translating thru Vkey_translation_map.
16563 After translating thru Vfunction_key_map, don't reset
16564 keytrans-start to 0.
16565
16566 1999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16567
16568 * w32.c (get_emacs_configuration): Use GetVersionEx to
16569 handle NT5.0 correctly. Include build number in configuration.
16570 w32heap.c (osinfo_cache): New variable.
16571 (cache_system_info): Initialize osinfo_cache.
16572 w32heap.h (osinfo_cache): Declare.
16573
16574 1999-06-24 Richard M. Stallman <rms@gnu.org>
16575
16576 * casefiddle.c (casify_object): Use make_multibyte_string
16577 if we casify a multibyte string.
16578
16579 1999-06-22 Ken'ichi Handa <handa@gnu.org>
16580
16581 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16582 del_range_byte instead of del_range_1, set `inserted' to the
16583 number of characters actually inserted.
16584
16585 1999-06-17 Dave Love <fx@gnu.org>
16586
16587 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16588
16589 1999-06-18 Paul Eggert <eggert@twinsun.com>
16590
16591 * filelock.c (BOOT_TIME_FILE): New macro.
16592 (get_boot_time): Use it instead of hardwiring the file name.
16593 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16594
16595 1999-06-17 Dave Love <fx@gnu.org>
16596
16597 * xdisp.c (invalid_eol_type): Make it unsigned.
16598
16599 1999-06-17 Karl Heuer <kwzh@gnu.org>
16600
16601 * process.c (send_process): Delete unsafe/redundant assignment.
16602
16603 1999-06-17 Jason Rumney <jasonr@gnu.org>
16604
16605 * w32term.c (dumprectangle): Handle wide characters properly.
16606
16607 1999-06-16 Andrew Innes <andrewi@gnu.org>
16608
16609 * s/ms-w32.h (strerror): Override the default implementation of
16610 strerror, so we can map winsock error codes.
16611
16612 * w32.c (sys_strerror): New function.
16613
16614 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16615
16616 1999-06-15 Ken'ichi Handa <handa@gnu.org>
16617
16618 * buffer.c (syms_of_buffer): Don't make
16619 enable-multibyte-characters customizable.
16620
16621 1999-06-15 Richard M. Stallman <rms@gnu.org>
16622
16623 * editfns.c (Fuser_full_name): Doc fix.
16624
16625 1999-06-14 Tak Ota <ota@atc.sel.sony.com>
16626
16627 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16628 (get_bitmap_with_cache): Check if CreateBitmap failed.
16629 Adjust cache size dynamically so cache is never larger than the
16630 system limit of GDI resources.
16631 Do cache clearing inline. Move global variables to local scope.
16632
16633
16634 1999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16635
16636 * unexsgi.c (unexec): Dump the .rodata section from memory
16637 under IRIX6.5 in order to be able to unexec with gcc.
16638
16639 1999-06-11 Greg Hudson <ghudson@MIT.EDU>
16640
16641 * indent.c (compute_motion): Fix boundary case.
16642
16643 1999-06-11 Jason Rumney <jasonr@altavista.net>
16644
16645 * w32term.c (cancel_mouse_face): New function. See equiv
16646 changes to xterm.c on 1996-10-31.
16647 (x_set_window_size): Use cancel_mouse_face.
16648 (w32_read_socket): Use cancel_mouse_face.
16649 Update frame position when size is restored.
16650
16651 1999-06-04 Richard M. Stallman <rms@gnu.org>
16652
16653 * lread.c (Vuser_init_file): New variable.
16654 (syms_of_lread): Set up Lisp variable.
16655 (Fload): Store the file name there, if var was t before.
16656
16657 1999-06-04 Paul Eggert <eggert@twinsun.com>
16658
16659 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16660 doesn't work if the system date is changed, or if the system
16661 is suspended. Look at the last-modified time of
16662 /var/run/random-seed instead.
16663
16664 1999-06-03 Ken'ichi Handa <handa@gnu.org>
16665
16666 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16667 japanese-jisx0208-1978 correctly.
16668
16669 1999-06-03 Andrew Innes <andrewi@gnu.org>
16670
16671 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16672 as possible to be dumped, for safety.
16673
16674 1999-06-02 Ken'ichi Handa <handa@gnu.org>
16675
16676 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16677 latin-jisx0201 correctly.
16678
16679 1999-05-26 Ken'ichi Handa <handa@gnu.org>
16680
16681 * charset.h (Vcharset_table): Comment fixed.
16682
16683 1999-05-24 Richard Stallman <rms@gnu.org>
16684
16685 * coding.c (syms_of_coding): Doc fix.
16686
16687 * buffer.c (syms_of_buffer): Doc fix.
16688
16689 * filelock.c (lock_if_free): After deleting a stale lock,
16690 try again to lock the file.
16691
16692 1999-05-22 Andrew Innes <andrewi@gnu.org>
16693
16694 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16695 console window size.
16696 (w32_console_read_socket): Call maybe_generate_resize_event
16697 whenever input events are received, since we don't get told when
16698 the window size changes (as opposed to the buffer size, which we
16699 don't care about).
16700
16701 * w32console.c (clear_frame): Remember that the window width might
16702 be smaller than the screen buffer width.
16703 (write_glyphs): Remove redundant variable attrs. Use
16704 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16705
16706 1999-05-20 Andrew Innes <andrewi@gnu.org>
16707
16708 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16709 loses focus.
16710
16711 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16712 frame loses focus, and that mouse button state is reset. Ditto
16713 when the menu bar is activated.
16714
16715 1999-05-18 Richard Stallman <rms@gnu.org>
16716
16717 * abbrev.c (Fdefine_abbrev): Doc fix.
16718
16719 1999-05-13 Paul Eggert <eggert@twinsun.com>
16720
16721 * filelock.c: Fix performance bug on hosts with large
16722 /var/adm/wtmp files with no boot records.
16723
16724 (boot_time_initialized): New var.
16725 (init_filelock): Initialize it.
16726 (get_boot_time): Use it, instead of nonzero boot_time,
16727 to test whether boot_time is initialized.
16728 Don't invoke utmp routines when dumping.
16729
16730 (get_boot_time): First, try to get the boot time from the
16731 current utmp file, as this can be much faster. Don't try to
16732 get the boot time from utmp and/or wtmp more than once.
16733
16734 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16735 New arg LATEST. All uses changed.
16736
16737 1999-05-15 Andrew Innes <andrewi@gnu.org>
16738
16739 * w32term.c (dumpglyphs): Use correct colours for drawing
16740 rectangles in place of missing fonts, and make them the right
16741 size.
16742
16743 1999-05-14 Dave Love <fx@gnu.org>
16744
16745 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16746 non-nil.
16747
16748 1999-05-11 Andrew Innes <andrewi@gnu.org>
16749
16750 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16751 definition.
16752 (w32_wnd_proc): Reinstall debugging output.
16753 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16754 (syms_of_w32fns): Reinstall new initializer for
16755 Vw32_phantom_key_code.
16756
16757 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16758 names for most non-European charsets, to cope with wildcards or
16759 missing spec dates.
16760 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16761 to avoid deadlock when activating the menu bar.
16762
16763 1999-05-10 Ken'ichi Handa <handa@gnu.org>
16764
16765 * search.c (boyer_moore): Get charset base value of `untranslated'
16766 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16767
16768 1999-05-10 Andreas Schwab <schwab@gnu.org>
16769
16770 * fileio.c (Fread_file_name): Correct handling of dollars in file
16771 names. Protect dollars in strings put on the file-name-history.
16772 Substitute homedir by `~' also in default_filename.
16773
16774 * xdisp.c (try_window_id): Fix computation of tab_offset when
16775 backing up over a character that is splitted across lines.
16776
16777 1999-05-08 Kenichi HANDA <handa@etl.go.jp>
16778
16779 * coding.c (code_convert_region): If eol format is inconsistent,
16780 change coding->symbol to the sibling coding system of Unix like
16781 eol format.
16782
16783 1999-05-09 Richard M. Stallman <rms@gnu.org>
16784
16785 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16786
16787 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16788
16789 1999-05-05 Andrew Innes <andrewi@gnu.org>
16790
16791 * w32fns.c (w32_strict_painting): New variable.
16792 (w32_wnd_proc): Use it to select repaint rules.
16793 (syms_of_w32fns): Defvar it.
16794
16795 1999-05-04 Andrew Innes <andrewi@gnu.org>
16796
16797 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16798 charsets to the standard Windows charset for Japanese.
16799
16800 1999-05-04 Ken'ichi Handa <handa@gnu.org>
16801
16802 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16803
16804 * ccl.h (struct ccl_program): New member stack_idx.
16805
16806 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16807 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16808 before returing.
16809 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16810
16811 1999-05-03 Jason Rumney <jasonr@altavista.net>
16812
16813 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16814
16815 1999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16816
16817 * dired.c (make_time): Make argument type be time_t.
16818
16819 1999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16820
16821 * msdos.c (unibyte_display_via_language_environment): Add extern.
16822
16823 1999-05-02 Richard M. Stallman <rms@gnu.org>
16824
16825 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16826 if unibyte_display_via_language_environment is set.
16827 (unibyte_display_via_language_environment):
16828 Variable moved from xfns.c and elsewhere.
16829 (syms_of_xfns): Set up Lisp var.
16830
16831 * xfns.c (unibyte_display_via_language_environment):
16832 Variable moved to xdisp.c.
16833 (syms_of_xfns): Don't set up Lisp var here.
16834
16835 * msdos.c (unibyte_display_via_language_environment):
16836 Variable moved to xdisp.c.
16837 (syms_of_msdos): Don't set up Lisp var here.
16838
16839 * w32fns.c (unibyte_display_via_language_environment):
16840 Variable moved to xdisp.c.
16841 (syms_of_w32fns): Don't set up Lisp var here.
16842
16843 1999-05-02 Andrew Innes <andrewi@gnu.org>
16844
16845 * s/ms-w32.h (HAVE_FSYNC): New macro.
16846 (fsync): Map to _commit.
16847 (ftruncate): Map to _chsize.
16848
16849 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16850 for ASCII, if enabled, to avoid memory allocation overhead for
16851 implicit Unicode conversion. Also, recognize that ASCII and
16852 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16853 already contains the Unicode characters in that case.
16854 (construct_drag_n_drop): Remove old code that was
16855 trashing the drop location.
16856
16857 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16858 nlines to encoding_buffer_size (real bug was in a ccl program in
16859 lisp/international/coding.el).
16860
16861 * w32reg.c (w32_get_string_resource): Check for name in current
16862 user area, and if not found look in the local machine area.
16863
16864 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16865 (Fw32_shell_execute): New function; used to support browse-url.
16866 (syms_of_w32fns): Register it.
16867 (w32_load_system_font): Force max width to be average
16868 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16869 slowdown.
16870 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16871 already defined.
16872 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16873
16874 * unexw32.c (get_section_info): Dump back the entire EMDATA
16875 section if we can put Emacs' initialized data in a separate
16876 section, otherwise use the my_begdata/my_edata method.
16877
16878 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16879
16880 * coding.c (decode_eol): Set produced/consumed values to zero if
16881 src_bytes is <= 0 on entry.
16882
16883 1999-05-02 Jason Rumney <jasonr@altavista.net>
16884
16885 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16886 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16887 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16888 field in frame.
16889 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16890 (dumprectangle): Take into account the width of a left-side
16891 scroll bar.
16892
16893 * w32proc.c (sys_kill): Attach to current foreground thread
16894 when grabbing focus; necessary on NT 5.0.
16895
16896 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16897 GetUpdateRect rather than BeginPaint.
16898 (w32_wnd_proc): Attach to current foreground thread
16899 when grabbing focus; necessary on NT 5.0.
16900 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16901 debugging display messages.
16902 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16903 false matching.
16904
16905 1999-05-02 Kenichi HANDA <handa@etl.go.jp>
16906
16907 * coding.c (setup_raw_text_coding_system): Call
16908 setup_coding_system to initialize the fields of struct
16909 coding_system correctly.
16910
16911 1999-04-26 Kenichi HANDA <handa@etl.go.jp>
16912
16913 * xterm.c (x_list_fonts): Fix previous change.
16914
16915 1999-04-26 Richard Stallman <rms@gnu.org>
16916
16917 * config.in (HAVE_LIBXP): Add #undef.
16918 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16919
16920 1999-04-12 Ken'ichi Handa <handa@gnu.org>
16921
16922 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16923 by them.
16924
16925 1999-04-12 Karl Heuer <kwzh@gnu.org>
16926
16927 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16928
16929 1999-04-11 Ken'ichi Handa <handa@gnu.org>
16930
16931 * fontset.c (Fset_fontset_font): Fix previous change.
16932
16933 1999-04-09 Ken'ichi Handa <handa@gnu.org>
16934
16935 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16936 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16937
16938 1999-04-08 Richard Stallman <rms@gnu.org>
16939
16940 * process.c (Faccept_process_output): Check validity of PROCESS.
16941
16942 1999-04-08 Eli Zaretskii <eliz@gnu.org>
16943
16944 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16945
16946 1999-04-07 Richard Stallman <rms@gnu.org>
16947
16948 * xfns.c (x_set_font): Fix error message.
16949
16950 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16951 (Fnew_fontset, Fset_fontset_font): Check for them here.
16952 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16953 Fix error message syntax.
16954
16955 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16956 from the base buffer.
16957 (Fset_buffer_multibyte): Copy new multibyte status
16958 into the buffer's indirect buffers.
16959
16960 1999-04-07 Ken'ichi Handa <handa@gnu.org>
16961
16962 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16963 tail.
16964
16965 1999-04-06 Richard Stallman <rms@gnu.org>
16966
16967 * dired.c (Ffile_attributes): Doc fix.
16968
16969 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16970 Convert 0200 to meta only in a unibyte string.
16971 (Fkey_description): Likewise.
16972
16973 * eval.c (do_autoload): Preserve match data.
16974
16975 1999-04-06 Kenichi HANDA <handa@etl.go.jp>
16976
16977 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16978 encode_coding to avoid carryover.
16979
16980 * coding.c: Add comments for decode_coding and encode_coding.
16981
16982 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16983 a composite character by skipping its leading code.
16984 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16985 correctly.
16986
16987 * coding.c: Add comments for decode_coding and encode_coding.
16988
16989 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16990 a composite character by skipping its leading code.
16991 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16992 correctly.
16993
16994 1999-04-06 Eli Zaretskii <eliz@gnu.org>
16995
16996 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16997 table was used.
16998 (jp_kbd_translate_table): Support C-\.
16999 (it_kbd_translate_table): Map `>' correctly.
17000 (it_keyboard): Add `>'.
17001
17002 1999-04-06 Richard Stallman <rms@gnu.org>
17003
17004 * intervals.c (graft_intervals_into_buffer): Turn off
17005 inhibit_modification_hooks around calling Fset_text_properties.
17006
17007 1999-04-05 Kenichi HANDA <handa@etl.go.jp>
17008
17009 * xterm.c (dumpglyphs): Be sure to fill the whole background of
17010 glyphs.
17011
17012 1999-04-05 Eli Zaretskii <eliz@gnu.org>
17013
17014 * msdos.c (jp_kbd_translate_table): Fix last change.
17015
17016 1999-04-04 Eli Zaretskii <eliz@gnu.org>
17017
17018 * msdos.c (struct kbd_translate): New struct, for key translation
17019 tables private to certain national keyboard layouts.
17020 (struct dos_keyboard_map): Add a pointer to a private translation
17021 table.
17022 (jp_kbd_translate_table): Private table for the Japanese
17023 keyboard.
17024 (jp_keyboard): Japanese keyboard layout.
17025 (it_kbd_translate_table): Private table for the Italian keyboard.
17026 (it_keyboard): Use it_kbd_translate_table.
17027 (keyboard_layout_list): Add the Japanese keyboard.
17028 (dos_rawgetc): Use the keyboard-private translation table, if
17029 available.
17030 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
17031
17032 1999-04-02 Kenichi HANDA <handa@etl.go.jp>
17033
17034 * xdisp.c (redisplay_window): When we call compute_motion with
17035 HPOS got from w->last_point_x, call it with DID_MOTION 1.
17036 (display_text_line): Stop the loop for processing overlay strings
17037 when we reach the right edge of the window.
17038
17039 1999-03-31 Richard M. Stallman <rms@gnu.org>
17040
17041 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
17042 let the data control whether string is unibyte.
17043
17044 1999-03-30 Richard M. Stallman <rms@gnu.org>
17045
17046 * macros.c (Fexecute_kbd_macro): Save real_this_command.
17047 (pop_kbd_macro): Restore the saved real_this_command.
17048 (Fcall_last_kbd_macro): Set real_this_command to the macro.
17049
17050 1999-03-26 Richard M. Stallman <rms@gnu.org>
17051
17052 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
17053 if buffer-file-name is nil.
17054
17055 1999-03-25 Jason Rumney <jasonr@altavista.net>
17056
17057 * w32select.c (Fw32_set_clipboard_data): Take into account line
17058 ends when calculating clipboard storage needed for non-ASCII text.
17059
17060 1999-03-25 Andrew Innes <andrewi@gnu.org>
17061
17062 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
17063 (epaths.h): Renamed from paths.h.
17064 (clean):
17065 ($(BLD)\filelock.obj):
17066 ($(BLD)\lread.obj):
17067 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
17068
17069 1999-03-23 Ken'ichi Handa <handa@gnu.org>
17070
17071 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
17072 ENCODE_ISO_CHARACTER for the previous change on this macro.
17073
17074 1999-03-23 Kenichi Handa <handa@etl.go.jp>
17075
17076 * xdisp.c (decode_mode_spec_coding): Handle integer value in
17077 eoltype correctly for backward compatibility.
17078
17079 1999-03-20 Kenichi HANDA <handa@etl.go.jp>
17080
17081 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
17082 invalid, produce the buffer internal byte sequence without encoding.
17083
17084 1999-03-19 Karl Heuer <kwzh@gnu.org>
17085
17086 * editfns.c (Fformat): Accept %i format.
17087
17088 1999-03-17 Karl Heuer <kwzh@gnu.org>
17089
17090 * filelock.c (get_boot_time): Test tempname, not filename.
17091
17092 1999-03-17 Jason Rumney <jasonr@altavista.net>
17093
17094 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
17095 speed display.
17096
17097 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
17098 speed display.
17099 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
17100 New functions.
17101 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
17102 Use bitmap cache.
17103
17104 * w32fns.c (enum_font_cb2): Set the font height to be the
17105 character height, not the cell height.
17106 (Fw32_select_font): Initialize font dialog with current default font.
17107 (Vw32_system_coding_system): New variable.
17108 (w32_strict_filenames): Add comment.
17109 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
17110 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
17111 (syms_of_w32fns): Add w32-system-coding-system.
17112
17113 1999-03-15 Richard M. Stallman <rms@gnu.org>
17114
17115 * xterm.c (XTread_socket) <ConfigureNotify>:
17116 If cursor pos is outside the new frame size, mark cursor as off.
17117
17118 1999-03-14 Ken'ichi Handa <handa@gnu.org>
17119
17120 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
17121
17122 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
17123 by them.
17124
17125 1999-03-14 Richard M. Stallman <rms@gnu.org>
17126
17127 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
17128 at beginning.
17129
17130 1999-03-14 Jason Rumney <jasonr@altavista.net>
17131
17132 * w32fns.c (w32_strict_fontnames): New variable.
17133 (Fx_create_frame): Formatting fix.
17134 (w32_load_system_font): Keep trying to load non-existant font
17135 if w32_strict_fontnames is nil. Formatting fix.
17136 (syms_of_w32fns): Add w32-strict-fontnames.
17137
17138 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
17139 (dumpglyphs): Formatting fixes.
17140
17141 1999-03-14 Geoff Voelker <voelker@cs.washington.edu>
17142
17143 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
17144
17145 1999-03-10 Karl Heuer <kwzh@gnu.org>
17146
17147 * puresize.h (BASE_PURESIZE): Increase to 505000.
17148
17149 1999-03-09 Richard M. Stallman <rms@gnu.org>
17150
17151 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
17152
17153 * filelock.c (init_filelock): New function.
17154
17155 1999-03-09 Dave Love <fx@gnu.org>
17156
17157 * fileio.c (Ffile_directory_p): Doc fix.
17158
17159 1999-03-05 Richard M. Stallman <rms@gnu.org>
17160
17161 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
17162
17163 1999-03-08 Richard M. Stallman <rms@gnu.org>
17164
17165 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
17166 to only the part that uses get_boot_time_1.
17167
17168 1999-03-07 Dave Love <fx@gnu.org>
17169
17170 * fileio.c (Finsert_file_contents): Use xfree.
17171
17172 1999-03-06 Kenichi Handa <handa@etl.go.jp>
17173
17174 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
17175 term.o, xselect.o): Depend on ccl.h.
17176
17177 1999-03-05 Geoff Voelker <voelker@cs.washington.edu>
17178
17179 * makefile.nt: Remove common multiple file compilation commands.
17180
17181 1999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
17182
17183 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
17184 newlines added when the arg NO-LINE-BREAK is nil.
17185
17186 1999-03-04 Karl Heuer <kwzh@gnu.org>
17187
17188 * search.c (Fstring_match, Fposix_string_match): Doc fix.
17189
17190 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
17191
17192 1999-03-04 Dave Love <fx@gnu.org>
17193
17194 * term.c (term_init): Use xmalloc, not malloc.
17195
17196 * callproc.c (Fcall_process): Use xmalloc, xfree.
17197
17198 1999-03-03 Andreas Schwab <schwab@gnu.org>
17199
17200 * eval.c (Fdefconst): Doc fix.
17201
17202 1999-03-01 Kenichi Handa <handa@etl.go.jp>
17203
17204 * coding.c: Comment for ISO 2022 encoding mechanism modified.
17205
17206 1999-03-01 Eli Zaretskii <eliz@gnu.org>
17207
17208 * w16select.c (get_clipboard_data): Always stop at the first null byte.
17209
17210 1999-02-28 Richard M. Stallman <rms@gnu.org>
17211
17212 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
17213
17214 * cmds.c (internal_self_insert): Calculate column properly
17215 in overwrite-of-tab case.
17216
17217 1999-02-27 Andreas Schwab <schwab@gnu.org>
17218
17219 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
17220 malloc in glibc 2.1.
17221
17222 1999-02-26 Richard Stallman <rms@gnu.org>
17223
17224 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
17225
17226 * epaths.in: Renamed from paths.in.
17227 This avoids a conflict with a system header file paths.h on GNU/Linux.
17228
17229 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
17230 Use epaths.h istead of paths.h.
17231
17232 1999-02-26 Andreas Schwab <schwab@gnu.org>
17233
17234 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
17235 malloc.
17236
17237 1999-02-25 Dave Love <fx@gnu.org>
17238
17239 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
17240
17241 1999-02-25 Richard Stallman <rms@gnu.org>
17242
17243 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
17244 (WTMP_FILE): Default definition in case not defined.
17245 (get_boot_time_1): Test that file exists before trying to read it.
17246
17247 1999-02-25 Ken'ichi Handa <handa@gnu.org>
17248
17249 * keymap.c (push_key_description): If enable-multibyte-characters
17250 is nil and C is single byte, push C as is.
17251
17252 1999-02-24 Kenichi Handa <handa@etl.go.jp>
17253
17254 * keymap.c (push_key_description): If enable-multibyte-characters
17255 is non-nil, try to convert unibyte character to multibyte. For
17256 invalid multibyte character, show all bits by octal form.
17257 (Fsingle_key_description): Check the validity of charset for a
17258 generic character.
17259
17260 1999-02-23 Richard M. Stallman <rms@gnu.org>
17261
17262 * fileio.c (Ffile_regular_p): Undo previous change.
17263
17264 * eval.c (Fdefconst): Doc fix.
17265
17266 * filelock.c (get_boot_time): Don't use BUFSIZ.
17267
17268 1999-02-22 Andrew Innes <andrewi@gnu.org>
17269
17270 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
17271 (EXTRA_LINK): Do version test with strings.
17272
17273 1999-02-22 Andreas Schwab <schwab@gnu.org>
17274
17275 * fns.c (Fbase64_encode_string): Fix last change.
17276
17277 * termhooks.h (event_kind): Add user_signal.
17278
17279 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
17280 (syms_of_keyboard): Initialize them.
17281 (lispy_user_signals): New variable.
17282 (make_lispy_event): Handle user_signal event type.
17283
17284 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
17285 (syms_of_emacs): Don't initialize them.
17286 (handle_USR1_signal, handle_USR2_signal): Set event type to
17287 user_signal instead of non_ascii_keystroke, and use plain integers
17288 as code instead of Lisp symbols.
17289
17290 1999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
17291
17292 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
17293
17294 1999-02-21 Richard Stallman <rms@gnu.org>
17295
17296 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
17297
17298 * print.c (print_error_message): Don't crash if (cdr data)
17299 is not a list.
17300
17301 1999-02-21 Eli Zaretskii <eliz@gnu.org>
17302
17303 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
17304
17305 1999-02-20 Andrew Innes <andrewi@gnu.org>
17306
17307 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
17308 run, since size can vary from run to run.
17309
17310 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
17311 data is included, to enable profiling.
17312 ($(EMACS)): Map file not needed for emacs.exe.
17313
17314 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
17315 as malloc before calling uninterrupt_malloc, for consistency.
17316 This also enables profiling to work on WINDOWSNT.
17317
17318 1999-02-18 Richard Stallman <rms@gnu.org>
17319
17320 * Makefile.in (emacs.o): Depend on termhooks.h.
17321 (filelock.o): Depend on systime.h.
17322
17323 1999-02-18 Ken'ichi Handa <handa@gnu.org>
17324
17325 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
17326 (Fdecode_big5_char): Likewise.
17327
17328 1999-02-17 Richard Stallman <rms@gnu.org>
17329
17330 * insdel.c (adjust_markers_for_replace): When doing an insertion
17331 (replacing a region of zero length), handle markers at the
17332 insertion point properly.
17333
17334 1999-02-17 Andrew Innes <andrewi@gnu.org>
17335
17336 * w32fns.c (Vw32_quit_key): New variable.
17337 (post_character_message): Use it.
17338 (syms_of_w32fns): DEFVAR it.
17339
17340 1999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
17341
17342 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
17343
17344 1999-02-16 Richard Stallman <rms@gnu.org>
17345
17346 * filelock.c (within_one_second): New function.
17347 (current_lock_owner): Use that.
17348 (get_boot_time): Use /proc/uptime if available.
17349 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
17350 (get_boot_time_1): New subroutine taken from get_boot_time.
17351
17352 1999-02-16 Richard Stallman <rms@gnu.org>
17353
17354 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17355 (syms_of_emacs): Init and staticpro them.
17356 (handle_USR1_signal): Don't run any code, just queue up an event.
17357 (handle_USR2_signal): Likewise.
17358
17359 1999-02-16 Eli Zaretskii <eliz@gnu.org>
17360
17361 * dired.c (Ffile_attributes): If the file's size doesn't fit in
17362 an integer, return it as a float. Doc string fixed.
17363
17364 1999-02-16 Richard Stallman <rms@gnu.org>
17365
17366 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17367 (syms_of_emacs): Init and staticpro them.
17368 (handle_USR1_signal): Don't run any code, just queue up an event.
17369 (handle_USR2_signal): Likewise.
17370
17371 1999-02-15 Kenichi Handa <handa@etl.go.jp>
17372
17373 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
17374 ASCII correctly. Signal error on invalid characters.
17375 (Fdecode_big5_char, Fencode_big5_char): Likewise.
17376
17377 1999-02-15 Eli Zaretskii <eliz@gnu.org>
17378
17379 * w16select.c (get_clipboard_data): Work around a bug in Windows95
17380 DOS box which doubles the reported size of text in the clipboard.
17381
17382 1999-02-15 Kenichi Handa <handa@etl.go.jp>
17383
17384 * coding.c (decode_coding_iso2022): Don't set
17385 coding->composed_chars to 0 here.
17386 (setup_coding_system): Set coding->composed_chars to 0 here.
17387
17388 1999-02-10 Richard Stallman <rms@gnu.org>
17389
17390 * fileio.c (Ffile_regular_p): Use lstat.
17391
17392 1999-02-09 Richard Stallman <rms@gnu.org>
17393
17394 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
17395 (unexec): Test this instead of specific systems.
17396
17397 * m/macppc.h: New file.
17398
17399 1999-02-08 Dave Love <fx@gnu.org>
17400
17401 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
17402
17403 1999-02-08 Ken'ichi Handa <handa@gnu.org>
17404
17405 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
17406 should be set to coding->produced.
17407
17408 1999-02-07 Paul Fisher <rao@gnu.org>
17409
17410 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
17411 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
17412
17413 1999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
17414
17415 * editfns.c (Fformat): Doc fix.
17416
17417 1999-02-06 Richard Stallman <rms@gnu.org>
17418
17419 * process.c (syms_of_process): defsubr it.
17420 (Fprocess_running_child_p): New function.
17421
17422 1999-02-05 Andrew Innes <andrewi@gnu.org>
17423
17424 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17425 recording drop position.
17426
17427 1999-02-05 Ken'ichi Handa <handa@gnu.org>
17428
17429 * coding.c (encode_coding_iso2022): Before writing out an invalid
17430 code, reset graphic planes and registers if necessary.
17431
17432 * term.c (encode_terminal_code): Fix previous change.
17433
17434 1999-02-04 Eli Zaretskii <eliz@gnu.org>
17435
17436 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17437 static variables.
17438 (set_clipboard_data): Save a copy of the text we put into
17439 clipboard in last_clipboard_text.
17440 (get_clipboard_data): If the clipboard text is identical to what
17441 last_clipboard_text holds, pretend there's no data in the clipboard.
17442
17443 1999-02-03 Richard Stallman <rms@gnu.org>
17444
17445 * s/gnu.h (NLIST_STRUCT): Add #undef.
17446
17447 1999-02-03 Eli Zaretskii <eliz@gnu.org>
17448
17449 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17450 encoded, set its pointer and size as returned by encode_coding.
17451
17452 1999-02-02 Ken'ichi Handa <handa@gnu.org>
17453
17454 * fns.c (Fset_char_table_default): To handle the case that CH is
17455 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17456
17457 1999-02-02 Andrew Innes <andrewi@gnu.org>
17458
17459 * w32fns.c (syms_of_w32fns): Change default value of
17460 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17461 some mice works properly.
17462
17463 1999-02-02 Eli Zaretskii <eliz@gnu.org>
17464
17465 * w16select.c (set_clipboard_data): Correctly null-terminate the
17466 string to be put into the Windows clipboard. Use xbuf_addr.
17467
17468 1999-02-01 Richard Stallman <rms@gnu.org>
17469
17470 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17471
17472 1999-01-31 Richard Stallman <rms@gnu.org>
17473
17474 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17475 then don't send the signal if the shell owns the terminal.
17476 (Finterrupt_process): Doc change.
17477
17478 1999-01-31 Andrew Innes <andrewi@gnu.org>
17479
17480 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17481 (copy_executable_and_dump_data): Use it to ensure alignment slop
17482 is zeroed.
17483
17484 1999-01-30 Andrew Innes <andrewi@gnu.org>
17485
17486 * w32.c (init_environment): Change argv[0] to contain the full
17487 path to Emacs.
17488
17489 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17490
17491 1999-01-29 Ken'ichi Handa <handa@gnu.org>
17492
17493 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17494 returned by x_new_font (the resolved one) but use the font name
17495 set in the fontset specification.
17496 (x_load_font): For the height of font, if normarl ascent and
17497 descent value are larger than those in max_bounds field, use the
17498 former.
17499
17500 1999-01-28 Eli Zaretskii <eliz@gnu.org>
17501
17502 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17503
17504 1999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17505
17506 * makefile.nt: Use full path to temacs.exe when dumping.
17507
17508 1999-01-27 Jason Rumney <jasonr@altavista.net>
17509
17510 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17511 list was reliable.
17512 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17513 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17514 (w32_list_synthesized_fonts): New function.
17515 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17516 available instead of EnumFontFamilies. List synthesized fonts if
17517 Vw32_enable_italics is non-nil.
17518
17519 1999-01-27 Richard Stallman <rms@gnu.org>
17520
17521 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17522 Don't complain if ttcompat does not exist.
17523
17524 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17525
17526 1999-01-27 Andrew Innes <andrewi@gnu.org>
17527
17528 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17529 the lwindow, rwindow and apps keys could not be used as function
17530 keys, because they were being passed to TranslateMessage which
17531 ignores them. Also, key was being changed to SPC.
17532
17533 * makefile.nt: Do make version comparison as strings.
17534
17535 1999-01-27 Eli Zaretskii <eliz@gnu.org>
17536
17537 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17538 strings, not characters.
17539
17540 * coding.h: Likewise.
17541
17542 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17543 string.
17544
17545 1999-01-26 Dave Love <fx@gnu.org>
17546
17547 * emacs.c (main): Up-date copyright.
17548
17549 1999-01-25 Dave Love <fx@gnu.org>
17550
17551 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17552
17553 1999-01-25 Andreas Schwab <schwab@gnu.org>
17554
17555 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17556
17557 1999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17558
17559 * xfns.c (x_set_frame_parameters): gcpro as needed.
17560
17561 * window.c (Fset_window_point): If WINDOW is selected but the
17562 current buffer is not its buffer, don't use Fgoto_char.
17563
17564 1999-01-22 Richard M. Stallman <rms@gnu.org>
17565
17566 * syntax.c (scan_sexps_forward): Delete duplicate code
17567 to set prev_from_syntax, above start of main loop.
17568 At startinstring, check syntax when checking for a match.
17569
17570 1999-01-22 Jason Rumney <jasonr@altavista.net>
17571
17572 * w32bdf.c: New file.
17573 * w32bdf.h: New file.
17574 * makefile.nt: Add w32bdf.c and w32bdf.h.
17575
17576 * w32gui.h: Include w32bdf.h.
17577 (W32FontStruct) Add bdf element.
17578
17579 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17580 Support BDF fonts.
17581
17582 * w32term.c (W32_TEXTOUT): New macro.
17583 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17584 Simplify baseline calculation. Detect SJIS by font, not glyph.
17585 Call SetTextAlign.
17586 (syms_of_w32term): Remove "jisx0212-sjis" from
17587 w32-charset-to-codepage-alist.
17588 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17589 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
17590
17591 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17592 (x_destroy_bitmap): Returns void not int.
17593 (x_set_border_pixel): Returns void.
17594 (w32_load_bdf_font): New function.
17595 (w32_load_system_font): New function, was w32_load_font. List
17596 fonts before loading. Explicitly set encoding for SJIS fonts.
17597 Set default_ascent to 0 as comment indicates.
17598 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17599 (w32_unload_font): Support BDF fonts.
17600 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17601 Autodetect whether to use koi8-r instead of iso8859-5.
17602 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17603 Associate "ksc5601.1992" with JOHAB_CHARSET.
17604 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17605 (w32_to_x_font): Add resolution.
17606 (x_to_w32_font): Use font resolution to calculate height if supplied.
17607 (w32_font_match): Handle wildcards anywhere within field.
17608 (enumfont_t): Remove unused head pointer.
17609 (enum_font_cb2): Dereference elfLogFont.
17610 (w32_list_bdf_fonts): New function.
17611 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17612 valid frame. Remove MessageBox. Support BDF fonts.
17613 (Fw32_find_bdf_fonts): New function.
17614 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17615 Sw32_find_bdf_fonts.
17616
17617 1999-01-21 Andrew Innes <andrewi@gnu.org>
17618
17619 * makefile.nt (temacs): Use del to delete file, not rm.
17620
17621 1999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17622
17623 * keyboard.c (read_key_sequence): Fix previous change.
17624
17625 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17626 as the same. Treat "myname:0" as the same as those two.
17627
17628 1999-01-19 Jason Rumney <jasonr@altavista.net>
17629
17630 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17631 (w32_to_x_charset): Fix charset mappings.
17632
17633 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17634 (dumpglyphs): Move definitions out of block containing goto.
17635 Remove redundant code for BIG5.
17636 Use w32_codepage_for_font instead of
17637 w32_codepage_for_charset. Add cast to int where float
17638 operation is assigned to int.
17639 (Vw32_charset_to_codepage_alist): New variable.
17640 (w32_codepage_for_charset): Removed.
17641 (w32_codepage_for_font): New function, replacing
17642 w32_codepage_for_charset.
17643 (syms_of_w32term): Add and initialize
17644 w32-charset-to-codepage-alist.
17645
17646 1999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17647
17648 * xselect.c (x_handle_selection_clear): Don't clear the
17649 selection if Emacs still owns it through a different display.
17650
17651 1999-01-17 Andrew Innes <andrewi@gnu.org>
17652
17653 * w32proc.c: (w32_executable_type): Relax the check to identify
17654 cygwin-compiled applications, because the exact dll name varies
17655 with release. Now only require the name to start "cygwin".
17656
17657 * w32heap.h: (ROUND_UP):
17658 (ROUND_DOWN): New macros.
17659 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17660 (init_heap): New extern.
17661 (data_region_size):
17662 (recreate_heap):
17663 (read_in_bss):
17664 (map_in_heap):
17665 (round_to_next):
17666 (w32_fatal_reload_error):
17667 (get_section_size): Obsolete externs removed.
17668
17669 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17670 current process.
17671 (round_to_next): Obsolete function removed.
17672 (preload_heap_section): New variable.
17673 (data_region_size): Obsolete variable removed.
17674 (allocate_heap): Modified to determine end of static heap section
17675 used during preload, and use that as initial base address for
17676 dynamic heap instead of hard-coded value.
17677 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17678 calls to commit or decommit pages when allocating from static heap
17679 section during preload.
17680 (recreate_heap): Obsolete function removed.
17681 (init_heap): New function to initialize internal sbrk heap
17682 variables. Uses static heap section during preload, otherwise
17683 calls allocate_heap to reserve a heap region dynamically.
17684 (round_heap): Use ROUND_UP macro instead of round_to_next.
17685
17686 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17687 static "bss" section is used for heap space during preload, and
17688 bss data is now written to the proper section area when dumping.
17689 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17690 (heap_index_in_executable): Obsolete variable removed.
17691 (data_section): New variable.
17692 (data_start_va): Renamed to data_start.
17693 (data_start_file): Obsolete variable removed.
17694 (bss_section):
17695 (extra_bss_size):
17696 (bss_section_static):
17697 (bss_start_static):
17698 (bss_size_static):
17699 (extra_bss_size_static):
17700 (heap_section): New variables.
17701 (_start): Remove code based on old unexec method. Call init_heap
17702 to initialize sbrk heap.
17703 (close_file_data): Update size of file when closing, so that
17704 unexec doesn't have to work out exact size in advance.
17705 (get_bss_info_from_map_file):
17706 (get_section_size): Obsolete functions removed.
17707 (rva_to_section): Fix minor bug, and add a work-around for a bug
17708 in very old linkers.
17709 (offset_to_section):
17710 (relocate_offset): New functions.
17711 (OFFSET_TO_RVA):
17712 (RVA_TO_OFFSET):
17713 (RVA_TO_SECTION_OFFSET):
17714 (PTR_TO_RVA):
17715 (PTR_TO_OFFSET):
17716 (OFFSET_TO_PTR): New macros.
17717 (get_section_info): Modify to support new unexec method;
17718 determines address ranges in process that need dumping, and COFF
17719 sections where data will be dumped. Allows for static and global
17720 bss data to be in separate ranges. No longer relies on knowledge
17721 of section names.
17722 (copy_executable_and_dump_data_section): Renamed
17723 copy_executable_and_dump_data. Completely rewritten to copy
17724 executable section by section, so that raw data areas can be
17725 expanded to hold dumped data as necessary. Allows for bss data to
17726 be in same section as initialized data. Reduces size of static
17727 heap section to that used during preload.
17728 (dump_bss_and_heap):
17729 (w32_fatal_reload_error):
17730 (read_in_bss):
17731 (map_in_heap): Obsolete functions removed.
17732 (unexec): Rounds off preload heap to nearest page rather than
17733 virtual allocation unit. Modified to match other changes.
17734
17735 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17736 data_region_size.
17737
17738 * makefile.nt: (TEMACS_TMP): New macro.
17739 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17740 processor to add static heap section in support of new unexec.
17741
17742 * lastfile.c: Include config.h to pick up data layout pragmas.
17743 [WINDOWSNT]: Remove explicit pragma.
17744
17745 1999-01-12 Kenichi Handa <handa@etl.go.jp>
17746
17747 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17748 correctly.
17749 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17750
17751 1999-01-11 Dave Love <fx@gnu.org>
17752
17753 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17754
17755 1999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17756
17757 * keyboard.c (read_key_sequence): In key-translation-map and
17758 function-key-map, handle symbol with array as fn def.
17759 In function-key-map, handle symbol with keymap as fn def,
17760 and autoloaded definitions.
17761
17762 * puresize.h (BASE_PURESIZE): Increment to 500000.
17763
17764 * print.c (Qtemp_buffer_setup_hook): New variable.
17765 (syms_of_print): Init and staticpro that.
17766 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17767
17768 1999-01-11 Kenichi Handa <handa@etl.go.jp>
17769
17770 * insdel.c (del_range_1): Call signal_after_change.
17771 (del_range_byte): Likewise.
17772 (del_range_both): Likewise.
17773 (del_range_2): Don't call signal_after_change.
17774
17775 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17776 Lisp code here.
17777
17778 1999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17779
17780 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17781 never run the debugger, and don't bother checking the args
17782 to see whether the debugger should be run.
17783
17784 1999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17785
17786 * keyboard.c (read_key_sequence):
17787 Tell get_keyelt to look handle autoloads.
17788 Handle symbols defined as keymaps, and autoloaded keymaps.
17789
17790 1999-01-06 Kenichi Handa <handa@etl.go.jp>
17791
17792 * search.c (search_buffer): Fix previous change.
17793
17794 1999-01-06 Eli Zaretskii <eliz@gnu.org>
17795
17796 * w16select.c (set_clipboard_data): Terminate the text with a null
17797 character. Don't allow to put binary data into the clipboard.
17798 Return zero in case of success, 1 or 2 otherwise.
17799 (get_clipboard_data): Only bail out if the null character is in
17800 the last 32-byte chunk of clipboard data
17801 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17802 they save binary data, print a message in the echo area saying the
17803 text was not put into the clipboard.
17804
17805 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17806
17807 1999-01-06 Andreas Schwab <schwab@gnu.org>
17808
17809 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17810 _BSD_SOURCE, the latter is always defined.
17811
17812 1999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17813
17814 * fns.c (Frequire): Don't fail to unbind bindings.
17815
17816 1999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17817
17818 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17819
17820 * charset.c (Ffind_charset_region): Fix doc typo.
17821
17822 1998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17823
17824 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17825 multibyte in unibyte buffers only.
17826
17827 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17828 and pass it to Fmake_sparse_keymap.
17829
17830 1998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17831
17832 * alloc.c (MMAP_MAX_AREAS): New macro.
17833 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17834 (init_alloc_once): Use that.
17835
17836 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17837
17838 * alloc.c (lisp_malloc, lisp_free): New functions.
17839 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17840 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17841 (n_interval_blocks, n_float_blocks): New variable.
17842 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17843 (n_marker_blocks, n_string_blocks): New variable.
17844 (init_intervals, make_interval): Set a count variable.
17845 Use lisp_malloc instead of setting allocating_for_lisp.
17846 (init_float, make_float, init_cons, Fcons): Likewise.
17847 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17848 (init_marker, allocate_misc, init_strings): Likewise.
17849 (make_uninit_multibyte_string): Likewise.
17850 (gc_sweep, compact_strings): Decrement the count variables.
17851
17852 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17853 into the old_..._hook variables.
17854
17855 1998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17856
17857 * keyboard.c: In each active map, for each menu bar item, use only
17858 the first submap.
17859 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17860 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17861 (syms_of_keyboard): Staticpro and init it.
17862
17863 * xmenu.c (single_keymap_panes):
17864
17865 1998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17866
17867 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17868 by complete_deferred_msg.
17869 (post_character_message): Cancel all deferred messages when
17870 quit_char is typed, in order to break out of potential deadlocks.
17871 (cancel_all_deferred_msgs): New function.
17872 (complete_deferred_msg): Don't abort if msg not found; may have
17873 been cancelled.
17874 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17875 (Fw32_send_sys_command): Wait for system command to
17876 complete before returning.
17877
17878 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17879 not set async_iconified flag though.
17880
17881 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17882 (create_child): Use it.
17883 (syms_of_ntproc): Defvar it. Also fix docstrings for
17884 w32-start-process-share-console and w32-start-process-show-window.
17885
17886 * unexw32.c (_start): Force system calls accessing unmounted
17887 devices to fail without prompting.
17888
17889 1998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17890
17891 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17892 even when starting the dumped Emacs.
17893
17894 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17895 (Fkey_description): Handle lists like vectors.
17896
17897 1998-12-21 Kenichi Handa <handa@etl.go.jp>
17898
17899 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17900 because of the change of the second argument of Fread_char.
17901
17902 * charset.c (Fcharset_after): Check range. If POS is out of
17903 range, return nil.
17904
17905 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17906
17907 * lread.c (Fread_char): Change the meaning of the second argument.
17908 (Fread_event): Likewise.
17909 (Fread_char_exclusive): Likewise.
17910
17911 * print.c (printchar): Fix previous change.
17912
17913 * process.c (read_process_output): Decide the multibyteness of
17914 string given to a process filter by a coding system used for
17915 decoding the process output.
17916
17917 1998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17918
17919 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17920 nonascii-translation-table.
17921 * msdos.c (IT_write_glyphs): Likewise.
17922 * fns.c (concat): Likewise.
17923 * charset.c (unibyte_char_to_multibyte): Likewise.
17924 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17925
17926 1998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17927
17928 * doc.c (Fdocumentation): Change the doc string for prefix
17929 commands to make it a complete sentence in one line.
17930
17931 1998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17932
17933 * s/irix6-5.h: New file.
17934 * s/irix6-0.h (IRIX6): Define this symbol.
17935 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17936 (bcopy, bcmp, bzero): Likewise.
17937 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17938 (C_SWITCH_MACHINE): New value for irix6.5.
17939
17940 1998-12-15 Richard Stallman <rms@gnu.org>
17941
17942 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17943 Do free malloc'd memory even in case of failure. Use xfree, not free.
17944 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17945 (base64_decode_1): Don't fail for short lines.
17946
17947 * print.c (printchar): Outputting multibyte characters
17948 to echo area always makes it multibyte.
17949
17950 * search.c (search_buffer): Don't use Boyer-Moore
17951 to search for an invalid multibyte code.
17952 In unibyte case, no need to check whether there are translations
17953 in more than one charset; just set charset_base to 0.
17954
17955 1998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17956
17957 * print.c (printchar): Cancel previous change.
17958
17959 1998-12-15 Kenichi Handa <handa@etl.go.jp>
17960
17961 * callproc.c: Include "ccl.h".
17962 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17963 bit in argument_coding.mode to tell encoding procedure to flush
17964 data. While encoding arguments, if argument_coding uses CCL
17965 program, initialize it again after encoding.
17966 (Fcall_process_region): Doc-string modified. Handle the case that
17967 NARGS is 3.
17968
17969 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17970 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17971 Set `ic' to the head of this command.
17972 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17973 code for an invalid code.
17974 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17975 based on VEC.
17976
17977 * charset.c (Qunknown): New variable.
17978 (init_charset_once): Intern and staticpro Qunknown. Initialize
17979 all elements of Vcharset_symbol_table to Qunknown.
17980 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17981 unibyte characters only. For an invalid composition sequence, set
17982 CHARSETS[1] to 1.
17983 (Ffind_charset_region): Call find_charset_in_str with an
17984 appropriate MULTIBYTE arg. If undefined charsets are found,
17985 include `unknown' is the return value.
17986 (Ffind_charset_string): Likewise.
17987 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17988 (str_cmpchar_id): Max composite character code should be less than
17989 GENERIC_COMPOSITION_CHAR.
17990
17991 * charset.h (find_charset_in_str): Update declaration.
17992
17993 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17994 final_char is invalid.
17995 (decode_coding): If coding->type is coding_type_ccl, call
17996 ccl_coding_driver even if SRC_BYTES is zero.
17997 (code_convert_region): Update `inserted' correctly after calling
17998 coding->post_read_conversion. Even after the code converter
17999 consumed all source text, call it once more if it is
18000 coding_type_ccl to flush out data.
18001
18002 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
18003 CODING is handled by CCL program, call code_convert_region.
18004
18005 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
18006 correctly.
18007 (string_byte_to_char): Likesize.
18008
18009 * print.c (printchar): When outputting a multibyte character to
18010 echo area, always set message_enable_multibyte to 1.
18011
18012 * process.c (read_process_output): If NBYTES is zero and
18013 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
18014 and try decoding again.
18015 (Fprocess_send_eof): If the coding system of PROCESS
18016 requires flushing, call send_process with null-string at first.
18017
18018 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
18019 with MULTIBYTE arg 0.
18020 * w32select.c (Fw32_set_clipboard_data): Likewise.
18021 * xselect.c (lisp_data_to_selection_data): Likewise.
18022
18023 1998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
18024
18025 * search.c (Freplace_match): Set OPOINT clearly for the case
18026 where point is in the middle of the text to be replaced.
18027
18028 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
18029 if compute_motion fails to advance at all, don't back it up.
18030
18031 1998-12-10 Geoff Voelker <voelker@cs.washington.edu>
18032
18033 * w32.c (w32_get_long_filename): Handle root dirs correctly.
18034
18035 * s/ms-w32.h (LOCALTIME_CACHE): Define.
18036
18037 1998-12-09 Richard Stallman <rms@gnu.org>
18038
18039 * insdel.c (insert_from_buffer_1): Properly count the size
18040 of output from conversion to multibyte even when input
18041 is split across the gap.
18042
18043 1998-12-09 Karl Heuer <kwzh@gnu.org>
18044
18045 * keyboard.c: Doc fixes.
18046
18047 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
18048
18049 1998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
18050
18051 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
18052 characters, only convert CRLF to LF.
18053
18054 1998-12-08 Geoff Voelker <voelker@cs.washington.edu>
18055
18056 * makefile.nt: Do string comparision of _NMAKE_VER.
18057
18058 1998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
18059
18060 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
18061 coding.h, and disptab.h
18062
18063 * msdos.c (Vdos_unsupported_char_glyph): New variable.
18064 (syms_of_msdos): DEFVAR_LISP it.
18065 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
18066 (internal_terminal_init): Set up insert_glyphs_hook and
18067 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
18068 (unibyte_display_via_language_environment): New variable.
18069 (syms_of_msdos): Devfar it.
18070 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
18071 Encode the character codes of the glyphs according to the
18072 terminal_coding in effect.
18073
18074 1998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
18075
18076 * fns.c (Fstring_as_unibyte): Doc fix.
18077
18078 1998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
18079
18080 * charset.h: Declare char_valid_p.
18081
18082 1998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
18083
18084 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
18085
18086 * msdos.c (init_environment): Record the time we started up.
18087 (IT_reset_terminal_modes): Don't restore the screen if we exit too
18088 fast after startup (aka crash).
18089
18090 1998-12-02 Geoff Voelker <voelker@cs.washington.edu>
18091
18092 * w32.c (check_windows_init_file): Use decode_env_path when
18093 using EMACSLOADPATH.
18094
18095 1998-12-02 Jason Rumney <jasonr@altavista.net>
18096
18097 * w32term.c (dumpglyphs): Use unsigned char arrays.
18098 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
18099 for various languages.
18100 Compensate for fonts that have underhangs (e.g., Thai).
18101
18102 * w32term.h (FONT_MAX_WIDTH): New macro.
18103
18104 1998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
18105
18106 * keyboard.c (Qlanguage_change): New variable.
18107 (syms_of_keyboard): Init it.
18108 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
18109 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
18110 keys; add name for Escape key; extend to 256 elements.
18111 (parse_modifiers): Make non-static.
18112
18113 * keyboard.h (parse_modifiers): Declare prototype.
18114
18115 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
18116
18117 * w32fns.c (w32_last_error): Fix cut+paste error.
18118 (Vw32_phantom_key_code): New variable.
18119 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
18120 (syms_of_w32fns): Init and register them.
18121 (reset_modifiers): Use a more precise test for whether Emacs has
18122 keyboard focus. Synchronize state of all keys that can be used as
18123 modifiers, to overcome problems arising from hot-keys.
18124 (w32_key_to_modifier): Be careful not to call intern() to avoid
18125 requiring thread synchronization.
18126 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
18127 (w32_wnd_proc): Ensure lock key indicator lights are updated
18128 promptly on Windows 9x, by passing key events on to the system.
18129 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
18130 responding to Windows key events when not wanted.
18131 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
18132 Ctrl-NumLock into pause by the system.
18133 (w32_wnd_proc): Don't translate key combinations containing any
18134 modifiers other than shift (and capslock).
18135 (w32_wnd_proc): Reset modifier key states when receiving focus (we
18136 can't determine the key states until we have keyboard focus).
18137 (Fw32_toggle_lock_key): New function.
18138 (syms_of_w32fns): Defsubr it.
18139
18140 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
18141 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
18142 (w32_console_toggle_lock_key): New function.
18143
18144 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
18145
18146 1998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
18147
18148 * search.c (Freplace_match): Set OPOINT clearly for the case
18149 where point is in the middle of the text to be replaced.
18150
18151 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
18152 if compute_motion fails to advance at all, don't back it up.
18153
18154 1998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
18155
18156 * xfns.c (Qouter_window_id): New variable.
18157 (syms_of_xfns): Initialize it.
18158 (x_report_frame_params): Set up outer-window-id parameter.
18159
18160 * keymap.c (Fsingle_key_description): Fix previous change.
18161
18162 1998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
18163
18164 * lisp.h (Frequire): Update declaration.
18165
18166 1998-11-26 Kenichi Handa <handa@etl.go.jp>
18167
18168 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
18169 if the charset is ascii.
18170 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
18171
18172 * charset.c (non_ascii_char_to_string): If C has modifier bits,
18173 make an appropriate one byte string.
18174 (char_bytes): Handle the case that C is a single byte char or has
18175 modifier bits.
18176
18177 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
18178
18179 * cmds.c (internal_self_insert): If C has modifier bits, insert
18180 appropriate one byte char.
18181
18182 1998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
18183
18184 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
18185 Clear text properties in the new string.
18186
18187 1998-11-24 Felix Lee <flee@cygnus.com>
18188
18189 * process.c (read_process_output): Call signal_after_change.
18190
18191 1998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
18192
18193 * buffer.c (syms_of_buffer): Doc fix.
18194
18195 * keyboard.c (syms_of_keyboard): Doc fix.
18196
18197 1998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
18198
18199 * frame.c (Fset_mouse_position): Doc fix.
18200
18201 1998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18202
18203 * keymap.c (Fmake_keymap): Doc fix.
18204
18205 1998-11-17 Kenichi Handa <handa@etl.go.jp>
18206
18207 * category.c (word_boundary_p): If C1 or C2 are composite
18208 characters, test their first components.
18209
18210 1998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
18211
18212 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
18213 don't do save-excursion, just restore selected window.
18214
18215 * window.c (window_loop): For UNSHOW_BUFFER,
18216 always do consider minibuffer windows.
18217
18218 1998-11-16 Kenichi Handa <handa@etl.go.jp>
18219
18220 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
18221
18222 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
18223
18224 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
18225
18226 * s/bsdos4.h: New file.
18227
18228 1998-11-16 Kenichi Handa <handa@etl.go.jp>
18229
18230 * Makefile.in (abbrev.o): Depend on charset.h
18231 (bytecode.o): Depend on charset.h.
18232
18233 * bytecode.c: Include charset.h.
18234
18235 * abbrev.c: Include charset.h.
18236
18237 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
18238 the first component.
18239
18240 1998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
18241
18242 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
18243
18244 1998-11-11 Richard Stallman <rms@gnu.org>
18245
18246 * xterm.c (XTread_socket): Fix previous change in case F == 0.
18247
18248 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
18249
18250 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
18251 (INTERRUPT_INPUT): #define commented out.
18252
18253 * m/aviion-intel.h: New file.
18254
18255 1998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
18256
18257 * fns.c (MAX_ALLOCA): New macro.
18258 (Fbase64_encode_region, Fbase64_encode_string,
18259 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
18260 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
18261
18262 1998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
18263
18264 * insdel.c (byte_combining_error): Error message improved.
18265
18266 * charset.c (char_valid_p): Handle a composite character correctly.
18267
18268 1998-11-11 Kenichi Handa <handa@etl.go.jp>
18269
18270 * charset.c (str_cmpchar_id): Check the byte sequence for
18271 composition more rigidly.
18272 (Fcompose_string): Allow DEL to be composed. Signal error if STR
18273 contains an invalid multibyte sequence.
18274
18275 * xterm.c (x_list_fonts): Don't change the value of maxnames.
18276
18277 1998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
18278
18279 * w32term.h (struct w32_display_info): New element faked_key.
18280 (WM_EMACS_SETKEYBOARDLAYOUT):
18281 (WM_EMACS_REGISTER_HOT_KEY):
18282 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
18283 (LEFT_WIN_PRESSED):
18284 (RIGHT_WIN_PRESSED):
18285 (APPS_PRESSED): New console keyboard modifier flags.
18286
18287 * w32term.c (convert_to_key_event): Removed.
18288 (is_dead_key): Copied to w32fns.c.
18289 (w32_read_socket): Generate language_change_event. Modify to work
18290 with keyboard handling changes in w32_wnd_proc.
18291
18292 * w32proc.c (sys_kill): Set extended key flag when faking
18293 Ctrl-Break keystrokes.
18294 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
18295 arbitrary locale property using a numerical index.
18296 (Vw32_valid_codepages): New variable.
18297 (enum_codepage_fn):
18298 (Fw32_get_valid_codepages):
18299 (Fw32_get_console_codepage):
18300 (Fw32_set_console_codepage):
18301 (Fw32_get_console_output_codepage):
18302 (Fw32_set_console_output_codepage):
18303 (Fw32_get_codepage_charset):
18304 (Fw32_get_valid_keyboard_layouts):
18305 (Fw32_get_keyboard_layout):
18306 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
18307 handling functions.
18308 (syms_of_ntproc): Register them.
18309
18310 * w32inevt.c: Include w32term.h and w32heap.h.
18311 (map_keypad_keys):
18312 (Vw32_enable_caps_lock):
18313 (Vw32_enable_num_lock):
18314 (Vw32_pass_lwindow_to_system):
18315 (Vw32_pass_rwindow_to_system):
18316 (Vw32_lwindow_modifier):
18317 (Vw32_rwindow_modifier):
18318 (Vw32_apps_modifier):
18319 (Vw32_scroll_lock_modifier):
18320 (w32_key_to_modifier): Add externs.
18321 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
18322 Scroll Lock as potential modifiers; exclude numpad keys from
18323 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
18324 code.
18325 (is_dead_key): Copy from w32fns.c.
18326 (w32_kbd_patch_key): Comment attempt to improve handling of
18327 dead-keys, and system bug relating to same on Windows NT. Work
18328 around the bug by calling ToUnicode and then converting to the
18329 correct codepage.
18330 (map_virt_key): Removed obsolete variable.
18331 (lispy_function_keys): Add extern.
18332 (key_event): Major rework of keyboard input handling: optionally
18333 recognize Windows keys and Apps key as modifiers; optionally treat
18334 NumLock, CapsLock and ScrollLock as function keys; let system
18335 translate keystrokes to characters to avoid system bugs relating
18336 to dead-key handling; preserve shift distinction for control
18337 characters. Remove some obsolete code.
18338
18339 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
18340 and w32heap.h.
18341
18342 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
18343 (Vw32_pass_lwindow_to_system):
18344 (Vw32_pass_rwindow_to_system):
18345 (Vw32_lwindow_modifier):
18346 (Vw32_rwindow_modifier):
18347 (Vw32_apps_modifier):
18348 (Vw32_enable_num_lock):
18349 (Vw32_enable_caps_lock):
18350 (Vw32_scroll_lock_modifier): New variables.
18351 (modifier_set): Return toggle state for Scroll Lock.
18352 (w32_key_to_modifier): New function. Returns chosen modifier bit
18353 for given key.
18354 (w32_get_modifiers): Returns modifier flags for
18355 non-keyboard input events.
18356 (construct_console_modifiers): Renamed from construct_modifiers;
18357 recognize Windows and Apps keys as modifiers.
18358 (w32_get_key_modifiers): New function. Returns modifier flags for
18359 keyboard input events.
18360 (map_keypad_keys): Make non-static. Use second arg as extended
18361 flag.
18362 (w32_grabbed_keys): New variable.
18363 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
18364 (register_hot_keys):
18365 (unregister_hot_keys):
18366 (lookup_vk_code):
18367 (w32_parse_hot_key):
18368 (Fw32_register_hot_key):
18369 (Fw32_unregister_hot_key):
18370 (Fw32_registered_hot_keys):
18371 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
18372 (post_character_message): New function.
18373 (w32_msg_pump): Handle new messages for using hotkeys and changing
18374 keyboard layout/language.
18375 (w32_wnd_proc): Major rework of keyboard input handling:
18376 optionally recognize Windows keys and Apps key as modifiers;
18377 optionally treat NumLock, CapsLock and ScrollLock as function
18378 keys; let system translate keystrokes to characters to avoid
18379 system bugs relating to dead-key handling; preserve shift
18380 distinction for control characters; forward keyboard
18381 layout/language changes to lisp; detect and convert hot-key events
18382 to normal keystrokes.
18383 (syms_of_w32fns): Register new functions and variables.
18384 (w32_last_error): New function for use in debugging.
18385
18386 1998-11-10 Kenichi Handa <handa@etl.go.jp>
18387
18388 * category.h (CATEGORY_SET): Adjusted for the change of
18389 cmpchar_component.
18390 (CATEGORY_SET): Likewise.
18391
18392 * charset.c (cmpchar_component): New arg NOERROR. Check
18393 composition char ID more strictly.
18394 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
18395 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
18396 return 255.
18397 (Fcompose_string): Signal error if STR contains a rule-based
18398 composition character.
18399
18400 * charset.h (cmpchar_component): Proto-type adjusted.
18401
18402 1998-11-09 Kenichi Handa <handa@etl.go.jp>
18403
18404 * charset.c (string_to_non_ascii_char): Return correct length for
18405 a charset of dimension 2 and composition character.
18406
18407 1998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18408
18409 * keymap.c (Fsingle_key_description): Handle generic characters.
18410
18411 * process.c (Fprocess_status): Doc fix.
18412
18413 1998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
18414
18415 * charset.c (init_charset_once): Fix previous change.
18416
18417 1998-11-06 Kenichi Handa <handa@etl.go.jp>
18418
18419 * charset.c (string_to_non_ascii_char): Fix previous change.
18420 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
18421
18422 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18423 character correctly.
18424 (STRING_CHAR): Handle an invalid charater correctly.
18425
18426 1998-11-05 Kenichi Handa <handa@etl.go.jp>
18427
18428 * charset.c (string_to_non_ascii_char): Fix previous change.
18429
18430 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18431
18432 * editfns.c (Fstring_to_char): Don't return a multibyte character
18433 if STRING is a unibyte string.
18434
18435 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18436 character.
18437
18438 * xdisp.c (display_text_line): Check validity of a multibyte character.
18439 (display_string): Likewise. Handle an invalid character correctly.
18440
18441 1998-11-05 Karl Heuer <kwzh@gnu.org>
18442
18443 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18444 If nothing to do, return immediately.
18445 (syms_of_insdel): Initialize combine_after_change_buffer.
18446
18447 1998-11-05 Richard Stallman <rms@gnu.org>
18448
18449 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18450
18451 1998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18452
18453 * w32term.c (w32_enable_unicode_output): Rename from
18454 w32_no_unicode_output.
18455 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18456 and new semantics.
18457
18458 1998-11-04 Jason Rumney <jasonr@altavista.net>
18459
18460 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18461 been created yet.
18462
18463 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18464
18465 1998-11-04 Kenichi Handa <handa@etl.go.jp>
18466
18467 * charset.c (string_to_non_ascii_char): Change the check for the
18468 varidity of multibyte form.
18469 (update_charset_table): Check validity of BYTES. Don't set
18470 bytes_by_char_head here.
18471 (init_charset_once): Set bytes_by_char_head completely.
18472
18473 * frame.c (do_switch_frame): Cancel previous change.
18474
18475 * print.c (print_string): Check validity of a character.
18476 (print): Likewise.
18477
18478 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18479
18480 * m/ews4800.h, s/ux4800.h: New files.
18481
18482 1998-11-03 Theodore Jump <tjump@tertius.com>
18483
18484 * makefile.nt: Compile multiple source files when possible.
18485
18486 * w32faces.c (Qmouse_face): Replace definition with extern decl.
18487
18488 1998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18489
18490 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18491 so don't rely on it succeeding.
18492
18493 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18494 LOGFONT struct if x font doesn't specify the charset.
18495 (x_to_w32_charset): Change >= to == when testing results of
18496 stricmp.
18497
18498 1998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18499
18500 * fns.c (Frequire): New arg NOERROR.
18501
18502 1998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18503
18504 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18505
18506 1998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18507
18508 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18509 (syms_of_xfaces): Initialization deleted.
18510
18511 * textprop.c (Qmouse_face): Variable definition moved here.
18512 (syms_of_textprop): Initialize it.
18513
18514 * data.c (set_internal): For built-in maybe-local vars,
18515 when BINDFLAG is set, do not mark them as local.
18516
18517 1998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18518
18519 * insdel.c (replace_range): Fix previous change.
18520
18521 1998-10-31 Kenichi Handa <handa@etl.go.jp>
18522
18523 * editfns.c (Fsubst_char_in_region): Fix previous change.
18524 (Ftranslate_region): Fix previous change.
18525
18526 * fns.c (Fbase64_decode_region): Fix previous change.
18527
18528 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18529
18530 * insdel.c (byte_combining_error): New function.
18531 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18532 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18533 CHECK_BYTE_COMBINING_FOR_INSERT.
18534 (insert_from_buffer_1): Likewise.
18535 (adjust_after_replace): Check the posibility of inhibitted byte
18536 combining correctly.
18537 (replace_range): Before signaling an error for inhibitted byte
18538 combining, recover the buffer in a safe state.
18539 (del_range_2): Check the posibility of inhibitted byte combining
18540 correctly.
18541
18542 1998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18543
18544 * xselect.c (Vselection_coding_system): Doc fix.
18545
18546 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18547 when we have both char and byte position. Fix type clashes.
18548
18549 * eval.c (Fsignal): Use a separate format string when passing
18550 error message string to fatal, in case it contains %'s.
18551
18552 * editfns.c (Fchar_after): Fix type clashes.
18553
18554 * charset.c (Fchar_bytes): Doc fix.
18555 (char_bytes): Fix returned value to match returned type.
18556 (syms_of_charset): Fix type clash in initialisation of
18557 Vauto_fill_chars.
18558
18559 1998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18560
18561 * w32console.c (initialize_w32_display): Use buffer coords
18562 instead of buffer size (which may be larger than the window).
18563
18564 * fileio.c (init_fileio_once): New function.
18565
18566 * emacs.c (main): Invoke init_fileio_once.
18567
18568 1998-10-28 Paul Eggert <eggert@twinsun.com>
18569
18570 * xterm.c (XTread_socket): Check the returned value of
18571 XmbLookupString more carefully.
18572
18573 1998-10-28 Kenichi Handa <handa@etl.go.jp>
18574
18575 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18576 (DECODE_CHARACTER_DIMENSION1): Likewise.
18577 (DECODE_CHARACTER_DIMENSION2): Likewise.
18578 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18579
18580 * editfns.c (Fsubst_char_in_region): Fix previous change.
18581 (Ftranslate_region): Fix previous change.
18582
18583 * insdel.c (check_markers): Check if markers are at character boundry.
18584 (adjust_markers_for_insert): Fix previous change.
18585 (count_combining_before): Don't limit the check at BEGV.
18586 (count_combining_after): Don't limit the check at ZV.
18587 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18588 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18589 (insert_from_string_1): Likewise.
18590 (insert_from_buffer_1): Likewise.
18591 (adjust_after_replace): Inhibit bytes combined across region
18592 boundary. Update end_unchanged correctly.
18593 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18594 end_unchanged correctly.
18595 (del_range_2): Inhibit bytes combined across region boundary.
18596 Update end_unchanged correctly.
18597
18598 1998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18599
18600 * w32.c (check_windows_init_file): Also look in load path specified
18601 in environment.
18602
18603 * w32console.c (Fset_message_beep): Recognize 'silent.
18604 (w32_sys_ring_bell): Do nothing for the 'silent sound.
18605
18606 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18607
18608 * w32select.c (Vnext_selection_coding_system): New variable.
18609 (syms_of_w32select): DEFVAR_LISP it.
18610 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18611 non-nil. Always convert multibyte strings.
18612 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18613 non-nil. Always convert a string that includes non-ASCII characters.
18614
18615 1998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18616
18617 * fns.c (Fbase64_decode_string): Doc fix.
18618 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18619 Likewise.
18620
18621 1998-10-27 Dave Love <fx@gnu.org>
18622
18623 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18624 newline in doc string.
18625
18626 1998-10-27 Kenichi Handa <handa@etl.go.jp>
18627
18628 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18629 that byte combining before happens.
18630 (Ftranslate_region): Likewise.
18631
18632 * insdel.c (adjust_after_replace): Correctly handle the case that
18633 both byte combining before and byte combining after happen.
18634 (replace_range): Likewise.
18635
18636 1998-10-26 Kenichi Handa <handa@etl.go.jp>
18637
18638 * category.c (syms_of_category): Doc-string modified.
18639
18640 * coding.c (code_convert_region): Kill the work buffer created by
18641 pre-write-conversion.
18642
18643 1998-10-25 Jason Rumney <jasonr@altavista.net>
18644
18645 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18646
18647 1998-10-23 Kenichi Handa <handa@etl.go.jp>
18648
18649 * coding.c (code_convert_region): While preserving the orignal
18650 point, pay attention to the byte combining problem.
18651
18652 * fns.c (Fbase64_decode_region): Pay attention to the byte
18653 combining problem.
18654
18655 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18656 combined_before_bytes and combined_after_bytes into account.
18657 (count_combining_after): Handle the case that LENGTH is zero.
18658 (adjust_after_replace): Record deletion at correct buffer
18659 position. Handle the case that LEN is zero.
18660 (replace_range): Record deletion at correct buffer position.
18661 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18662 combined bytes.
18663
18664 1998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18665
18666 * alloc.c (Fgarbage_collect): Block input around most of the function.
18667
18668 1998-10-21 Kenichi Handa <handa@etl.go.jp>
18669
18670 * coding.c (setup_coding_system): Fix setting up
18671 coding->spec.ccl.valid_codes for CCL based coding system.
18672 (code_convert_region): Set point to FROM before inserting the
18673 result of pre-write-funciton. Preserve original point.
18674 (code_convert_string): If coding->type is coding_type_ccl, do
18675 conversion even if the length of conversion region is zero.
18676
18677 * fontset.c: Include frame.h before fontset.h.
18678 (list_fonts_func): Fix prototype.
18679
18680 * frame.c: Include frame.h before fontset.h.
18681
18682 * xterm.c: Likewise.
18683
18684 1998-10-21 Jason Rumney <jasonr@altavista.net>
18685
18686 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18687 general macros. Don't call x_list_font directory, instead call a
18688 function set in list_fonts_func.
18689
18690 * fontset.h (list_fonts_func): Fix prototype.
18691
18692 1998-10-20 Jason Rumney <jasonr@altavista.net>
18693
18694 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18695
18696 * w32faces.c: Update comments referring to obsolete structs.
18697 (allocate_face, copy_face, face_eql, load_font,
18698 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18699 frame_update_line_height, merge_faces, compute_base_face,
18700 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18701
18702 * w32fns.c: (Vx_pixel_size_width): New global variable.
18703 (unibyte_display_via_language_environment): New global variable.
18704 (x_set_font): Add support for setting fontsets.
18705 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18706 font names to match xlfd-tight-regexp.
18707 (w32_load_font): Rewrite based on x_load_font.
18708 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18709 `iso8859-1' rather than `ansi'.
18710 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18711 end. Move charset into `charset registry' field.
18712 (enum_font_cb2): Check charsets match. Include width in font list.
18713 (w32_list_fonts): Rewrite based on x_list_fonts.
18714 Moved from w32term.c to have access to enumfont_t struct.
18715 (Fx_list_fonts): w32 specific version eliminated. Include
18716 `x-list-fonts.c'.
18717 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18718 functions for fontset support - adapted from x_ equivalents.
18719 (syms_of_w32fns): New lisp variables initialised. Function
18720 pointers for fontset.c set up.
18721
18722 * w32term.c: Include fontset.h. Define codepage macros.
18723 Add ENCODE_BIG5 macro from coding.c.
18724 (w32_no_unicode_output): New variable.
18725 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18726 functions.
18727 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18728 (dumpglyphs): Rewrite based on xterm.c equivalent.
18729 (x_new_font): Use functionality provided in fontset.c.
18730 (x_new_fontset): New function based on the one in xterm.c.
18731 (syms_of_w32term): Add w32-no-unicode-output flag.
18732
18733 * w32term.h: Remove redundant font_info struct definition.
18734 (Vx_pixel_size_width_font_regexp,
18735 unibyte_display_via_language_environment): Declare variables.
18736 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
18737 Declare functions.
18738 (w32_output): New fields font_baseline and fontset.
18739 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18740
18741 * w32xfns.c: Include charset.h and fontset.h.
18742
18743 1998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18744
18745 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18746
18747 1998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18748
18749 * msdos.c (mouse_init): Reset the button press/release info of the
18750 mouse driver.
18751 (mouse_preempted): New variable.
18752 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18753 (XMenuActivate): Preempt the mouse during menu-handling loop.
18754 Release the current time slice while idling in the menu-handling
18755 loop. Leave the loop only if the user pressed, then released the
18756 same button. Discard all mouse events that are pending in the
18757 event queue before exiting.
18758
18759 1998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18760
18761 * editfns.c (Fformat): Increase buffer size for floating format.
18762
18763 1998-10-17 Kenichi Handa <handa@etl.go.jp>
18764
18765 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18766 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18767 Declare auto-fill-chars as a Lisp variable and initialize it.
18768
18769 * charset.h (Vauto_fill_chars): Extern it.
18770
18771 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18772
18773 1998-10-16 Kenichi Handa <handa@etl.go.jp>
18774
18775 * casefiddle.c (casify_object): Use make_string instead of
18776 make_specified_string to cope with byte-combining situation.
18777
18778 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18779 1 when encountered with a code of the range 0x80..0x9F.
18780
18781 1998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18782
18783 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18784 trying $TMP and $TEMP, since the former is always set in msdos.c.
18785 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18786 the temporary files, check $TMPDIR as well.
18787
18788 1998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18789
18790 * process.c (exec_sentinel, read_process_output):
18791 Restore waiting_for_user_input_p after running Lisp code.
18792
18793 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18794 (command_loop): Likewise.
18795
18796 1998-10-14 Kenichi HANDA <handa@etl.go.jp>
18797
18798 * data.c (Faset): Fix previous change.
18799
18800 * fns.c (Ffillarray): Fix previous change.
18801
18802 * insdel.c (adjust_markers_for_combining): This function deleted.
18803 (adjust_markers_for_replace): Correctly adjust marker positions.
18804 Don't record these adjustment because they were recorded already.
18805 (combine_bytes): Don't adjust markers here.
18806
18807 1998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18808
18809 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18810
18811 1998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18812
18813 * keyboard.c (Fclear_this_command_keys): New function.
18814 (syms_of_keyboard): defsubr it.
18815
18816 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18817
18818 1998-10-12 Kenichi Handa <handa@etl.go.jp>
18819
18820 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18821
18822 * charset.c (Fstring): Call make_string instead of
18823 make_string_from_bytes.
18824 (Ffind_charset_region): Include `composition' in the returned list
18825 if the region contains any composite characters.
18826 (Ffind_charset_string): Include `composition' in the returned list
18827 if the string contains any composite characters.
18828 (find_charset_in_str): Handle CMPCHARP arg correctly.
18829
18830 * coding.c (shrink_decoding_region): If a charset other than ascii
18831 is initially designated to G0, don't shrink the region.
18832 (shrink_encoding_region): Likewise.
18833
18834 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18835 byte-combining situation.
18836
18837 * fns.c (clear_string_char_byte_cache): New function.
18838 (Ffillarray): Handle multibyte string correctly.
18839
18840 * lisp.h (clear_string_char_byte_cache): Extern it.
18841
18842 * xselect.c (lisp_data_to_selection_data): Call
18843 find_charset_in_str with CMPCHARP arg 0.
18844 * w16select.c (Fw16_set_clipboard_data): Likewise.
18845 * w32select.c (Fw32_set_clipboard_data): Likewise.
18846
18847 1998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18848
18849 * keyboard.c (parse_menu_item): For top level of menu bar,
18850 accept ordinary commands, and treat them just like a keymap.
18851
18852 1998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18853
18854 * xdisp.c (redisplay_window): Clear w->window_end_valid
18855 before running the window-scroll-functions hook, if appropriate.
18856
18857 1998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18858
18859 * data.c (Fstring_to_number): Don't recognize floating point
18860 if base is not 10.
18861
18862 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18863 (check_all_windows): New function for debugging tests.
18864 (syms_of_window): Initialize it.
18865
18866 * window.c (Qwindow_configuration_p): New variable.
18867 (Fwindow_configuration_frame): New function.
18868 (syms_of_window): defsubr it.
18869 (Fset_window_configuration): Return t if frame is live.
18870 Use Qwindow_configuration_p.
18871
18872 * xfns.c (check_x_display_info): Don't use selected_frame
18873 if it is dead.
18874
18875 1998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18876
18877 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18878
18879 1998-10-08 Kenichi Handa <handa@etl.go.jp>
18880
18881 * buffer.h (inhibit_modification_hooks): Extern it.
18882
18883 * buffer.c (inhibit_modification_hooks): New variable.
18884 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18885
18886 * charset.c (invalid_character): Prepend `0' to octal
18887 representation. Give error sufficient args.
18888
18889 * coding.c (code_convert_region): Set inhibit_modification_hooks
18890 to 1 before calling Fset_text_properties.
18891
18892 * insdel.c (signal_before_change): If inhibit_modification_hooks
18893 is nonzero, do nothing.
18894 (signal_after_change): Likewise.
18895
18896 1998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18897
18898 * process.c: Doc fixes.
18899
18900 1998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18901
18902 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18903
18904 1998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18905
18906 * w32.c (init_ntproc): Check for Windows init file.
18907 (term_ntproc): Do not check for it here.
18908
18909 1998-09-28 Kenichi Handa <handa@etl.go.jp>
18910
18911 * coding.c (check_composing_code): Fix previous change. Now it
18912 alwasy returns 0 or -1.
18913 (decode_coding_iso2022): Adjusted for the above change.
18914 (encode_coding_iso2022): When encoding the last block, flush out
18915 tailing garbage bytes.
18916 (setup_coding_system): Delete unnecessary code.
18917 (shrink_decoding_region): Check translation table. If ASCII
18918 should be translated, give up shrinking.
18919 (shrink_encoding_region): Likewise.
18920 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18921 (SHRINK_CONVERSION_REGION): New macro.
18922 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18923 properties here.
18924 (code_convert_region): In the case of encoding, always calulate
18925 correct character number.
18926 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18927 (code_convert_region1): Don't delete text properties here.
18928
18929 * insdel.c (adjust_after_replace): Don't delete text properties here.
18930
18931 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18932
18933 1998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18934
18935 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18936
18937 1998-09-26 Kenichi Handa <handa@etl.go.jp>
18938
18939 * coding.h (struct coding_system): New member composed_chars.
18940
18941 * coding.c (check_composing_code): If the current composing
18942 sequence doesn't end properly, return -1.
18943 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18944 (DECODE_CHARACTER_DIMENSION1): Likewise.
18945 (decode_coding_iso2022): Check validity of a composing sequence.
18946 (code_convert_string): If the length of text to be converted is
18947 shrunk to zero, don't perform code conversion.
18948 (shrink_decoding_region): Fix previous change.
18949
18950 * editfns.c (Fformat): Check format control characters.
18951
18952 1998-09-25 Kenichi Handa <handa@etl.go.jp>
18953
18954 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18955 single CR code correctly.
18956 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18957 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18958
18959 1998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18960
18961 * w32fns.c (w32_color_map_lookup): New function.
18962 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18963
18964 1998-09-22 Kenichi Handa <handa@etl.go.jp>
18965
18966 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18967
18968 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18969 strings unibyte.
18970 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18971
18972 1998-09-22 Kenichi Handa <handa@etl.go.jp>
18973
18974 * callint.c (Fcall_interactively): Don't use input method when
18975 reading a character in the case of `c' code letter.
18976
18977 1998-09-21 Dave Love <fx@gnu.org>
18978
18979 * editfns.c (Fsave_restriction): Doc fix.
18980
18981 1998-09-21 Richard Stallman <rms@gnu.org>
18982
18983 * lread.c (build_load_history): Do add to Vload_history
18984 even when dumping Emacs.
18985
18986 1998-09-18 Kenichi Handa <handa@etl.go.jp>
18987
18988 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18989 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18990 cause error if the program is going to output some bytes. When
18991 outputing a string to notify an error, check the case that
18992 DST_BYTES is zero.
18993
18994 * coding.h (CODING_FINISH_INTERRUPT): New macro.
18995
18996 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18997 user or the CCL program executed an invalid command, return
18998 CODING_FINISH_INTERRUPT.
18999 (code_convert_region): Pay attention to the converters return
19000 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
19001
19002 1998-09-16 Kenichi Handa <handa@etl.go.jp>
19003
19004 * coding.c (code_convert_region): Update beg_unchanged and
19005 end_unchanged after we delete the source text.
19006
19007 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
19008 position if it is FROM.
19009 (adjust_markers_for_combining): New function.
19010 (combine_bytes): Call adjust_markers_for_combining instead of
19011 adjust_markers_for_replace.
19012 (adjust_after_replace): Record deletion of combining after bytes
19013 with the correct position.
19014 (replace_range): Likewise. Record the actual deletion after
19015 recoding deletions of combining bytes.
19016
19017 * xdisp.c (message_log_check_duplicate): Count byte length of the
19018 latest message correctly.
19019
19020 1998-09-12 Richard Stallman <rms@gnu.org>
19021
19022 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
19023 instead of SET_PT_BOTH.
19024 (try_window_id, display_text_line): Likewise.
19025
19026 1998-09-12 Karl Heuer <kwzh@gnu.org>
19027
19028 * data.c (Fmake_local_variable): Doc fix.
19029
19030 1998-09-10 Dave Love <fx@gnu.org>
19031
19032 * print.c (Fwith_output_to_temp_buffer): Doc fix.
19033
19034 1998-09-10 Richard Stallman <rms@gnu.org>
19035
19036 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
19037 (bcopy, bcmp, bzero): Add #undef.
19038
19039 * keyboard.c (command_loop_1): When switching to selected window's bfr,
19040 first exit if selected frame is dead (no live frames remain).
19041 (read_key_sequence): Likewise.
19042
19043 1998-09-10 Karl Heuer <kwzh@gnu.org>
19044
19045 * emacs.c (main): Mention --display and --eval in help.
19046
19047 1998-09-07 Paul Eggert <eggert@twinsun.com>
19048
19049 * editfns.c (emacs_memftime): New function.
19050 (Fformat_time_string): Use it to handle null bytes in formats
19051 correctly.
19052
19053 1998-09-08 Kenichi Handa <handa@etl.go.jp>
19054
19055 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
19056 (Ffind_charset_string): For unibyte string, return (ascii).
19057
19058 * editfns.c (Fsubst_char_in_region): Call replace_range with the
19059 arg MARKERS 1.
19060
19061 * insdel.c (adjust_after_replace): Don't add combining bytes to
19062 the args given to adjust_point. Handle correctly the case that
19063 there are both before and after combining bytes.
19064 (replace_range): Likewise.
19065
19066 1998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
19067
19068 * fns.c (base64_decode_1, base64_encode_1): New functions.
19069 (Fbase64_decode_string, Fbase64_encode_string): New functions.
19070 (Fbase64_decode_region, Fbase64_encode_region): New functions.
19071
19072 1998-09-07 Karl Heuer <kwzh@gnu.org>
19073
19074 * eval.c (error): After enlarging buffer, write to it, not to buf.
19075
19076 * fns.c (Fwidget_put): Return VALUE instead of garbage.
19077
19078 1998-09-07 Kenichi Handa <handa@etl.go.jp>
19079
19080 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
19081 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
19082 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
19083
19084 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
19085 chars in produced byte sequence.
19086 (Ffind_operation_coding_system): Doc-string fixed.
19087
19088 * insdel.c (count_combining_after): Check also preceding bytes at
19089 POS if all characters in STRING are not character head.
19090
19091 1998-09-06 Paul Eggert <eggert@twinsun.com>
19092
19093 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
19094 Don't assume that localtime and gmtime return non-NULL.
19095
19096 1998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
19097
19098 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
19099 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
19100 New functions.
19101
19102 1998-09-06 Richard Stallman <rms@gnu.org>
19103
19104 * editfns.c (Fformat): Detect incomplete format spec at string's end.
19105
19106 * lread.c (Fload): Handle case where openp finds a magic file
19107 but it has no `load' handler or that handler calls `load'.
19108 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
19109
19110 1998-09-04 Dave Love <fx@gnu.org>
19111
19112 * buffer.c (enable-multibyte-characters): Doc fix.
19113
19114 1998-09-02 Geoff Voelker <voelker@cs.washington.edu>
19115
19116 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
19117
19118 1998-09-01 Kenichi Handa <handa@etl.go.jp>
19119
19120 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
19121 address in buffer from byte-position.
19122
19123 1998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
19124
19125 * w16select.c (Vnext_selection_coding_system): New variable.
19126 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
19127 Vselection_coding_system.
19128 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
19129 Vnext_selection_coding_system if non-nil.
19130 (Fw16_get_clipboard_data): Always convert a string that includes
19131 non-ASCII characters. Use Vnext_selection_coding_system if
19132 non-nil.
19133
19134 1998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
19135
19136 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
19137 mouse capture.
19138
19139 1998-08-31 Kenichi Handa <handa@etl.go.jp>
19140
19141 * xterm.c (x_load_font): If SIZE is 0, don't use a name
19142 x_list_font returns.
19143
19144 1998-08-31 Paul Eggert <eggert@twinsun.com>
19145
19146 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
19147 Handle leading '-' uniformly for zeros, infinities, and NaNs.
19148
19149 1998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
19150
19151 * msdos.c (IT_cmgoto): When tracking echo area messages with the
19152 cursor, save and restore previous cursor position in the
19153 minibuffer.
19154
19155 1998-08-31 Kenichi Handa <handa@etl.go.jp>
19156
19157 * charset.c (unibyte_char_to_multibyte):
19158 Vnonacii_translation_table will convert a 7-bit charcater.
19159 (multibyte_char_to_unibyte): Handle the case that
19160 Vnonacii_translation_table converts a multibyte charcater to a
19161 unibyte charcter of less than 128.
19162 (init_charset_once): Initialize nonascii_insert_offset and
19163 Vnonacii_translation_table.
19164
19165 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
19166 processing if CODING requires flushing.
19167 (encode_coding): Likewise.
19168 (code_convert_region): Likewise.
19169 (code_convert_string): Likewise.
19170
19171 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
19172 to convert a character less than 160 to multibyte.
19173 * insdel.c (copy_text): Likewise.
19174 (count_size_as_multibyte): Likewise.
19175 * xterm.c (dumpglyphs): Likewise.
19176
19177 1998-08-29 Paul Eggert <eggert@twinsun.com>
19178
19179 * data.c (arith_driver, float_arith_driver): Compute (- x) by
19180 using negation, not subtraction; this makes a difference with
19181 IEEE floating point arithmetic (and also if integer arithmetic
19182 is ones' complement or signed-magnitude!).
19183
19184 1998-08-29 Karl Heuer <kwzh@gnu.org>
19185
19186 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
19187
19188 1998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
19189
19190 * charset.c (Fchar_bytes): Add \n\ in doc-string.
19191
19192 1998-08-28 Paul Eggert <eggert@twinsun.com>
19193
19194 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
19195 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
19196 path only if we're not building with Motif.
19197
19198 1998-08-28 Kenichi Handa <handa@etl.go.jp>
19199
19200 * insdel.c (adjust_after_replace): Fix the code to record undo
19201 information for the case that `before combining' happens. Remove
19202 text properties which are added to the new text by
19203 offset_intervals.
19204
19205 * coding.c (code_convert_region1): Remove all text properties of
19206 the region.
19207
19208 1998-08-28 Kenichi Handa <handa@etl.go.jp>
19209
19210 * charset.h (CHAR_BYTES): New macro.
19211
19212 * charset.c (Fchar_bytes): Now always return 1.
19213 (char_bytes): New function.
19214
19215 * editfns.c (Fposition_bytes): If the arg POSITION is out of
19216 range, return nil.
19217 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
19218 nil.
19219
19220 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
19221 * fns.c (concat): Likewise.
19222 * insdel.c (count_size_as_multibyte): Likewise.
19223 * xdisp.c (message_dolog): Likewise.
19224
19225 1998-08-27 Kenichi Handa <handa@etl.go.jp>
19226
19227 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
19228 correctly. They are for SS2 and SS3 respectively.
19229 (ccl_coding_driver): Fix previous change.
19230
19231 1998-08-26 Paul Eggert <eggert@twinsun.com>
19232
19233 * xterm.c (fixup_locale): New function. For now, it resets
19234 LC_TIME to "C" (reverting the 1998-08-07 change), and also
19235 resets LC_MESSAGES to "C".
19236 (x_term_init): Use it to fix up the locale after setlocale
19237 (LC_ALL, "").
19238
19239 1998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19240
19241 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
19242 case it was prototyped the old way.
19243
19244 1998-08-25 Kenichi Handa <handa@etl.go.jp>
19245
19246 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
19247 returns a null string. This happens when dxpc 3.7 is being used.
19248
19249 1998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
19250
19251 * keyboard.c (input-method-previous-message): Doc fix.
19252
19253 * coding.c (file-coding-system-alist,
19254 select-safe-coding-system-function): Doc fix.
19255
19256 1998-08-23 Kenichi HANDA <handa@etl.go.jp>
19257
19258 * coding.c (detect_coding_iso2022): Don't check the byte length of
19259 succeeding codes (0xa0..0xFF) if the codes follows single shift
19260 code (SS2 or SS3).
19261
19262 1998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
19263
19264 * coding.c (detect_coding_system): If detect_eol_type returns
19265 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
19266 correctly.
19267
19268 See ChangeLog.7 for earlier changes.