1999-12-31 Gerd Moellmann * xfns.c: New image functions adapted to Emacs conventions. (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local variable `file'. 1999-12-31 William M. Perry * xfns.c (jpeg_format): Add the :data keyword (jpeg_image_p): JPEG is valid with :file _or_ :data (jpeg_memory_src): Define new JPEG image source to read from a memory buffer. (jpeg_load): Pay attention to the :data keyword if specified. Instantiates a jpeg_memory_src instead of jpeg_stdio_src if found. (png_format): Add the :data keyword (png_image_p): PNG is valid with :file _or_ :data (png_read_from_memory): New PNG read function to read from a memory buffer. (png_load): Pay attention to the :data keyword if specified. Use png_set_read_fn() instead of png_init_io() if specified. (tiff_format): Add the :data keyword for TIFF images. (tiff_image_p): TIFF is valid with :file _or_ :data (tiff_read_from_memory): Define new TIFF I/O functions to read from a memory buffer. (tiff_load): Pay attention to the :data keyword if specified. Uses TIFFClientOpen() instead of TIFFOpen() if specified. (gif_format): Add the :data keyword (gif_image_p): GIF is valid with :file _or_ :data (gif_read_from_memory): New GIF input function to read from a memory buffer. (gif_load): Pay attention to the :data keyword. Uses DGifOpen() instead of DGifOpenFileName() if specified. 1999-12-31 Gerd Moellmann * xdisp.c (next_element_from_buffer): Change assertion at the end because it doesn't hold when there's an overlay string at the end from which we deliver an image. 1999-12-30 Eli Zaretskii * msdos.c (IT_update_begin): Don't dereference members of struct window for deleted windows. 1999-12-30 Gerd Moellmann * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only a hook, and the hook has a non-nil `no-self-insert' property, let the return value of the hook specify whether an expansion took place. If it returns nil, no expansion has been performed. * xterm.c (x_make_frame_visible): Wait for frame becoming visible differently. 1999-12-30 Eli Zaretskii * msdos.c (IT_write_glyphs): Track last changes to struct glyph. 1999-12-29 Eli Zaretskii * dispnew.c (mode_line_string): Support MS-DOS frames. 1999-12-29 Gerd Moellmann * eval.c (syms_of_eval): Initialize debugger_may_continue. 1999-12-29 Kenichi Handa * process.c (read_process_output): Fix the args CHARPOS and LENINS to signal_after_change. 1999-12-28 Eli Zaretskii * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame dimensions changed, invalidate the mouse highlight info. (disable_mouse_highlight, help_echo, previous_help_echo): New variables. (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face) (fast_find_position, IT_note_mode_line_highlight) (IT_note_mouse_highlight): New functions. (IT_update_begin): If the redisplay affects the window where the mouse highlight is, clear the highlight. If the frame where the highlight was displayed was killed, invalidate the highlight info. (IT_update_end): Reset the highlight flag. Reset the mouse highlight-defer flag. (IT_frame_up_to_date): New function, if mouse highlight was deferred due to GC, do it now. (internal_terminal_init): Initialize mouse-highlight related members of the_only_x_display. Assign IT_frame_up_to_date to frame_up_to_date_hook. (dos_rawgetc): If the mouse moved, update mouse highlight. If help_echo changed value, generate a HELP_EVENT event. (syms_of_msdos): Staticpro help_echo and previous_help_echo. * msdos.h (struct display_info): New. (struct x_output): Add the display_info member. (FRAME_X_DISPLAY_INFO): New macro. 1999-12-28 Gerd Moellmann * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED if MODIFF > 1. (dump_glyph_row): Adapt to changes in struct glyph. * buffer.c (modify_overlay): Always compute unchanged info. 1999-12-27 Kenichi Handa * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'. 1999-12-27 Kenichi Handa The following changes are to use more bits for face IDs. * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the lowest 8 bits are single byte character code, the bits above are face ID. (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change above. (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise. (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted. * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead of GLYPH_MASK_CHAR. * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead of GLYPH_MASK_CHAR. * dispextern.h (struct glyph): Make face_id and padding_p the top level members. Change members in union `u'. (GLYPH_EQUAL_P): Check also members face_id and padding_p. (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro. (SET_CHAR_GLYPH): Adjusted for the change of struct glyph. (CHAR_GLYPH_PADDING_P): Likewise. (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte characters. * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted for the change of struct glyph. (line_draw_cost): Adjusted for the change of GLYPH_FROM_CHAR_GLYPH. (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P. * term.c (encode_terminal_code): Adjusted for the change of struct glyph and GLYPH_FROM_CHAR_GLYPH. (write_glyphs, insert_glyphs, append_glyph): Adjusted for the change of struct glyph. * xdisp.c: All codes adjusted for the change of struct glyph. * xterm.c: All codes adjusted for the change of struct glyph. 1999-12-27 Kenichi Handa * composite.h (struct composition): Change the order of declaring members to reduce the byte size of the structure. 1999-12-25 Gerd Moellmann * search.c (looking_at_1): Reset immediate_quit before modifying global data. 1999-12-24 Kenichi Handa * process.c (read_process_output): Fix the arg FROM to update_compositions. 1999-12-22 Richard M. Stallman * search.c (Freplace_match): For nonliteral replacement in buffer, construct all the new text first, then insert all at once. 1999-12-22 Dave Love * xfns.c (Fx_show_tip): Gcpro `timeout' too. 1999-12-22 Gerd Moellmann * xfns.c (Fx_create_frame): Move x_default_parameter calls that lead to size changes to after the X window has been created. * xfaces.c (realize_x_face): Don't use uninitialized local variable in xassert. 1999-12-22 Kenichi Handa * xfaces.c (face_color_supported_p): Check by tty_defined_color only when the frame is not for a window system. 1999-12-22 Gerd Moellmann * buffer.c (Fset_buffer_multibyte): Arrange for a thorough redisplay after changing the multibyteness of a buffer. * xterm.c (XTread_socket): At the beginning of the loop, pass the frame's X window to XFilterEvent instead of None because that's the X window for which the IC was created. This makes dead accents work when the pointer is not in Emacs' frame. (XTread_socket) : Don't call XFilterEvent here. 1999-12-20 Dave Love * xfns.c (Fx_show_tip): Add missing UNGCPRO. 1999-12-19 Gerd Moellmann * eval.c (debugger_may_continue): New variable. (syms_of_eval): Add a DEFVAR_BOOL for it. (call_debugger): Bind it. 1999-12-19 Eli Zaretskii * msdos.c (IT_set_face): Don't swap face colors when highlight or fp->tty_reverse_p is set, unless the computed colors are identical to frame colors. Print both original and computed colors to termscript file. (IT_write_glyphs): Track the changes in handling of composite characters. (IT_set_frame_parameters): Don't set frame colors from unspecified-fg and unspecified-bg pseudo-colors. 1999-12-17 Dave Love * data.c (Fkeywordp): New function. (syms_of_data): Install it. 1999-12-16 Eli Zaretskii * xfaces.c (tty_defined_color): Fix last change. 1999-12-15 Gerd Moellmann * xdisp.c (redisplay_window) : Check that window start is in [BEGV..ZV]. 1999-12-15 Eli Zaretskii * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR) (FACE_TTY_DEFAULT_BG_COLOR): New macros. * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables. (syms_of_xfaces): Initialize and staticpro them. (tty_defined_color): If the color name is unspecified-fg or unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value. (tty_color_name): If the color pixel value is either FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg or Qunspecified_bg, respectively. (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg and Qunspecified_bg for foreground and background colors. (realize_default_face): If the foreground and background colors are not specified, default to Qunspecified_fg and Qunspecified_bg. (realize_tty_face): By default, set the face colors to FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR. [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined. Reverse the colors if the default colors were reversed. * dispnew.c (init_display): Initialize the frame pixels of the initial frame to FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR. * term.c (turn_on_face): If the default fore- and background colors are reversed, enter inverse video mode. Don't send color escape sequences for unspecified foreground and background colors. (turn_off_face): Handle unspecified-fg and unspecified-bg colors. * dosfns.c (unspecified_colors): New variable. (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg color names, return FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR, respectively. (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and Qunspecified_bg, respectively. * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR as pixel values. 1999-12-15 Kenichi Handa * coding.c (code_convert_region): Fix the secoding arg to update_compositions. 1999-12-15 Kenichi Handa The following changes are for the new composition mechanism. We have deleted `composition' charset and composite characters, instead introduced a special text property `composition'. * Makefile.in (INTERVAL_SRC): Include composite.h. (INTERVAL_OBJ): Include composite.o. (SOME_MACHINE_OBJECTS): Include composite.o. (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o) (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o): Depend on composite.h. (doc.o): Depend on charset.h. (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC. (composite.o): New target. * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING. * callproc.c (Fcall_process): Call code_convert_string to encode arguments. Use CODING_REQUIRE_DECODING to check if the process output should be decoded. * casefiddle.c: Include composite.h. (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a multibyte character. Adjusted for the change of CHAR_STRING. (casify_region): Likewise. Call update_compositions. * category.h (CATEGORY_SET): Delete codes for a composite character. * category.c (word_boundary_p): Delete codes for a composite character. (Fmake_category_table): New function. (syms_of_category): Defsubr it. * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING. (ccl_driver): Delete codes for a composite character. * charset.h: In this entry, just `Modified' means that codes for a composite character is deleted. (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION) (charset_composition) (MIN_CHAR_COMPOSITION) (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR) (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID) (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted. (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT) (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR) (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P): Modified. (SPLIT_STRING): Call split_string, not split_non_ascii_string. (CHAR_STRING): Delete WORKBUF argument. Call char_string, not non_ascii_char_to_string. (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char. (STRING_CHAR_AND_LENGTH): Likewise. (FETCH_CHAR_ADVANCE): New macro. (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted. (MAX_MULTIBYTE_LENGTH): New macro. (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted. (find_charset_in_str): Argument adjusted. (CHAR_LEN): Modified. * charset.c: In this entry, just `Modified' means that codes for a composite character is deleted. (Qcomposition) (leading_code_composition) (charset_composition) (min_composite_char) (cmpchar_table) (cmpchar_table_size) (n_cmpchars): Deleted. (SPLIT_COMPOSITE_SEQ): Deleted. (SPLIT_MULTIBYTE_SEQ): Modified. (char_to_string): Renamed from non_ascii_char_to_string. Modified. (string_to_char): Renamed from string_to_non_ascii_char. (split_string): Renamed from split_non_ascii_string. (char_printable_p) (Fsplit_char) (Ffind_charset_region) (Ffind_charset_string) (char_valid_p) (char_bytes) (Fchar_width) (strwidth): Modified. (find_charset_in_str): Argument CMPCHARP deleted. Modified. (Fstring): Adjusted for the change of CHAR_STRING. Modified. (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table) (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID) (str_cmpchar_id) (cmpchar_component) (Fcmpcharp) (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p) (Fcmpchar_cmp_count): Deleted. (Fcompose_string): Implemented by Emacs Lisp in composite.el. (init_charset_once): Modified. (syms_of_charset): Modified. * cmds.c (internal_self_insert): Adjusted for the change of CHAR_STRING. * coding.h (emacs_code_class_type): Delete the member EMACS_leading_code_composition. (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD) (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL) (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P) (COMPOSING_WITH_RULE_P): Macros deleted. (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New macros. (struct composition_data): New structure. (CODING_FINISH_INSUFFICIENT_CMP): New macro. (struct coding_system): New members composition_rule_follows, cmp_data, cmp_data_start, cmp_data_index. (coding_save_composition) (coding_free_composition_data) (coding_adjust_composition_offset): Extern them. * coding.c: Include composite.h. (DECODE_CHARACTER_ASCII): Don't handle composition here. (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity of multibyte code here. (DECODE_CHARACTER_DIMENSION2): Likewise. (detect_coding_emacs_mule): Change the case label from EMACS_leading_code_composition to 0x80. (detect_coding_iso2022): Handle new composition sequence. (DECODE_ISO_CHARACTER): Likewise. (check_composing_code): Deleted. (coding_allocate_composition_data): New function. (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END) (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START) (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros. (decode_coding_iso2022): Handle new composition sequence. (ENCODE_ISO_CHARACTER): Don't check composition here. (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros. (ENCODE_COMPOSITION_NO_RULE_START) (ENCODE_COMPOSITION_WITH_RULE_START): Deleted. (ENCODE_COMPOSITION_END): Handle new composition sequence. (ENCODE_COMPOSITION_FAKE_START): New macro. (encode_coding_iso2022): Handle new composition sequence. (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail. (encode_coding_sjis_big5): Ignore composition. (setup_coding_system): Initialize new members of struct coding_system. Enable composition only when the coding system has `composition' property t. (coding_free_composition_data) (coding_adjust_composition_offset) (coding_save_composition) (coding_restore_composition): New functions. (code_convert_region): Call coding_save_composition for encoding and coding_allocate_composition_data for decoding. Don't skip ASCII characters if we handle composition on encoding. Call signal_after_change with Check_BORDER. (code_convert_string): Call coding_save_composition for encoding and coding_allocate_composition_data for decoding. Don't skip ASCII characters if we handle composition on encoding. (code_convert_string1): Set Vlast_coding_system_used after calling code_convert_string. (code_convert_string_norecord): Disable composition. (Fset_terminal_coding_system_internal): Likewise. (Fset_safe_terminal_coding_system_internal): Likewise. (Fset_keyboard_coding_system_internal): Likewise. (init_coding_once): Set emacs_code_class[0x80] to EMACS_invalid_code. * composite.h: New file. * composite.c: New file. * data.c (Faref): Delete codes for a composite character.. (Faset): Likewise. Adjusted for the change of CHAR_STRING. * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH. (struct glyph): Add new sub-structure cmp to the union `u'. (enum display_element_type): New member IT_COMPOSITION. (enum prop_idx): New member COMPOSITION_PROP_IDX. (struct it): New members cmp_id, cmp_len. * dispnew.c (direct_output_forward_char): Check point moving into or out of a composition. If so, give up direct method. * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING. * editfns.c (Fchar_to_string): Adjusted for the change of CHAR_STRING. (general_insert_function): Likewise. (Finsert_char): Likewise. (Fsubst_char_in_region): Likewise. Call update_compositions. (Ftranslate_region): Call update_compositions. (Ftranspose_regions): Call update_compositions. * emacs.c (main): Call syms_of_composite. * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of CHAR_STRING. (Finsert_file_contents): Set Vlast_coding_system_used before calling signal_after_change. Call update_compositions if some texts are inserted.. (Fwrite_region): Adjusted for the change of a_write and e_write. (a_write): Argument changed. Work based on character position, not byte position. (e_write): Argument changed. Handle new way of composition. * fns.c (Flength): The length of char-table is MAX_CHAR. (concat): Adjusted for the change of CHAR_STRING. (Ffillarray): Adjusted for the change of CHAR_STRING. (Fset_char_table_default): Delete codes for a composite character. (hash_put): Return hash index. * fontset.h (struct font_info): New member vertical_centering. (Vvertical_centering_font_regexp): Extern it. * fontset.c (Vvertical_centering_font_regexp): New variable. (syms_of_fontset): Declare it as a Lisp variable and initialize. Set Vignore_relative_composition to nil. (fs_load_font): Initialize `vertical_centering' of struct font_info. * indent.c (check_composition): New function. (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM. (current_column_1): Handle new way of composition. (Fmove_to_column): Likewise. (compute_motion): Likewise. * insdel.c (copy_text): Adjusted for the change of CHAR_STRING. (insert_char): Likewise. (insert): Call update_compositions. (insert_and_inherit): Likewise. (insert_before_markers): Likewise. (insert_before_markers_and_inherit): Likewise. (insert_from_string): Likewise. (insert_from_string_before_markers): Likewise. (insert_from_buffer): Likewise. (replace_range): Likewise. (count_combining_composition): Deleted. (count_combining_before): Delete codes for a composite character. (count_combining_after): Likewise. (del_range_1): Call update_compositions. (del_range_byte): Likewise. (del_range_both): Likewise. (Fcombine_after_change_execute): Likewise. * intervals.h: Include composite.h. (get_property_and_range): Extern it. (Vtext_property_default_nonsticky): Extern it. * intervals.c (adjust_intervals_for_insertion): To check stickines of properties, pay attention to text-property-default-nonsticky. (merge_properties_sticky): Likewise. (get_property_and_range): New function. * keyboard.c (Vdisable_point_adjustment): New variable. (Vglobal_disable_point_adjustment): New variable. (syms_of_keyboard): Declare them as Lisp variables. (command_loop_1): Check them and call adjust_point_for_property if necessary. (adjust_point_for_property): New function. * keymap.c (push_key_description): Adjusted for the change of CHAR_STRING. (Ftext_char_description): Likewise. * lisp.h (QCtest, QCweakness, Qequal): Extern them. (hash_put): Adjusted for the change of the definition. (signal_after_change): Likewise. (check_point_in_composition): Extern it. * lread.c (readchar): Adjusted for the change of CHAR_STRING. Delete a code that handles an invalid too-long multibyte sequence because we are now sure that we never encounter with such a sequence. (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM. (init_obarray): Likewise. (read1): Likewise. Adjusted for the change of CHAR_STRING. * print.c (printchar): Adjusted for the change of CHAR_STRING. * process.c: Include composite.h. (read_process_output): Call update_compositions. * regex.c (regex_compile): Adjusted for the change of CHAR_STRING. * search.c (search_buffer): Adjusted for the change of CHAR_STRING. * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite character. * term.c (encode_terminal_code): Delete codes for a composite character. Adjusted for the change of CHAR_STRING. (produce_glyphs): When called, it->what can be IT_COMPOSITION. Delete codes for a composite character. * textprop.c (Vtext_property_default_nonsticky): New variable (syms_of_textprop): Declare it as a Lisp variable. * window.c (Frecenter): Clear all caches of compositions. * xdisp.c (it_props): Add an entry for composition. (face_before_or_after_it_pos): For composition, check face of a character after the composition. (handle_composition_prop): New function. (get_next_display_element): Adjusted for the change of CHAR_STRING. (set_iterator_to_next): Handle the case that it->method == next_element_from_composition. (next_element_from_composition): New function. (message_dolog): Adjusted for the change of CHAR_STRING. (set_message_1): Likewise. (check_point_in_composition): New function. (reconsider_clip_changes): If point moved into or out of composition, set b->clip_changed to 1 to force updating of the screen. (disp_char_vector): Delete codes for a composite character. (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING. * xfaces.c (choose_face_fontset_font): Delete codes for a composite character. (realize_x_face): Likewise. Change a place to set local variable `f' to avoid a bug of GCC 2.8.1 on Solaris. * xfns.c: Include intervals.h. (syms_of_xfns): Make `display' property nonsticky by default. * xselect.c (lisp_data_to_selection_data): Adjusted for the change for find_charset_in_str. * xterm.h (struct x_output): Change member font_baseline to baseline_offset. * xterm.c (x_append_glyph): Setup members of struct glyph properly for composition. (x_append_composite_glyph): New function. (VCENTER_BASELINE_OFFSET): New macro. (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members of struct it for the composition. Cache pixel offsets in the struct composition. Delete codes for a composite character. Handle Vignore_relative_composition in composition code. (struct glyph_string): Delete member cmpcharp, add new member cmp. (x_set_cursor_gc): Check s->cmp, not s->cmpcharp. (x_compute_glyph_string_overhangs): Likewise. (x_get_glyph_overhangs): Delete codes for a composite character. (x_right_overwritten): Check s->cmp, not s->cmpcharp. (x_draw_glyph_string_background): Likewise. Delete codes for checking s->gidx for a composition. (x_draw_glyph_string_foreground): Delete code for a composite character. (x_draw_composite_glyph_string_foreground): New function. (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp. (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH. (struct work): Deleted. (x_fill_composite_glyph_string): Argument changed. Mostly rewritten for that. (x_fill_glyph_string): Don't check CHARSET_COMPOSITION. (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here. (BUILD_COMPOSITE_GLYPH_STRING): New macro. (BUILD_GLYPH_STRINGS): For composition, call BUILD_COMPOSITE_GLYPH_STRING. (x_new_font): Initialize f->output_data.x->baseline_offset, not f->output_data.x->font_baseline. 1999-12-14 Gerd Moellmann * xterm.c (show_mouse_face): Don't use updated_area, use TEXT_AREA. 1999-12-12 Richard M. Stallman * minibuf.c (Fall_completions): Doc fix. 1999-12-12 Richard M. Stallman * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro has been changed by the Lisp code. 1999-12-12 Gerd Moellmann * xfns.c: Indentation fixes. 1999-12-10 Stefan Monnier * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared. 1999-12-10 Gerd Moellmann * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL) [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h. * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved to frame.h. 1999-12-09 Stefan Monnier * keyboard.c (Qratio): New symbol. (scroll_bar_parts): Add `Qratio' to it. (syms_of_keyboard): Init `Qratio'. * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'. * xterm.c (#includes): Allow compilation with only Xaw. (xaw3d_arrow_scroll, xaw3d_pick_top): New variables. (xt_action_hook): Replace XAW3D by XAW. (xaw3d_jump_callback): Renamed to xaw_jump_callback. (xaw_jump_callback): Renamed from xaw3d_jump_callback. Determine epsilon dynamically and don't try to be too clever. (xaw3d_scroll_callback): Renamed to xaw_scroll_callback. (xaw_scroll_callback): Renamed from xaw3d_scroll_callback. Handle both Xaw3d with arrow-scrollbars and with Xaw-style scrollbar (using `ratio'). (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d scrollbar we have so as to set it up more optimally and to fix xaw3d_arrow_scroll and xaw3d_pick_top. (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the bottom of the Xaw3d scrollbar, to work around its tendency to refuse shrinking the thumb. Also make sure that `XawScrollbarSetThumb' is not ignored, using a major gross hack. (x_initialize): Init default values for xaw3d_arrow_scroll and xaw3d_pick_top. 1999-12-09 Dave Love * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE. 1999-12-08 Gerd Moellmann * eval.c: Remove conditional compilation on `standalone'. (call_debugger): When entering the debugger while redisplaying, reset redisplaying_p, and go back to the top-level if the debugger returns. 1999-12-07 Gerd Moellmann * xfaces.c (x_set_menu_resources_from_menu_face): Make sure basic faces are realized before trying to use face `menu'. * window.c (delete_window): Block input for the time window matrices are being changed. 1999-12-07 Dave Love * lread.c (Fintern_soft): Fix newlines in doc string. 1999-12-07 Alexandre Oliva * unexelf.c: Include , not on IRIX. Removed duplicate definition of ElfW. (find_section): Copied from unexsgi.c. (unexec): Use find_section. Adjust whitespace. Initialize new_data2_offset based on old_data, not sbss (this fixes a bug on IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific. Adjust test for presence of .mdebug section to the new return value of find_section. 1999-12-07 Gerd Moellmann * unexelf.c: Merge changes from 20.5. (unexec): Handle .lit4 and .lit8 unconditionally. * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of unexsgi.o again. * m/iris5d.h (UNEXEC): Likewise. 1999-12-06 Stefan Monnier * editfns.c (Fdelete_and_extract_region): New function. (syms_of_editfns): Register it. * insdel.c (del_range): Update del_range_1 call. (del_range_1, del_range_2): Add a ret_string argument to request that the deleted text be returned. (del_range_byte, del_range_both): Update del_range_2 call. * lisp.h (del_range_1, del_range_2): Change prototype * casefiddle.c (casify_region): Update del_range_1 call. * coding.c (code_convert_region): Update del_range_2 call. * fileio.c (Finsert_file_contents): Update del_range_2 call. 1999-12-06 Gerd Moellmann * xfaces.c (set_lface_from_font_name): Fix incomplete merge. 1999-12-04 Hrvoje Niksic * lread.c (Fintern_soft): Accept a symbol argument. 1999-12-06 Eli Zaretskii * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000. * insdel.c (adjust_markers_for_delete): Fix last change. 1999-12-06 Eli Zaretskii Changes for automatic remapping of X colors on terminal frames: * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X frames. (Vface_tty_color_alist): Remove. (tty_defined_color): New function. (defined_color): Rewrite to support any type of frame. (tty_color_name): New function. (face_color_supported_p, Fface_color_gray_p, Fface_color_supported_p): Support non-X frames. (load_color): Enclose the color name in quotes, in the log messages. Remove DOS-specific version of load_color. (realize_tty_face): Take the supported colors from tty-color-alist. Support translation of X colors to the closest tty color, for both MSDOS and tty frames. [MSDOS]: Don't invert face colors if they were taken from the frame colors. (Fface_register_tty_color, Fface_clear_tty_colors): Remove. * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]: Define a mostly empty surrogate. (tty_display): Declare. * frame.c (make_terminal_frame) [!macintosh]: Don't use tty_display. (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P frames when the frame's param_alist includes 'reverse. (tty_display): Define. (make_terminal_frame) [!MSDOS]: Assign &tty_display to the output_data.x member. (Fframe_parameters): Return foreground and background color names on tty frames as well, in addition to MSDOS frames. * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object selected_frame. (struct x_output): Remove unused members; document who uses each member. (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE, FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES, FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove unused macro definintions. * msdos.c (IT_set_frame_parameters): Don't call recompute_basic_faces, the next redisplay will, anyway. (x_current_display): Remove unused variable. Many functions: changes for Lisp_object selected_frame. (IT_set_face): If the tty_reverse_p flag is set for the face, reverse the foreground and background colors. (Fmsdos_remember_default_colors): New function. (syms_of_msdos): Defsubr it. (IT_set_frame_parameters): Use initial_screen_colors[] when creating a new frame. If the frame parameters include 'reverse, swap the foreground and background colors. (internal_terminal_init): Initialize initial_screen_colors to -1. (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up cus-start.el. * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc. * xfns.c (x_defined_color): Rename from defined_color. All callers changed. (Fxw_color_defined_p): Renamed from Fx_color_defined_p; all callers changed. (Fxw_color_values): Renamed from Fx_color_values; all callers changed. (Fxw_display_color_p): Renamed from Fx_display_color_p; all callers changed. (x_window_to_frame, x_any_window_to_frame, x_non_menubar_window_to_frame, x_menubar_window_to_frame, x_top_window_to_frame): Use !FRAME_X_P instead of f->output_data.nothing. * xterm.h (x_defined_color): Rename from defined_color. * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of f->output_data.nothing. (Fxw_color_defined_p): Renamed from Fx_color_defined_p; all callers changed. (Fxw_color_values): Renamed from Fx_color_values; all callers changed. (Fxw_display_color_p): Renamed from Fx_display_color_p; all callers changed. * dispextern.h (tty_color_name): Add prototype. * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of f->output_data.nothing. * w32menu.c (menubar_id_to_frame): Likewise. * w32term.h (w32_output): Declare. * dosfns.c (Qmsdos_color_translate): Remove. (msdos_stdcolor_name): Now returns a Lisp_Object. * dosfns.h (Qmsdos_color_translate): Remove. * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support. 1999-12-06 Kenichi Handa * fileio.c (decide_coding_unwind): Renamed from set_auto_coding_unwind. (Finsert_file_contents): Make single unwind protect to call both Vset_auto_coding_function and Ffind_operation_coding_system. * insdel.c (adjust_markers_for_delete): Make it non-static. 1999-12-04 Stefan Monnier * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy operators and handle them properly. * regex.h (RE_ALL_GREEDY): New option. (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic sorting would put it. (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP) (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior. 1999-12-04 Dave Love * m/arm.h: New file. 1999-12-03 Dave Love * editfns.c (Fmessage_or_box): Use use_dialog_box. 1999-12-02 Gerd Moellmann * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed for building with Motif. * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of unexelf.o. * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o. 1999-12-01 Dave Love * emacs.c (main): Set LANG=C iff AX3_2 defined. 1999-11-28 Gerd Moellmann * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE) (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New macros. * config.in (HAVE_SETITIMER, HAVE_UALARM): New. 1999-11-28 eliz * emacs.c (synchronize_locale): Avoid compiler warnings about pointer type mismatch. 1999-11-28 Gerd Moellmann * window.c (Fwindow_end): Don't call temp_set_pt_both with out of range position. * xterm.c (XTread_socket) : Switch off busy-cursor by setting inhibit_busy_cursor to 2. 1999-11-28 Eli Zaretskii * charset.c (Fmake_char_internal): Print the charset ID when signalling an error. * emacs.c (synchronize_locale): Avoid compiler warnings about pointer type mismatch. 1999-11-26 Richard M. Stallman * editfns.c (Fdelete_field): Make it noninteractive. Return nil. 1999-11-26 Gerd Moellmann * puresize.h (BASE_PURESIZE): Increase to 550000. * textprop.c (set_text_properties): New function. Like Fset_text_properties, but with additional parameter SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after changes. (Fset_text_properties): Use it. * insdel.c (insert_1_both): Call set_text_properties with last parameter nil so that no after changes will be signaled. * lisp.h: Add prototype for set_text_properties. * xfaces.c (set_lface_from_font_name): Fix previous change. (recompute_basic_faces): Change assert to abort. 1999-11-25 Dave Love * fns.c (Fnthcdr, Fnreverse): Inline cdr. (Fmember, Fdelq, Fdelete): Inline car. (Fy_or_n_p): Doc fix. 1999-11-25 Gerd Moellmann * xfaces.c (set_lface_from_font_name): New parameter may_fail_p. Callers changed. If specified font name is bogus, and may_fail_p is not set, try to use a reasonable default. * dispnew.c (direct_output_for_insert): Set glyph row's displays_text_p flag. Correct window's window_end_vpos if necessary. 1999-11-25 Paul Eggert * emacs.c (fixup_locale): Don't bother to record initial locale. (synchronize_locale): If the desired locale is nil, treat it as if it were the empty string, so that we set the locale from the environment. 1999-11-25 Kenichi Handa * fileio.c (Finsert_file_contents): Set buffer-file-coding-system of the current buffer via Fset. 1999-11-24 Dave Love * xfaces.c: Don't duplicate Qmode_line definition done elsewhere. * xfns.c: Don't duplicate Qdisplay definition done elsewhere. 1999-11-24 Gerd Moellmann * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0. * emacs.c (PVEC_FLAG): New variable. 1999-11-23 Gerd Moellmann * unexaix.c (unexec): Use unsigned instead of uintptr_t because that fails on IBM PowerPC, AIX 4.2. 1999-11-22 Eli Zaretskii * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc string of mode-line-format. Remove the obsolete %t. 1999-11-22 Gerd Moellmann * dispnew.c (direct_output_for_insert): Increment glyph positions for glyphs from buffer text only. * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits) (gdb_data_seg_bits): New variables. * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't work on systems not allowing enumerators > INT_MAX, and it won't work if EMACS_INT is long long. 1999-11-22 Paul Eggert Port to SunOS 4.1.x again. Help out with Alpha port. Rename messages-locale to system-messages-locale, and likewise for time-locale. * callproc.c (strerror): Remove decl. * fileio.c (strerror): Likewise. * process.c (strerror): Likewise. * emacs.c (strerror): Likewise. (Vsystem_messages_locale): Renamed from Vmessages_locale. All uses changed. (Vprevious_system_messages_locale): Likewise, from Vprevious_messages_locale. (Vsystem_time_locale): Likewise, from Vtime_locale. (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale. (ABORT_RETURN_TYPE): New macro. (abort): Return type is now ABORT_RETURN_TYPE. (main): Always invoke init_signals, even if POSIX_SIGNALS is not defined. (syms_of_emacs): messages-locale -> system-messages-locale, previous-messages-locale -> previous-system-messages-locale, time-locale -> system-time-locale, previous-time-locale -> previous-system-time-locale. * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined. (const): Do not define; that's config.h's job. (): Include if HAVE_LIMITS_H is defined. (CHAR_BIT): Move test for definedness outside of limits.h condition. (): Include if STDC_HEADERS is defined. (FREE_RETURN_TYPE): New macro. (free): Return type is now FREE_RETURN_TYPE. * lisp.h (synchronize_system_time_locale): Renamed from synchronize_time_locale. All uses changed. (synchronize_system_messages_locale): Likewise, from synchronize_messages_locale. * m/alpha.h (malloc, realloc, calloc): Remove decls; stdlib.h now does this. * process.c (sys_siglist): Remove. * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE): New macros. * syntax.c (scan_sexps_forward): Use abort, not assert. * sysdep.c (my_sys_siglist): New var. (sys_siglist): New macro. Remove old initialized vars of same name. (init_signals): Initialize sys_siglist. * xfns.c (abort): Remove decl; stdlib.h now does this. 1999-11-18 Dave Love * filelock.c: Add forward declaration for get_boot_time_1. * dispnew.c (Finternal_show_cursor_p): Fix doc string. 1999-11-18 Gerd Moellmann * buffer.h (struct buffer_text): Add comment about moving buffer text if REL_ALLOC is defined. 1999-11-18 Kenichi Handa * lisp.h (KEY_DESCRIPTION_SIZE): New macro. * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free memory for push_key_description. * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to allocate memory for push_key_description. (describe_buffer_bindings): Likewise. 1999-11-17 Gerd Moellmann * xfns.c (Fx_show_busy_cursor): Doc-fix. (Fx_hide_busy_cursor): Ditto. 1999-11-17 Marco Walther * unexsni.c (unexec): Handle .rel.dyn section. 1999-11-16 Dave Love * doc.c (Fdocumentation): Remove gcpro here too. 1999-11-16 Gerd Moellmann * keyboard.c (command_loop_1): Remove no_redisplay. 1999-11-16 Richard M. Stallman * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing in noninteractive. 1999-11-14 Gerd Moellmann * xdisp.c (ensure_echo_area_buffers): New. (with_echo_area_buffer): Use it. (setup_echo_area_for_printing): Ditto. * buffer.c (indicate-empty-lines): Doc-fix. 1999-11-12 Gerd Moellmann * term.c (term_init): If "op" isn't available, don't support color because we can't switch back to the default foreground and background. * doc.c (Fdocumentation_property): Remove GCPRO because Fsubstitute_command_keys gcpro's the string. 1999-11-12 Kenichi Handa * editfns.c (Ftranslate_region): Check the buffer multibyteness. 1999-11-11 Gerd Moellmann * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c, lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h, buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES. 1999-11-10 Gerd Moellmann * xfns.c (QCuser_data): Removed. (syms_of_xfns): Initialization of QCuser_data removed. (parse_image_spec): Don't handle :user-data specially. Allow unknown keys. Remove parameter ALLOW_OTHER_KEYS. (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p) (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call parse_image_spec accordingly. 1999-11-09 Richard M. Stallman * cmds.c (Fbeginning_of_line): Doc fix. (Fend_of_line): Doc fix. * editfns.c (Fline_beginning_position): If N is not 1, pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE. * syntax.c (Fforward_word): Handle fields even if would have hit an edge of the buffer. Return nil if affected by fields. 1999-11-09 Richard M. Stallman * editfns.c (preceding_pos): Function deleted. (text_property_stickiness): Decrement POS directly. Fix a confusion that used PT instead of POS. * editfns.c (find_field): Properly handle the case of a field boundary where `field' inherits from neither side. * editfns.c (Ffield_beginning, Ffield_end): Doc fixes. (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes. 1999-11-08 Gerd Moellmann * bytecode.c (Fbyte_code) : Do the BEFORE_POTENTIAL_GC before DISCARD. 1999-11-07 Gerd Moellmann * alloc.c (Fgarbage_collect): Call unmark_byte_stack. * lisp.h: Add prototype for unmark_byte_stack. * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK. (unmark_byte_stack): Renamed from relocate_byte_pcs. Use XUNMARK. * xdisp.c (resize_mini_window): Fix computation of needed mini-window height. * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional compilation on USE_TEXT_PROPERTIES. * bytecode.c (Fbyte_code): Use block statements in cases and declare v1 and v2 locally there. Rearrange case statements so that those most frequently executed come first. Avoid goto's in frequently executed cases. 1999-11-05 Gerd Moellmann * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC around internal_catch. * alloc.c (Fgarbage_collect): Call mark_byte_stack and relocate_byte_pcs. (init_alloc_once, init_alloc): Set byte_stack_list to null. * eval.c (struct catchtag): Add member byte_stack. (internal_catch, Fcondition_case, internal_condition_case) (internal_condition_case_1): Save value of byte_stack_list in catchtag. (unwind_to_catch): Restore byte_stack_list from catchtag. * lisp.h: Add prototypes for new functions in bytecode.c. Add extern declaration for byte_stack_list. * bytecode.c (struct byte_stack): New. (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New. (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten. (HANDLE_RELOCATION): Removed. (Fbyte_code): Use byte_stack structures. * filelock.c (Ffile_locked_p): Make FILENAME a required argument. * buffer.c (syms_of_buffer): Extend documentation of mode-line-format. 1999-11-04 Gerd Moellmann * editfns.c (Fdelete_field): Renamed from Ferase_field. * minibuf.c (do_completion, Fminibuffer_complete_word): Use Ferase_field instead of Fdelete_field. 1999-11-03 Gerd Moellmann * dispnew.c (Finternal_show_cursor): Change it to set the cursor on/off, not toggle its state. (Finternal_show_cursor_p): New. (syms_of_display): Defsubr Sinternal_show_cursor_p. 1999-11-03 Dave Love * charset.c (split_non_ascii_string): Define return value. 1999-11-03 Gerd Moellmann * minibuf.c (string_to_object): New. (read_minibuf_noninteractive): New. (read_minibuf): Call read_minibuf_noninteractive if noninteractive. Use string_to_object. * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO. 1999-11-02 Dave Love * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1). * process.c: Define _GNU_SOURCE before config.h to get strsignal declared with glibc2. 1999-11-02 Gerd Moellmann * lisp.h (QUIT): Give it statement form. 1999-11-02 Dave Love * eval.c (init_eval): Conditionalize declaration of gcpro_level. 1999-11-02 Gerd Moellmann * xfns.c (QCuser_data): New. (syms_of_xfns): Initialize QCuser_data. (parse_image_spec): Ignore :user-data DATA properties. * xdisp.c (display_line): Set charpos of first glyph in blank lines not corresponding to any text to -1, even if no glyphs are filled in in that line. 1999-11-01 Gerd Moellmann * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using png_get_sRGB in #ifdef. * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor. (syms_of_display): Use the new name. * textprop.c (verify_interval_modification): Signal text-read-only instead of calling error. * data.c (Qtext_read_only): New built-in error. (syms_of_data): Initialize it. * lisp.h: Add extern declaration for Qtext_read_only. * syntax.c: Remove whitespace after open or in front of closing parentheses. 1999-11-01 Richard M. Stallman * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h. 1999-10-31 Gerd Moellmann * xdisp.c (resize_mini_window): Compute needed height differently. * fns.c (Flength): Unroll loop over lists. * xdisp.c (append_space): Return non-zero if space was appended. (display_line): Set charpos of first glyph to -1 only if that glyph is the space added by append_glyph. 1999-10-30 Richard M. Stallman * print.c (strout): Consider `noninteractive' and use stdout only when PRINTCHARFUN is t. * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'. (gcpro_level): Declare it extern. [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5): Alternate definitions that set `level' and increment `gcpro_level'. [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level. * eval.c [DEBUG_GCPRO] (gcpro_level): New variable. (init_eval) [DEBUG_GCPRO]: Initialize it. (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level from remaining gcprolist. 1999-10-29 Kenichi Handa * coding.c (code_convert_region): Update `dst' correctly. 1999-10-28 Gerd Moellmann * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc) (Frassoc): Rewritten. 1999-10-27 Noah Friedman * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'. Define PTY_NAME_SPRINTF. Redefine PTY_TTY_NAME_SPRINTF. * config.in: Add undef for HAVE_DEV_PTMX. 1999-10-26 Richard M. Stallman * regex.c (POP_FAILURE_POINT): Use failure_id.integer as arg to DEBUG_POP and DEBUG_PRINT. 1999-10-27 Richard M. Stallman * data.c (Qad_activate_internal): Renamed from Qad_activate. (Ffset): Call Qad_activate_internal. (syms_of_data): Initialize Qad_activate_internal. 1999-10-27 Gerd Moellmann * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if Vterminal_frame is selected and Vwindow_system is non-nil. 1999-10-26 Gerd Moellmann * xdisp.c (echo_area_display): Put previous change in #if 0. * emacs.c (standard_args): Add `file' as synonym for `visit', `execute' as synonym for `eval'. (main): Add new options to usage message. 1999-10-25 Gerd Moellmann * data.c (Qhash_table): New. (Ftype_of): Return it for hash tables. (syms_of_data): Initialize Qhash_table. 1999-10-25 Richard M. Stallman * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer. 1999-10-24 Ken Raeburn * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including lisp.h. * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer, Fbuffer_local_variables, Fother_buffer, record_buffer, set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables, swap_out_buffer_local_variables, overlays_at, overlays_in, overlay_touches_p, overlay_strings, recenter_overlay_lists, fix_overlays_in_range, fix_overlays_before, Foverlay_get, Foverlay_put, report_overlay_modification, evaporate_overlays): Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member references. * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr, swap_in_symval_forwarding, set_internal, default_value, Fset_default, Fmake_variable_buffer_local, Fmake_local_variable, Fmake_variable_frame_local, Flocal_variable_p, Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long, Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise. * dispnew.c (Fframe_or_buffer_changed_p): Likewise. * emacs.c (main): Likewise. * fontset.c (fs_load_font, fs_register_fontset, CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset, Fnew_fontset, Fset_fontset_font): Likewise. * frame.c (do_switch_frame, next_frame, prev_frame, other_visible_frames, Fdelete_frame, Fvisible_frame_list): Likewise. * keyboard.c (read_char, help_char_p, event_to_kboard, kbd_buffer_get_event, timer_start_idle, timer_check, make_lispy_event, apply_modifiers, reorder_modifiers, Fevent_convert_list, lucid_event_type_list_p, menu_bar_items, menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item, tool_bar_items, read_char_x_menu_prompt, read_key_sequence, Fcommand_execute, Fexecute_extended_command): Likewise. * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion, Fall_completions): Likewise. * window.c (Fset_window_margins): Likewise. * callint.c (quotify_args): Don't explicitly use struct Lisp_Cons, use Lisp_Object and XCAR/XCDR instead. * s/netbsd.h (HAVE_GETLOADAVG): Define as 1. (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions, if __ELF__ is defined. 1999-10-24 Gerd Moellmann * window.c (Fnext_window): Add a QUIT in the loop. 1999-10-23 Gerd Moellmann * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs): New targets. 1999-10-22 Dave Love * emacs.c (main): Enable profiling conditional on __linux also. 1999-10-20 Gerd Moellmann * xrdb.c (x_load_resources): Set default resources for resource classes instead of for the specific Emacs. 1999-10-19 Gerd Moellmann * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h defines it that way. * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if selected_frame is equal to Vterminal_frame. 1999-10-19 Paul Eggert Add support for large files, 64-bit Solaris, system locale codings. * Makefile.in (emacs): Set the LC_ALL environment variable to "C" when dumping, so that the dumped Emacs doesn't have stray locale info. (dired.o): Depend on systime.h. (editfns.o): Depend on coding.h. * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c, dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c, keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c, unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c, w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Include before any system include files. * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c, m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Do not include , as does this now. * callproc.c (Fcall_process): Synchronize messages locale before invoking strerror. Decode resulting string with locale-coding-system. * coding.c (Vlocale_coding_system): New var. (syms_of_coding): Adjust to above change. (emacs_strerror): New function. * coding.h (emacs_strerror, Vlocale_coding_system): New decls. * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING, HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN, HAVE_STRSIGNAL): New macros. (BITS_PER_LONG): Default to 64 if _LP64 is defined. : Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't. * dired.c: Include "systime.h". (Ffile_attributes): Do not cast s.st_size to int; this loses information if int is 32 bits but st_size and EMACS_INT are larger. Treat large device numbers like large inode numbers. * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available. * editfns.c: Include coding.h. (emacs_strftime): Remove decl. (emacs_strftimeu): New decl. (emacs_memftimeu): Renamed from emacs_memftime; new arg UT. Use emacs_strftimeu instead of emacs_strftime. (Fformat_time_string): Convert format string using Vlocale_coding_system, and convert result back. Synchronize time locale before invoking lower level function. Invoke emacs_memftimeu, passing ut, instead of emacs_memftime. * emacs.c: Include if HAVE_SETLOCALE is defined. (Vmessages_locale, Vprevious_messages_locale, Vtime_locale, Vprevious_time_locale): New variables. (main): Invoke setlocale early, so that initial error messages are localized properly. But skip locale-setting if LC_ALL is "C". Fix up locale when it's safe to do so. (fixup_locale): Moved here from xterm.c. (synchronize_locale, synchronize_time_locale, synchronize_messages_locale): New functions. (syms_of_emacs): Accommodate above changes. * fileio.c (report_file_error): Convert strerror output according to Vlocale_coding_system. (Finsert_file_contents): Check for arithmetic overflow in computations that depend on file size. Report IO errors with emacs_strerror, not strerror. * fns.c (Fgethash): Declare dflt parameter. * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H is defined; that's config.h's job. * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64, default these values to long, BITS_PER_LONG, and unsigned long. (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT. (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int. (code_convert_string_norecord, fixup_locale, synchronize_messages_locale, synchronize_time_locale, emacs_open, emacs_close, emacs_read, emacs_write): New decls. All Emacs callers of open, close, read, write changed to use emacs_open, emacs_close, emacs_read, emacs_write. * lread.c (file_offset, file_tell): New macros. All uses of ftell changed to file_tell. (saved_doc_string_position, prev_saved_doc_string_position): Now of type file_offset. (init_lread): Do not fix locale here; fixup_locale now does this. * m/amdahl.h, s/usg5-4.h: (NSIG): Remove. (NSIG_MINIMUM): New macro. * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h, m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/umips.h, s/usg5-4.h: (SIGIO): Do not undef. (BROKEN_SIGIO): New macro. * m/ustation.h: (SIGTSTP): Do not undef. (BROKEN_SIGTSTP): New macro. * s/gnu-linux.h: (SIGPOLL, SIGURG): Do not undef. (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros. * s/ptx4.h: (SIGINFO): Do not undef. (BROKEN_SIGINFO): New macros. * m/delta.h, s/ptx.h, s/template.h: Doc fix. * mktime.c, strftime.c: Update to glibc 2.1.2 version, with some Emacs-related changes merged. * print.c (float_to_string): Prepend "-" to representation of a NaN if the NaN is negative. * process.c (sys_siglist): Omit if HAVE_STRSIGNAL. (wait_reading_process_input): Use emacs_strerror, not strerror. * process.c (status_message, sigchld_handler): Synchronize locale, then use strsignal istead of sys_siglist. * w32proc.c (sys_wait): Likewise. * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h, s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h, s/usg5-3.h, s/xenix.h: (open, close, read, write, INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove. * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros. * sysdep.c (sys_read, sys_write, read, write, sys_close, close, sys_open, open): Remove. (emacs_open, emacs_close, emacs_read, emacs_write): Always define; the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO macros are no longer used. (emacs_open): Renamed from sys_open. Merge BSD4_1 version. (emacs_close): Renamed from sys_close. (emacs_read): Renamed from sys_read. (emacs_write): Renamed from sys_write. (sys_siglist): Do not declare if HAVE_STRSIGNAL. (dup2): Do not print error on failure; the real dup2 doesn't. (strsignal): New function, defined if !HAVE_STRSIGNAL. * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO is defined. (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise. (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM. (strsignal): Declare if !HAVE_STRSIGNAL. * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros. (ElfW): Define in terms of ElfExpandBitsW. * w32proc.c (sys_siglist): Remove decl. * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply with ANSI C. (display_string): Declare face_string_pos arg. * xfns.c (Fx_show_tip): Declare timeout param. * xterm.c: No need to include locale.h. (x_alloc_lighter_color, x_setup_relief_color): Pass arg as double, not float, for compatibility with ANSI C. (fixup_locale): Move to emacs.c. (x_term_init): Do not setlocale or fixup locale; the main program does this now. 1999-10-18 Dave Love * doc.c (Fdocumentation_property): Gcpro `tem'. 1999-10-18 Kenichi Handa * lread.c (Fload): Calculate bytes of filename correctly. (openp): Likewise. 1999-10-18 Keisuke Nishida * print.c (print_preprocess): In case print-circle is nil, add OBJ to Vprint_number_table only when OBJ is a symbol. 1999-10-18 Kenichi Handa * coding.c (code_convert_string): Add record_unwind_protect to assure setting inhibit_pre_post_conversion back to zero. Take care of the multibyteness of the working buffer. * coding.c (inhibit_pre_post_conversion): New variable. (setup_coding_system): If inhibit_pre_post_conversion is nonzero, ignore post-read-conversion and pre-write-conversion property of the coding system. (code_convert_region_unwind): New function. (code_convert_region): Set inhibit_pre_post_conversion to 1 while running pre-write-conversion and post-read-conversion. (code_convert_string): Likewise. 1999-10-17 Miles Bader * editfns.c: Doc fix. 1999-10-17 Miles Bader * editfns.c (Fconstrain_to_field): Make sure we don't violate the argument preconditions of find_before_next_newline in the case where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS was indeed at the edge. 1999-10-17 Miles Bader * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new ESCAPE_FROM_EDGE parameter to Ffield_beginning. * editfns.c (text_property_eq, text_property_stickiness): Don't use initializers for auto variables of type Lisp_Object. (find_field): Likewise. Use braces around nested ifs. (Fline_end_position): Store the raw eol in a variable, so that the final expression doesn't look so ugly. (Fconstrain_to_field): Doc fix. (preceding_pos): Renamed from `preceeding_pos'. (text_property_stickiness, find_field): Call preceding_pos, not preceeding_pos. 1999-10-17 Miles Bader * editfns.c (Ffield_string_no_properties): New function. (text_property_stickiness, preceeding_pos): New functions. (Ffield_string): Remove PROPS parameter. (find_field): Add MERGE_AT_BOUNDARY parameter. Rewrite to use stickiness of `field' property to resolve ambiguous cases. (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter. (Fconstrain_to_field): Likewise. (syms_of_editfns): Init Sfield_string_no_properties. (Ffield_string, Ferase_field, Ffield_end): Supply new MERGE_AT_BOUNDARY argument to find_field. (Fline_beginning_position, Fline_end_position): Supply new ESCAPE_FROM_EDGE parameter to Fconstrain_to_field. Pass a value of Qt for the ONLY_IN_LINE argument to Fconstrain_to_field (only matters if N != 1). * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter to Fconstrain_to_field. * minibuf.c (Fminibuffer_complete_word): Use Ffield_beginning to find the prompt end. 1999-10-17 Miles Bader * editfns.c (Fconstrain_to_field): Add get/set-current-point behavior when NEW_POS is nil. (find_field): Use XSETFASTINT instead of make_number. * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty input string by seeing where the field begins, instead of looking at text-properties. 1999-10-17 Miles Bader * editfns.c (Qfield): New variable. (find_field, Ferase_field, Ffield_string, Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions. (Fline_beginning_position, Fline_end_position): Constrain to any field. (make_buffer_string_both): Remove minibuffer-prompt hack. (syms_of_editfns): Initialize Qfield, and subr entries for field functions above. * minibuf.c (read_minibuf): Don't save minibuffer prompt length on minibuf_save_list. Don't initialize minibuffer prompt length. Wrap prompt text-properties around the entire prompt. Add 'prompt text-property to prompt. Get final value with Ffield_string instead of make_buffer_string. (read_minibuf_unwind): Don't restore minibuffer prompt length from minibuf_save_list. (do_completion): Get minibuffer input with Ffield_string instead of Fbuffer_string. Erase minibuffer input with Ferase_field instead of erase_buffer. (Fminibuffer_complete_and_exit): Likewise. Test whether buffer is empty by looking for the 'prompt text property at the end. Set prompt length by looking for the end of the prompt text property, and save prompt length for later use (since there is no longer a buffer variable to get it from). (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed. (syms_of_minibuf): Remove initializations of Sminibuffer_prompt_width and Sminibuffer_prompt_end. * buffer.h (struct buffer): Remove prompt_end_charpos field. * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer): Don't initialize prompt_end_charpos field. * syntax.c (Fforward_word): Likewise. Constrain to any field. 1999-10-16 Gerd Moellmann * window.c (enum save_restore_action): New. (save_restore_orig_size): Change parameter list. Add functionality to check for valid orig_top and orig_height members in a window tree. (grow_mini_window): Call save_restore_orig_size with new parameter list. (shrink_mini_window): Restore old window sizes only if old size information is valid in all windows in a window tree. 1999-10-15 Gerd Moellmann * xmenu.c (set_frame_menubar): Don't call x_set_menu_resources_from_menu_face here. (update_frame_menubar): Call x_set_menu_resources_from_menu_face. * xfns.c (gif_load): Fix handling of interlaced GIFs. 1999-10-14 Dave Love * xdisp.c (handle_fontified_prop): GCPRO `pos'. 1999-10-14 Gerd Moellmann * process.c (Fopen_network_stream): Don't loop if gethostbyname fails and h_errno is TRY_AGAIN. 1999-10-13 Dave Love * filelock.c (lock_file): Move gcpro of `fn'. 1999-10-10 Gerd Moellmann * keyboard.c (auto-save-interval): Fix documentation. 1999-10-09 Richard M. Stallman * print.c (print): When removing objects from Vprint_number_table, only scan the newly added objects. (print_preprocess): If OBJ is a gensym, and print-continuous-numbering, unconditionally force it to stay in the table. 1999-10-09 Gerd Moellmann * xfns.c (prepare_image_for_display): Don't try to load image if loading it failed before. (lookup_image, prepare_image_for_display): Remember if loading the image failed. (xpm_load): Add missing UNBLOCK_INPUT. * dispextern.h (struct image): New member load_failed_p. 1999-10-08 Stefan Monnier * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file' in the docstring. 1999-10-08 Gerd Moellmann * xterm.c (XTread_socket) : Don't call XSetInputFocus because that can generate additional FocusIn events. 1999-10-07 Jeffrey C Honig * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP. 1999-10-07 Richard M. Stallman * process.c (wait_reading_process_input): When trying to suck input from one process, for accept-process-output, exit that loop if we get EAGAIN or EWOULDBLOCK. 1999-10-07 Gerd Moellmann * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p. (Fbitmap_spec_p): Replaces Fpixmap_spec_p. (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of Fpixmap_spec_p and Qpixmap_spec_p. (load_face_colors, check_lface_attrs, merge_face_vector_with_property, Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p. (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr Fbitmap_spec_p. 1999-10-07 Gerd Moellmann * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of MODE_LINE_FACE_ID. * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers. (struct x_resources) [USE_X_TOOLKIT]: New. (xm_apply_resources, xm_set_menu_resources_from_menu_face) [USE_MOTIF]: New. (xl_apply_resources, xl_set_menu_resources_from_menu_face) [USE_LUCID]: New. (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New. (Qmenu): New. (syms_of_xfaces): Initialize Qmenu. (realize_basic_faces): Realize face `menu'. (resolve_face_name): New. (lface_from_face_name): Use it. (Finternal_set_lisp_face_attribute): Ditto. (Fpixmap_spec_p): Rewritten. Extend doc string. * xmenu.c (set_frame_menubar, xmenu_show): Call x_set_menu_resources_from_menu_face. * dispextern.h (enum face_id): Add MENU_FACE_ID. (toplevel): Include X11/Intrinsic.h. 1999-10-03 Ken'ichi Handa * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR correctly. 1999-09-30 Kenichi Handa * category.c (modify_lower_category_set): Set default value of TABLE correctly. * minibuf.c (Fminibuffer_complete_word): Calculate string byte size correctly. 1999-09-29 Gerd Moellmann * editfns.c (Fpropertize): Renamed from Fproperties. 1999-09-29 Gerd Moellmann * xdisp.c (resize_mini_window): Do nothing if frame is an X frame that hasn't been initialized yet. 1999-09-28 Richard M. Stallman * keymap.c (Fsingle_key_description): Make tem big enough. (describe_buffer_bindings): Make buf big enough. 1999-09-27 Richard M. Stallman * intervals.c (get_local_map): Use indirect_function, not Findirect_function. 1999-09-27 Dave Love * cm.h: Remove unneeded declaration of ospeed. 1999-09-26 Gerd Moellmann * lisp.h (toplevel): Add prototype for next_single_char_property_change. * textprop.c (next_single_char_property_change): New. * xdisp.c (display_prop_end, invisible_text_between_p): Use next_single_char_property_change. 1999-09-25 Gerd Moellmann * editfns.c (Fproperties): New. (syms_of_editfns): Defsubr it. * xfns.c (lookup_image): Set image's timestamp because it's used when we look it up. 1999-09-23 Gerd Moellmann * window.c (enlarge_window): Add window parameter instead of using selected_window. (Fdisplay_buffer): Call it with window parameter instead of setting selected_window. (Fenlarge_window, Fshrink_window): Ditto. (shrink_mini_window): If there is no recorded height and position info, resize mini-window to height 1. * xfns.c (image_error): Use add_to_log. * xfaces.c (load_pixmap): Call add_to_log without frame parameter. (load_face_font_or_fontset, load_color, merge_face_vector_with_property): Ditto. * dispextern.h: Add prototype for add_to_log. * xfaces.c (add_to_log): Move to xdisp.c. * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame parameter. 1999-09-23 Gerd Moellmann * xterm.c (XTread_socket) : Change #ifdef USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS. * xdisp.c (resize_mini_window): Use grow_mini_window and shrink_mini_window. * window.c (window_min_size): Add parameter ignore_fixed_p. (change_window_height): Call window_min_size with new parameter. (shrink_window_lowest_first, save_restore_orig_size, grow_mini_window, shrink_mini_window): New. (make_window, replace_window): Initialize orig_top and orig_height. (enlarge_window): Renamed from change_window_height. Make it static. (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call enlarge_window instead of change_window_height. * window.h (struct window): New members orig_top, orig_height. (toplevel): Add prototypes for grow_mini_window and shrink_mini_window. Remove prototype for change_window_height. 1999-09-21 Eli Zaretskii * frame.c (frame_name_fnn_p): Fix previous change. 1999-09-20 Gerd Moellmann * minibuf.c (toplevel): Move include of stdio.h to other includes. * dispnew.c (direct_output_for_insert): Cast arguments to safe_bcopy to char *. * lread.c (readchar): Remove unused variables. (read_filtered_event, read1, Fmapatoms): Ditto. (toplevel): Include intervals.h. * eval.c (Fsignal): Remove unused variables. (Fcommandp, do_autoload): Ditto. * lisp.h: Add prototype for safe_bcopy, fatal. * editfns.c (init_editfns): Remove unused variables. (Fgoto_char, Fchar_after, Fformat): Ditto. (message_text, message_length): Put in #ifndef HAVE_MENUS. * data.c (find_symbol_value): Remove unused variables. (Faref, Fstring_to_number): Ditto. (toplevel): Include stdio.h. (Fnumber_to_string): Cast XINT to long for %ld. * casefiddle.c (casify_object): Remove unused variables. (casify_region): Ditto. * filelock.c (get_boot_time): Put local variable used in conditinally compiled section in #ifdef. (toplevel): Include stdio.h. * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector, keys_of_keymap, syms_of_keymap): Remove unused variables. 1999-09-20 Gerd Moellmann * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows whose corresponding window rows have been disabled in try_window_id. 1999-09-20 Gerd Moellmann * xdisp.c (compute_window_start_on_continuation_line): Handle case that window start is out of range. (handle_display_prop, handle_single_display_prop): Replace marginal area specifications like `left-margin' with `(margin left-margin)'. (Qmargin): New. (syms_of_xdisp): Initialize Qmargin. 1999-09-19 Gerd Moellmann * syntax.c (update_syntax_table, find_defun_start, back_comment, describe_syntax, skip_chars): Remove unused variables. (back_comment, forw_comment): Add braces to if-statement with if-else as dependent statement. * process.c (list_processes_1): Remove unused variables. (Fopen_network_stream, create_process): Add parentheses to conditional expressions. (create_process): Put declaration of sigchld in #if 0. (Fopen_network_stream): Removed unused variables. (Fopen_network_stream, wait_reading_process_input, wait_reading_process_input, send_process, send_process): Ditto. (toplevel): Add prototypes for set_waiting_for_input and keyboard_bit_set. * abbrev.c (Fexpand_abbrev): Remove unused variables. * textprop.c (Fset_text_properties): Remove unused variables. (text_property_list, verify_interval_modification, interval_has_all_properties): Ditto. * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h. (Fcall_process): Remove unused variable. * keyboard.c (Frecursive_edit): Remove unused variable. (command_loop_1, safe_run_hooks, kbd_buffer_get_event, timer_check, make_lispy_event, menu_bar_items, menu_bar_one_keymap, menu_bar_item, parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence, kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt, read_key_sequence): Ditto. Fread_key_sequence, Fread_key_sequence_vector, Fsuspend_emacs): Ditto. (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only used when GOBBLE_FIRST_EVENT is defined in #ifdef (Fexecute_extended_command): Cast XINT to long for %ld. (toplevel) [HAVE_UNISTD_H]: Include unistd.h. (toplevel): Include sys/types.h. * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom. (toplevel): Add prototypes for stuff_char, and code_convert_string_norecord. 1999-09-19 Gerd Moellmann * buffer.h: Add prototype for r_re_alloc. * insdel.c (copy_text): Removed unused variables. (count_combining_after, count_combining_after, insert_1_both, insert_from_string_1, insert_from_buffer_1, check_markers): Ditto. (adjust_after_replace, replace_range): Add parentheses to logical expressions. Remove unused variables. (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical expression. * alloc.c (Fgarbage_collect): Remove unused variable. (compact_strings): Add parentheses around assignments in conditional context. (toplevel): Put declaration of unused function clear_marks in #if 0 like its definition. * lisp.h: Add prototype for shrink_regexp_cache, sweep_weak_hash_tables. 1999-09-19 Dave Love * process.c (Fopen_network_stream): Use strerror, not gai_strerror. * doc.c (read_bytecode_char): Declare arg. * lisp.h: Declare Fcurrent_message, Fmake_temp_name, read_bytecode_char, Fx_hide_busy_cursor, getloadavg. 1999-09-18 Richard Stallman * xdisp.c (echo_area_display): Turn off code that returned without doing anything when using a terminal frame. 1999-09-17 Richard M. Stallman * unexelf.c (unexec): Don't get confused by a short section just before the bss section. 1999-09-16 Gerd Moellmann * emacs.c (main): Remove unused variables. (sort_args, Fkill_emacs, Fkill_emacs): Ditto. * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings, init_fileio_once, syms_of_sound, init_xfns, init_fns init_sound, check_message_stack. * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h. * intervals.c (rotate_right, rotate_left): Add braces to avoid ambiguous else warning. (split_interval_left): Remove unused variables. (previous_interval, adjust_intervals_for_deletion, set_point_both, set_point_both, set_intervals_multibyte_1): Ditto. (icount, idepth, zero_length): Move into #if 0 section below original position where these are used. * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free. * buffer.c (Fkill_buffer): Remove unused variables. (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists, fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change, init_buffer_once, (syms_of_buffer): Ditto. * xrdb.c (get_fallback): Remove unused variable. (x_load_resources): Ditto. Put local variable used for Motif only in #ifdef USE_MOTIF. 1999-09-16 Gerd Moellmann * minibuf.c (read_minibuf): Remove unused variables. (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto. (do_completion): Move assignment out of conditional context. (Fdisplay_completion_list): Add parentheses to conditional expression. * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h. * lisp.h: Add prototype for no_switch_window. * window.c (Fset_window_buffer): Remove unused variables. (Fset_window_margins): Ditto. * xdisp.c (resize_mini_window): Temporarily set the selected window's or Vminibuf_scroll_window's height to "fixed" around the call the change_window_height. * window.c (window_fixed_size_p): Check window's height_fixed_p flag. * window.h (struct window): New member height_fixed_p. * dispnew.c (direct_output_forward_char): Don't use this method if showing a message or a message was just cleared because we might need to resize the mini-window. 1999-09-16 Gerd Moellmann * frame.c (Fdelete_frame): Correct local variable pointing to selected frame after selecting new frame. 1999-09-15 Richard Stallman * puresize.h (BASE_PURESIZE): Increase to 525000. * filelock.c (Vtemporary_file_directory): New variable. (syms_of_filelock): Set up Lisp variable. 1999-09-15 Gerd Moellmann * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while. (encode_terminal_code): Remove unused variables. (turn_off_face): Ditto. (toplevel): Include termcap.h if HAVE_TERMCAP_H. * dispnew.c (update_frame_line): If writing whole desired line, don't clear to end of line if already at the end. 1999-09-15 Gerd Moellmann * xdisp.c (resize_mini_window): Don't report changed window height if it actually hasn't changed. * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove unused variables. (mark_shell_size_user_specified): Put in #if 0 because not used. (create_frame_gcs): Put in #if 0 because currently unused. (first_frame_p): Ditto. * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu, single_submenu, update_frame_menubar, set_frame_menubar, free_frame_menubar, xmenu_show, xdialog_show): Remove unused variables. * print.c (PRINTFULLP): Removed because it is no longer used and is misleading. (Ferror_message_string): Remove unused variables. (print_object): Cast argument of sprintf to long for `%ld' specifier. Remove unused variable. 1999-09-14 Gerd Moellmann * sound.c (Fplay_sound): Remove usused variables. (be2hs): Put in #if 0 because it's currently not used. 1999-09-14 Ken Raeburn * print.c (Ferror_message_string, print_error_message, print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit member access. 1999-09-14 Gerd Moellmann * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while. * frame.c (Fnext_frame): Remove unused variable(s). (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto. (store_frame_param): Add parentheses to conditional expression. (Fmodify_frame_parameters): Remove unused variables. (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position): Ditto. * xfns.c (x_set_background_color): Remove unused variable(s). (x_set_border_pixel): Ditto. (x_set_menu_bar_lines): Put local variable used only for non-toolkit case in #ifdef/#endif. (x_figure_window_size): Remove unused variable(s). (x_figure_window_size, x_window, lookup_image, xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load, png_load, jpeg_load, gif_load, x_create_tip_frame, x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto. * xterm.c (x_scroll_bar_handle_click): Compile only if not USE_TOOLKIT_SCROLL_BARS. (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto. * dispextern.h: Add prototypes for gamma_correct and x_kill_gs_process. * xterm.c (x_produce_glyphs): Remove unused variable(s). (x_alloc_nearest_color_for_widget, note_tool_bar_highlight, x_set_toolkit_scroll_bar_thumb): Ditto. (x_scroll_bar_create): Move local variable to the conditionally compiled section of code where it is used. (x_scroll_bar_create): Remove unused variable(s). (x_scroll_bar_remove, XTread_socket): Ditto. (XTread_socket) : Move variables used for non-toolkit case into conditionally compiled section of code. * window.h (freeze_window_starts): Fix typo in prototype. * xdisp.c (display_echo_area_1, try_window_id): Remove unused variable(s). * lisp.h: Add prototype for debug_print. * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition to use do-while. * fns.c (SXHASH_COMBINE): Add missing parentheses. (Fchar_table_range, Fset_char_table_default, mapcar1, Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s). * lisp.h: Add prototype for getloadavg. 1999-09-14 Andreas Schwab * process.c (Fopen_network_stream): Avoid socket decriptor leak. * lisp.h: Declare close_file_unwind. 1999-09-14 Richard Stallman * filelock.c (get_boot_time): Make the temp name in the proper dir. 1999-09-13 Gerd Moellmann * xdisp.c (redisplay_window): Make sure start_at_line_beg is always set correctly. 1999-09-13 Dave Love * xdisp.c (move_it_in_display_line_to): Make type consistent with declaration. 1999-09-13 Gerd Moellmann * xdisp.c (QCfile): Move here from xfns.c. (syms_of_xdisp): Initialize it. (message2_nolog): Change for Lisp_Object selected_frame. (message3_nolog, message_with_string, message, setup_echo_area_for_printing, truncate_echo_area, prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto. 1999-09-13 Dave Love * xterm.c: Don't continue #define args for benefit of old cc. (xt_action_hook): Indent #error for benefit of K&R cc. 1999-09-13 Gerd Moellmann * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame. (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto. (XRINGBELL): Removed. 1999-09-13 Dave Love * xfns.c (x_put_x_image): Make type consistent with declaration. * fns.c (Fmake_hash_table): Fix string continuation. 1999-09-13 Gerd Moellmann * xfns.c (QCfile): Moved to xdisp.c. (syms_of_xfns): Don't initialize QCfile. (check_x_frame): Change for Lisp_Object selected_frame. (check_x_display_info, x_get_resource_string): Ditto. 1999-09-13 Gerd Moellmann * minibuf.c (choose_minibuf_frame): Don't try to set the mini-buffer window's buffer, if the buffer is invalid. * xfns.c (QCfile): Moved to xdisp.c. (syms_of_xfns): Don't initialize QCfile. * xdisp.c (QCfile): Move here from xfns.c. (syms_of_xdisp): Initialize it. * lisp.h (selected_frame): Add external declaration. * xselect.c (x_own_selection): Change for Lisp_Object selected_frame. (Fx_store_cut_buffer_internal): Ditto. (Fx_rotate_cut_buffers_internal): Ditto. * xfaces.c (frame_or_selected_frame): Change for Lisp_Object selected_frame. (Finternal_set_lisp_face_attribute): Ditto. (Finternal_get_lisp_face_attribute): Ditto. (Finternal_lisp_face_empty_p): Ditto. (Fdump_face): Ditto. * term.c (OUTPUT): Change for Lisp_Object selected_frame. (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes, set_terminal_window, set_scroll_region, reassert_line_highlight, change_line_highlight, cursor_to, raw_cursor_to, clear_to_end, clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw, encode_terminal_code, write_glyphs, term_init): Ditto. * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame. (kbd_input_ast, read_input_waiting): Ditto. * minibuf.c (choose_minibuf_frame): Change for Lisp_Object selected_frame. (read_minibuf): Ditto. * keyboard.c (command_loop_1): Change for Lisp_Object selected_frame. (cmd_error_internal, command_loop_1, read_char, kbd_buffer_get_event, read_avail_input, read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs, interrupt_signal, quit_throw_to_read_char): Ditto. * fontset.c (Ffont_info): Change for Lisp_Object selected_frame. (Ffontset_info): DItto. * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame. * dispnew.c (selected_frame): Make it a Lisp_Object. (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame. (direct_output_for_insert, direct_output_forward_char, init_display): Ditto. * data.c (swap_in_symval_forwarding): Change for Lisp_Object selected_frame. (set_internal): Ditto. * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame. (record_buffer): Ditto. * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME. (do_switch_frame): Change for Lisp_Object selected_frame. (Fselected_frame): Ditto. (Fframe_first_window): Use SELECTED_FRAME. (Fframe_root_window): Change for Lisp_Object selected_frame. (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame, Fprevious_frame, other_visible_frames, Fdelete_frame, Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame, Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height, Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width, Fset_frame_height, Fset_frame_width): Ditto. 1999-09-13 Gerd Moellmann * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame. (message3_nolog, message_with_string, message, setup_echo_area_for_printing, truncate_echo_area, prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto. * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame. (Fx_popup_dialog): Ditto. * xfns.c (check_x_frame): Change for Lisp_Object selected_frame. (check_x_display_info, x_get_resource_string): Ditto. * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame. (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto. (XRINGBELL): Removed. * window.c (Fminibuffer_window): Change for Lisp_Object selected_frame. (Fwindow_at, Fprevious_window, window_loop, select_window_1, display_buffer_1, Fdisplay_buffer, temp_output_buffer_show, Fcurrent_window_configuration, init_window_once): Ditto. * frame.h (SELECTED_FRAME): New. 1999-09-12 Ken Raeburn * category.c (word_boundary_p): Use XCAR and XCDR. * ccl.c (ccl_driver, resolve_symbol_ccl_program, Fregister_code_conversion_map): Likewise. * coding.c (setup_coding_system, detect_coding_system, Ffind_operation_coding_system, Fset_coding_priority_internal): Likewise. * doc.c (get_doc_string, Fdocumentation, store_function_docstring): Likewise. * editfns.c (save_restriction_restore): Likewise. * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger, skip_debugger, find_handler_clause, Fautoload, Fapply, run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode): Likewise. * fileio.c (Ffind_file_name_handler, Finsert_file_contents, Fwrite_region, do_auto_save_unwind, Fdo_auto_save, Fread_file_name): Likewise. * filelock.c (unlock_all_files): Likewise. * insdel.c (Fcombine_after_change_execute): Likewise. * intervals.c (adjust_intervals_for_insertion): Likewise. * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent, Fset_keymap_parent, fix_submap_inheritance, access_keymap, store_in_keymap, Fcopy_keymap, define_as_prefix, current_minor_maps, Faccessible_keymaps, accessible_keymaps_char_table, Fkey_description, Fwhere_is_internal, where_is_internal_2, where_is_internal_1, describe_buffer_bindings, describe_map_tree, shadow_lookup, describe_map): Likewise. * lread.c (Fload, load_unwind, close_load_descs, read_vector, read_list, init_lread): Likewise. * search.c (Fmatch_data): Likewise. * sunfns.c (Fsun_menu_internal): Likewise. * syntax.c (describe_syntax): Likewise. * undo.c (record_insert, record_delete, Fundo_boundary, truncate_undo_list): Likewise. * vmsproc.c (child_sig): Likewise. * editfns.c (Fformat): Use XFLOAT_DATA. 1999-09-12 Gerd Moellmann * keyboard.c (command_loop_1): Resize mini-window to the exact size of a message displayed, if any. * xdisp.c (resize_mini_window): Add parameter exact_p. Resize to exact size if exact_p is non-zero. (display_echo_area_1): Call resize_mini_window with new parameter. (redisplay_internal): Ditto. (resize_echo_area_axactly): New. * minibuf.c (read_minibuf_unwind): Call resize_mini_window with new parameter. * dispextern.h: Change prototype of resize_mini_window. Add prototype for resize_echo_area_axactly. * xfaces.c (Fx_family_fonts): Replaces Fx_font_list. (syms_of_xfaces): Defsubr accordingly. * xdisp.c (hscroll_window_tree): Choose cursor row from desired or current matrix. (redisplay_internal): Hscroll before updating. 1999-09-12 Gerd Moellmann * syntax.c (Fforward_word): Use prompt_end_charpos instead of minibuffer_prompt_length. * minibuf.c (read_minibuf): Use prompt_end_charpos instead of minibuffer_prompt_length. (read_minibuf_unwind): Ditto. (Fminibuffer_complete_and_exit): Ditto. (Fminibuffer_complete_word): Ditto. (Fminibuffer_prompt_end): Ditto. * editfns.c (Fbuffer_string): Use prompt_end_charpos instead of minibuffer_prompt_length. (Fline_beginning_position): Ditto. * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead of minibuffer_prompt_length. (Fmake_indirect_buffer): Ditto. (Fkill_buffer): Ditto. (Ferase_buffer): Ditto. * buffer.h (prompt_end_charpos): Replaces minibuffer_prompt_length. * minibuf.c (read_minibuf): Return mini-buffer contents without the prompt. * editfns.c (make_buffer_string_both): Take out the code to handle mini-buffer prompts. (Fbuffer_string): Handle the prompt here, instead. * xfaces.c (lface_from_face_name): Resolve face aliases. (Qmode_line): Replaces Qmodeline. (realize_basic_faces): Use Qmode_line. (syms_of_xfaces): Initialize Qmode_line. 1999-09-12 Gerd Moellmann * minibuf.c (read_minibuf): Set minibuf_prompt_width to the current column after inserting prompt. (Fminibuffer_prompt_width): Return minibuf_prompt_width. * xfaces.c (Qframe_update_face_colors): New. (syms_of_xfaces): Initialize call. (update_face_from_frame_parameter): Call that function when the frame's background changes. 1999-09-12 Richard Stallman * insdel.c (del_range_1): Don't treat minibuffer prompt specially. 1999-09-12 Ken Raeburn * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect, mark_object, mark_buffer): Use XCAR and XCDR. * bytecode.c (Fbyte_code): Likewise. * callint.c (Fcall_interactively, Fprefix_numeric_value): Likewise. * callproc.c (Fcall_process, Fcall_process_region, child_setup, getenv_internal): Likewise. * dired.c (file_name_completion): Likewise. * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq, assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse, Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise. * indent.c (Fcompute_motion): Likewise. * process.c (decode_status, Fprocess_status, Fprocess_exit_status, list_processes_1, Fstart_process, Fopen_network_stream, wait_reading_process_input, read_process_output_call, kill_buffer_processes, sigchld_handler, exec_sentinel_unwind, status_notify, wait_reading_process_input): Likewise. * textprop.c (PLIST_ELT_P, property_value, set_properties, extend_property_ranges): Likewise. * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise. * w32fns.c (x_window_to_frame, x_set_frame_parameters, x_report_frame_params, x_set_cursor_type, x_icon_type, x_figure_window_size, Fx_create_frame, w32_load_system_font, w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts, w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts, Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir, x_display_info_for_name, Fx_display_list): Likewise. * w32menu.c (menubar_id_to_frame, single_keymap_panes, Fx_popup_menu, Fx_popup_dialog): Likewise. * w32proc.c (Fw32_set_keyboard_layout): Likewise. * w32term.c (x_window_to_scroll_bar, w32_read_socket, w32_term_init, x_delete_display): Likewise. * xfns.c (x_window_to_frame, x_any_window_to_frame, x_non_menubar_window_to_frame, x_menubar_window_to_frame, x_top_window_to_frame, x_set_frame_parameters, x_report_frame_params, x_set_cursor_type, x_icon_type, x_figure_window_size, Fx_create_frame, x_display_info_for_name, Fx_display_list, x_create_tip_frame): Likewise. * xmenu.c (menubar_id_to_frame, single_keymap_panes, Fx_popup_menu, Fx_popup_dialog): Likewise. * xselect.c (x_own_selection, x_get_local_selection, x_handle_selection_request, x_handle_selection_clear, x_clear_frame_selections, wait_for_property_change_unwind, wait_for_property_change, x_handle_property_notify, copy_multiple_data, x_get_foreign_selection, lisp_data_to_selection_data, clean_local_selection_data, x_handle_selection_notify, Fx_get_selection_internal, x_disown_buffer_selections): Likewise. * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts, x_load_font, x_find_ccl_program, x_term_init, x_delete_display): Likewise. * alloc.c (make_float, make_pure_float, Fpurecopy): Use XFLOAT_DATA. * bytecode.c (Fbyte_code): Likewise. * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver, fmod_float): Likewise. 1999-09-11 Richard Stallman * xdisp.c (run_window_scroll_functions): If hook functions switch buffers, switch back after. 1999-09-11 Ken Raeburn * charset.h (GET_TRANSLATION_TABLE): Use XCDR. * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR. (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA. * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW, POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and XCDR. * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and XCDR. 1999-09-10 Richard Stallman * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent, not RevertToPointerRoot. (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]: Fix the code to clear around the scroll bar. 1999-09-10 Keisuke Nishida * print.c: Support print-circle and related features. (Vprint_gensym_alist): Removed. (Vprint_circle, Vprint_continuous_numbering, print_number_index Vprint_number_table): New variables. (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros. (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist. (print, print_preprocess, print_preprocess_string, print_object): New/modified functions with print-circle feature. Use Vprint_number_table instead of Vprint_gensym_alist for print-gensym. (syms_of_print): Defined new Lisp variables `print-circle', `print-continuous-numbering', `print-number-table'. 1999-09-10 Gerd Moellmann * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)' as background color specification instead of an integer. (image-cache-eviction-delay): Replaces image-eviction-seconds. (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds. (clear_image_cache, syms_of_xfns): Use it. (Qpostscript): Replaces Qghostscript. (gs_type): Use it. (gs_image_p): Ditto. (syms_of_xfns): Initialize Qpostscript. 1999-09-10 Richard Stallman * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt. 1999-09-09 Richard Stallman * editfns.c (Fline_beginning_position): Handle minibuffer prompt here. * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here. 1999-09-09 Gerd Moellmann * fns.c (Fmakehash): Accept just one optional argument TEST. * xfns.c (QCindex): New. (syms_of_xfns): Initialize QCindex. (gif_load): Use it instead of `:image'. 1999-09-09 Richard Stallman * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW. (Fwrite_region) [DOS_NT]: Handle `excl' here too. 1999-09-08 Gerd Moellmann * xdisp.c (Qwhen): Replaces QCwhen. (syms_of_xdisp): Initialized it instead of QCwhen. (handle_single_display_prop): Use it instead of QCwhen. 1999-09-08 Ken'ichi Handa * charset.c (translate_char): Reset MSBs of arguments of MAKE_CHAR. (CHAR_COMPONENTS_VALID_P): Fix for ASCII. 1999-09-08 Lars Magne Ingebrigtsen * editfns.c (Fbufsize): Accept an extra BUFFER parameter. * fns.c (Fbase64_decode_region): Don't place point outside of the current accessible portion. 1999-09-07 Richard Stallman * keymap.c (fix_submap_inheritance): Do nothing if the proper parent is an ancestor of SUBMAP; otherwise, add it as the ultimate ancestor. 1999-09-07 Gerd Moellmann * xdisp.c (handle_single_display_prop): Change conditional display property to `:when FORM . VALUE'. 1999-09-07 Richard Stallman * fileio.c (Fwrite_region): Doc fix. 1999-09-07 Stefan Monnier * fileio.c (Qexcl): New variable. (report_file_error): Handle EEXIST specially. (Fwrite_region): Special handling for CONFIRM = `excl'. (syms_of_fileio): Initialize Qexcl. 1999-09-07 Gerd Moellmann * xfns.c (x_set_foreground_color): Call update_face_from_frame_parameter. (x_set_background_color): Ditto. (x_set_mouse_color): Ditto. (x_set_cursor_color): Ditto. (x_set_border_color): Ditto. (x_set_scroll_bar_foreground): Ditto. (x_set_scroll_bar_background): Ditto. * xfaces.c (recompute_basic_faces): Clear face cache. (Finternal_set_lisp_face_attribute): Modify frame parameters if attributes of certain faces are changed. (update_face_from_frame_parameter): New. * xfaces.c (realize_basic_faces): Realize new basic faces. * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID, CURSOR_FACE_ID, MOUSE_FACE_ID): New. * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New. (syms_of_xfaces): Intialize new symbols. * fns.c (Fmakehash): Take one argument, test, make all the rest keyword arguments. * window.c (Fset_window_margins): Make window the first argument. (set_window_buffer): Call Fset_window_margins with window as first argument. 1999-09-07 Gerd Moellmann * xfaces.c (Qfringe): Replaces Qmargin. 1999-09-07 Kenichi Handa * charset.h: Lots of comments fixed. (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string. (STRING_CHAR_AND_CHAR_LENGTH): This macro removed. * charset.c : Lots of comments fixed. (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string. (CHAR_COMPONENTS_VALID_P): Name changed from CHAR_COMPONENT_VALID_P. Caller changed. 1999-09-06 Richard Stallman * insdel.c (syms_of_insdel): Define Lisp variable inhibit-modification-hooks. 1999-09-06 Michael Sperber [Mr. Preprocessor] * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new unexaix.c. * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c. 1999-09-06 Dave Love * unexaix.c: New version incorporating Michael Sperber's changes from XEmacs. Should solve problems on AIX 4.3. * lread.c (Vbyte_boolean_vars): New variable. (defvar_bool, syms_of_lread): Use it. 1999-09-05 Richard Stallman * minibuf.c (read_minibuf): Put all three properties on the same range, the whole prompt. 1999-09-05 Gerd Moellmann * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook. (Fplay_sound, syms_of_sound): Use it. (parse_sound): Allow float volume values in the range [0, 1]. (Fplay_sound): Ditto. * window.c (Fset_window_vscroll): Make window the first argument, amount to scroll the second. Take non-negative vscroll as argument. (Fwindow_vscroll): Return non-negative vscroll. * xfns.c (Fx_show_tip): Improve documentation. 1999-09-05 Gerd Moellmann * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c, window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change `top-line' and `top_line' to `header-line' and `header_line'. Likewise for similar spellings. 1999-09-05 Gerd Moellmann * xdisp.c (row_containing_pos): New. (try_window_id): Use it. * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c, lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c: Change spelling of `toolbar' to `tool_bar' or `tool-bar'. Likewise for upper-case etc. 1999-09-05 Gerd Moellmann * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]: Fix reference to renamed variable. 1999-09-04 Gerd Moellmann * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size. (window_fixed_size_p): Use Qwindow_size_fixed instead of Qfixed_window_size. (syms_of_window): Ditto. * fns.c (Fmakehash): Exchange optional test and size arguments. 1999-09-03 Gerd Moellmann * xterm.c (XTset_vertical_scroll_bar): Block input when clearing under newly created scroll bar. (expose_window): If window is not yet fully initialized, do nothing. This can happen when toolkit scroll bars are used and a window is split. Reconfiguring the scroll bars will generate an expose for a newly created window. * frame.h (struct frame): New member `gamma'. * xfns.c: Include math.h. Add extern declaration for atof in case we don't see one. (Qscreen_gamma): New. (struct x_frame_parm_table): Add prototypes, add x_set_screen_gamma. (gamma_correct): New function. (defined_color): Call it. (x_set_screen_gamma): New. (x_set_title): Add parameter old_value. (RES_TYPE_FLOAT): New. (x_get_arg): Handle RES_TYPE_FLOAT. (Fx_create_frame): Call x_default_parameter for `screen-gamma'. (lookup_pixel_color): Change call to x_alloc_nearest_color to new prototype. (lookup_rgb_color): Ditto. (syms_of_xfns): Initialize Qscreen_gamma. * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]: New. Allocate color for lwlib widgets. (x_alloc_nearest_color): Change parameter list include the frame on which to allocate colors. Gamma-correct colors. (x_alloc_lighter_color): Call x_alloc_lighter_color with new parameter list. * xterm.h: Change protorype of x_alloc_nearest_color. 1999-09-03 Richard Stallman * callproc.c: Delete the system-independent include of stdlib.h (leaving only the one in the WINDOWSNT conditional). 1999-09-03 Andrew Choi * callproc.c (call-process) [macintosh]: Call mac_run_command in sysdep.c. The Mac code is modeled after the DOS code. * dispextern.h [macintosh]: Include macterm.h to define substitute X Window types and macros. * frame.h: Do nothing if included a second time. (enum output_method): Add mac_output frame type. (union output_data): Add new alternative `mac'. (FRAME_MAC_P): New macro. * frame.c (Fframep) [macintosh]: Handle mac frame type. (syms_of_frame_1): Initialize Qmac. (make_terminal_frame) [macintosh]: Initialize output_data.mac fields. (Fmake_terminal_frame) [macintosh]: Add an alternate error check. (Fmodify_frame_parameters) [macintosh]: Call mac_set_frame_parameter in macterm.c. * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value (512) because Mac compilers limit local data of a function to 32K. * make-docfiles.c: Correctly handle input files with Mac-style eol's. * sysdep.c: Define numerous routines to emulate Unix system calls. * xfaces.c: on MacOS, define the set of colors listed in rgb.txt file of an X Window environment. * xfaces.c: on MacOS, define the Lisp functions x-display-color-p, x-display-grayscale, x-color-defined-p, and x-color-values. * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access) (open, creat, unlink, read, write, rename, fopen, pause, alarm) (signal, sleep, gmtime, localtime, ctime, time, index, mktemp) (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid) (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.): New functions, replacing POSIX features. * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm) (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy): (InitEmacsPasswdDir, run_mac_command): New subroutines. * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName) (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask) (myPasswdDir, TempDirName, sys_siglist): New variables. * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask) (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink) (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl): Define empty stubs so Emacs will link. 1999-09-03 Gerd Moellmann * xdisp.c: Use XCAR and XCDR instead of XCONS. * window.h: New member frozen_window_start_p. * window.c (foreach_window, foreach_window_1): New. (freeze_window_start, freeze_window_starts): New. (make_window): Initialize frozen_window_start_p. (replace_window): Ditto. (Fset_window_point): Remove references to deleted variables. (Fset_window_start): Ditto. * xdisp.c (Vresize_mini_config, resize_mini_frame, resize_mini_initial_height): Removed. (syms_of_xdisp): Remove references to these variables. (resize_mini_window): Don't save window configuration, freeze window starts instead. Enlarge window until displaying an empty buffer, then shrink it. Make the function externally visible. (redisplay_window): Treat frozen window start like forced start, but accept point outside of the window. * dispextern.h: Add function prototype for resize_mini_window. * minibuf.c (read_minibuf_unwind): Resize mini-window when reaching minibuf_level 0. * lisp.h: Remove extern declarations for variables deleted from xdisp.c. * dispnew.c (adjust_frame_glyphs): Remove reference to Vresize_mini_config. 1999-09-03 Gerd Moellmann * xfns.c (x_set_scroll_bar_width): Change conditional compilation to USE_TOOLKIT_SCROLL_BARS. * xterm.c (x_scroll_bar_create): Don't clear under scroll bar here. (XTset_vertical_scroll_bar): Clarify position computations. Clear under newly created scroll bar. Put toolkit scroll bars in the middle of the area reserved for the scroll bar. 1999-09-03 Kenichi Handa The following changes are for the new handling of mulitbyte sequence. Now, except for a composite character, no multibyte character in string/buffer has trailing garbage bytes. For instance, the length of string "\201\300\300" is now 2, the first character is Latin-1 A-grave, the second is raw \300. * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2 are negative. (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0. (VALID_MULTIBYTE_CHAR_P): This macro deleted. (PARSE_COMPOSITE_SEQ): New macro. (PARSE_CHARACTER_SEQ): New macro. (PARSE_MULTIBYTE_SEQ): New macro. (CHAR_PRINTABLE_P): New macro. (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char. (STRING_CHAR_AND_LENGTH): Likewise. (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH. (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ. (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise, * charset.c (SPLIT_COMPOSITE_SEQ): New macro. (SPLIT_CHARACTER_SEQ): New macro. (SPLIT_MULTIBYTE_SEQ): New macro. (CHAR_COMPONENT_VALID_P): New macro. (non_ascii_char_to_string): Generate a multibyte sequence as far as possible. (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ. (split_non_ascii_string): Likewise. (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ. (char_printable_p): New function. (translate_char): Check character by NATNUMP instead of INTEGERP. (unibyte_char_to_multibyte): Call char_valid_p instead of VALID_MULTIBYTE_CHAR_P. (Fmake_char_internal): Check the arguments more rigidly. (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ. (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P. (Fmultibyte_char_to_unibyte): Check the validity of character by CHAR_VALID_P. (chars_in_text): Call multibyte_chars_in_text. (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ. (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now). * data.c (Faset): Adjust the way to check byte-combining possibility for the new handling of multibyte sequence. * editfns.c (Fsubst_char_in_region): Likewise. * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ. (string_char_to_byte): Likewise. (string_byte_to_char): Likewise. * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the macro STRING_CHAR_AND_LENGTH. Caller changed. * insdel.c (count_combining_composition): New function. (count_combining_before): Adjust the way to check byte-combining possibility for the new handling of multibyte sequence. Call count_combining_composition for a composite character. (count_combining_after): Likewise. * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH. (print): Likewise. * dispextern.h (struct it): Change the size of the member `ctl_chars'. * xdisp.c (get_next_display_element): Display incomplete multibyte sequence (e.g. \222\300) by octal form. 1999-09-02 Gerd Moellmann * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0. * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak. (cmpfn_eql, sxhash): Use XFLOAT_DATA. 1999-09-02 Gerd Moellmann * buffer.c (set_buffer_internal): Never set windows_or_buffers_changed. * xdisp.c (try_window_id): Reset first_unchanged_at_end_row if we have displayed to the bottom of the window. * syntax.c (Fforward_word): Stop at a mini-buffer prompt end in both directions. Extend documentation. 1999-09-01 Gerd Moellmann * minibuf.c (read_minibuf): Flush display after setting cursor to column 0. 1999-08-31 Gerd Moellmann * s/freebsd.h (__FreeBSD_version): Don't define it if it is already defined. This avoids a warning from buffer.c. 1999-08-30 Gerd Moellmann * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width of both margins. (FRAME_X_FLAGS_AREA_WIDTH): Likewise. (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New. (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New. * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS once instead of twice. (FRAME_LEFT_FLAGS_AREA_WIDTH): New. * xterm.c: Remove unused bitmaps. (continued_bits, continuation_bits, overlay_bits): Change images. (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH instead of FRAME_X_FLAGS_AREA_WIDTH. (x_after_update_window_line): Ditto. (x_draw_bitmap): Likewise. (x_draw_row_bitmaps): Likewise. (x_draw_glyph_string_box): Likewise. (x_draw_glyphs): Likewise. (x_scroll_run): Likewise. (expose_window_tree): Likewise. (note_mode_line_highlight): Likewise. (XTset_vertical_scroll_bar): Likewise. (x_clip_to_row): Likewise. (x_set_window_size): Likewise. * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead of 2 * that value. * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of 2 * that value. (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. * window.c (coordinates_in_window): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once instead of twice. * widget.c (set_frame_size): Set flags_area_extra to FRAME_FLAGS_AREA_WIDTH instead of 2 * that width. (EmacsFrameSetCharSize): Ditto. * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract FRAME_FLAGS_AREA_COLS once. (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH. 1999-08-30 Gerd Moellmann * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers in /usr/X11R6/include which are checked for with AC_CHECK_HEADER. 1999-08-30 Gerd Moellmann * fns.c (QCweakness): Replaces QCweak. (Fmake_hash_table): Ditto. (Fmakehash): Ditto. (syms_of_fns): Ditto. 1999-08-29 Richard Stallman * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp. * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args. * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED): Add support for nested comments. * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward): Consolidate the forward comment code into the new `forw_comment'. (forw_comment): New subroutine. Added support for nested comments. (lisp_parse_state, back_comment, Fmodify_syntax_entry) (Fparse_partial_sexp): Add support for nested comments. 1999-08-28 Ken Raeburn * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change names of structure elements if HIDE_LISP_IMPLEMENTATION is defined, to help detect code that uses knowledge of the Lisp internals that it shouldn't have. (XFLOAT_DATA): New macro. 1999-08-25 Gerd Moellmann * syntax.c (Fforward_word): If in a mini-buffer and moving backwards, stop in front of the prompt to prevent accidentially moving into the read-only prompt. * window.c (Frecenter): Clear frame if called with nil or no arg. * xdisp.c (resize_mini_window): Don't resize if Vmax_mini_window_height is nil. Otherwise, use a default if Vmax_mini_window_height is not ot a number. (syms_of_xdisp): Extend documentation of Vmax_mini_window_height. 1999-08-25 Alexandre Oliva * unexelf.c: Merge IRIX debugging info patch from unexsgi.c * m/iris4d.h: Use unexelf for IRIX 5.*. * m/iris5d.h: Use unexelf for IRIX 6.*. * unexsgi.c: Deleted. * unexelf.c: Auto-detect .sbss section. (round_up): Make it static. (unexec): Declare alignment as Elf Word. Skip ``Program segment above .bss'' test on MIPS without .sbss. Copy sections .got and .sdata1 sections. Adjust offsets in sections .sdata, .lit4, .lit8, .got and .sdata1. 1999-08-25 Gerd Moellmann * xdisp.c (try_window_id): Remove typo. 1999-08-24 Gerd Moellmann * xdisp.c (try_window_id): Recognize case that PT == ZV and in unchanged text at the bottom when computing the cursor position. (message3_nolog): Raise frame only if minibuffer_auto_raise is set. * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables. 1999-08-24 Gerd Moellmann * xfaces.c (Qmargin): Replacement for Qbitmap_area. (realize_basic_faces): Replace Qmargin for Qbitmap_area. (syms_of_xfaces): Ditto. * window.c (Fset_window_point): Reset Vresize_mini_config. (Fset_window_start): Ditto. (set_window_buffer): Ditto. * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config. * xdisp.c (redisplay_window): Don't ever test just_this_one_p before calling try_window. (echo_area_display): If height has changed, update other windows. (resize_mini_frame, resize_mini_initial_height): New. (resize_mini_window): Save/restore window configuration differently. * lisp.h (Vresize_mini_config, resize_mini_frame, resize_mini_initial_height): Add extern declarations. * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to CANON_X_UNIT. * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H being redefined in jconfig.h. 1999-08-23 Ken'ichi Handa * coding.h: Include "ccl.h" instead of "../src/ccl.h". 1999-08-22 Gerd Moellmann * alloc.c (mark_glyph_matrix): Mark strings only. * xdisp.c (redisplay_internal): Clear garbaged frames after resizing mini-window. 1999-08-22 Gerd Moellmann * xdisp.c (unwind_with_echo_area_buffer): Use set_buffer_internal_1 instead of set_buffer_internal. (with_echo_area_buffer): Ditto. * buffer.c (set_buffer_internal): Set windows_or_buffers_changed only if buffer is displayed somewhere. * buffer.h (BUF_COMPUTE_UNCHANGED): New. * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED. (gap_right): Ditto. (modify_region): Ditto. * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED. * xdisp.c (Vresize_mini_config): New. (resize_mini_window): Use it to save restore original window configuration (syms_of_xdisp): Initialize it. * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p. * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv. * xdisp.c (reconsider_clip_changes): New. (redisplay_internal, redisplay_window): Call it. (mark_window_display_accurate, redisplay_internal): Set current matrix' buffer, begv, zv. * window.c (Fset_window_hscroll): Set prevent_redisplay_optimizations_p instead of clip_changed. (Fset_window_hscroll): Ditto. (temp_output_buffer_show): Ditto. (Fset_window_vscroll): Ditto. * buffer.c (reset_buffer): Set clip_changed to 0 and prevent_redisplay_optimizations_p to 1. (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1. * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED, BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED, END_UNCHANGED): New. (struct buffer_text): Add beg_unchanged, end_unchanged, unchanged_modified, overlay_unchanged_modified. * window.h (beg_unchanged, end_unchanged, unchanged_modified, overlay_unchanged_modified): Removed. (with_echo_area_unwind_data): Don't save beg/end_unchanged. (unwind_with_echo_area_buffer): Don't restore them. (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed. (text_outside_line_unchanged_p, redisplay_internal, try_scrolling): Use/set buffer-specific beg/end_unchanged. (redisplay_window): Let try_window_id be called if more than one window is displayed. Use/set buffer-specific beg/end_unchanged. (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row, try_window_id): Use buffer-specific beg/end_unchanged. * window.h (beg_unchanged, end_unchanged, unchanged_modified, overlay_unchanged_modified): Remove extern declarations. * keyboard.c (command_loop_1): Set beg/end_unchanged per buffer. * insdel.c (gap_left): Compute beg/end_unchanged per buffer. (gap_right): Ditto. (adjust_after_replace): Likewise. (replace_range, del_range_2, modify_region): Likewise. * dispnew.c (direct_output_for_insert): Set beg_unchanged and unchanged_modified per buffer. * coding.c (code_convert_region): Compute beg/end_unchanged per buffer. * buffer.c (modify_overlay): Compute beg/end_unchanged per buffer. (Fget_buffer_create): Initialize new members of the buffer structure. 1999-08-22 Gerd Moellmann * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table. * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak. (Qkey_value_weak): Removed. (make_hash_table): Use nil, `key', `value', t for weakness. (Fmake_hash_table): Ditto. (copy_hash_table): New. (Fcopy_hash_table): New. 1999-08-22 Gerd Moellmann * xfns.c: Call change_frame_size and do_pending_window_change with new parameter. 1999-08-21 Gerd Moellmann * xdisp.c (resize_mini_window): Do it for truncate-lines t as well. (redisplay_internal): Resize mini-window only if text might have changed. (display_echo_area): Reset displayed echo_area_buffer to nil at the end if we're displaying a nil message. 1999-08-21 Gerd Moellmann * fns.c (hash_lookup): Test with EQ before calling key comparion function. (hash_remove): Ditto. (cmpfn_eq): Removed. (cmpfn_eql): Don't test with EQ. (cmpfn_equal): Ditto. (make_hash_table): Set comparison function for `eq' to null. * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h: Remove conditional compilation on NO_PROMPT_IN_BUFFER. * dispextern.h (NO_PROMPT_IN_BUFFER): Removed. * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c, xterm.c: Call change_frame_size and do_pending_window_change with new parameter. * dispnew.c (do_pending_window_change): Add parameter `safe'. (change_frame_size): Ditto. (change_frame_size_1): Ditto. Deley size changes if redisplaying and not called from a safe place. (window_change_signal): Call change_frame_size with new parameter. * dispextern.h: Change prototypes for do_pending_window_change and change_frame_size. * xfaces.c (face_at_buffer_position): Don't xassert that window's buffers equals current_buffer; this is not the case during echo area display. 1999-08-21 Gerd Moellmann * xdisp.c, minibuf.c: Remove conditional compilation on NO_PROMPT_IN_BUFFER. * minibuf.c (Fminibuffer_prompt_end): New. (syms_of_minibuf): Defsubr it. Remove minibuffer-prompt-in-buffer. (Fminibuffer_prompt_width): Return 0 if not in mini-buffer. Extend documentation. * xdisp.c (get_next_display_element): Display \r as ^M. * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear under scroll bar widget. 1999-08-21 Gerd Moellmann * xdisp.c (minibuffer_scroll_overlap): Removed because not used anywhere. (unwind_redisplay): Return nil. (clear_garbaged_frames): New. (redisplay_internal): Use it. (echo_area_display): Ditto. (resize_mini_window): Mew. (display_echo_area_1): Use it to resize echo area window. (redisplay_internal): Use it to resize active mini-window. * dispextern.h, lisp.h: Add function prototypes. * dispnew.c (set_window_cursor_after_update): Do the cursor_in_echo_area case only for a mini-window showing a message. Don't let cursor end up after the end of a row. * xdisp.c (echo_area_glyphs, echo_area_message, echo_area_glyphs_length, previous_echo_glyphs, previous_echo_area_message, previous_echo_area_glyphs_length): Removed. (Vmessage_stack, echo_area_buffer, echo_buffer, display_last_displayed_message_p, Vwith_echo_area_save_vector): New. (message2_nolog): Use set_message and clear_message. (message3): Rename parameter len to nbytes to make clear what it is. (message3_nolog): Ditto. Use set_message and clear_message. (update_echo_area): Rewritten. (with_echo_area_buffer): New. (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New. (setup_echo_area_for_printing): New. (display_echo_area, display_echo_area_1): New. (current_message, current_message_1): New. (push_message, restore_message, pop_message, check_message_stack): New. (truncate_echo_area): Rewritten. (truncate_message_1): New. (set_message, set_message_1, clear_message): New. (echo_area_display): Rewritten. (redisplay_internal): Check for needed echo area update differently. (redisplay_preserve_echo_area): Rewritten. (redisplay_window): Check for mini-window displaying echo area message differently. (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers. Remove initialzation of removed variables. (init_xdisp): Remove references to removed variables. * dispnew.c (adjust_frame_message_buffer): Removed references to echo_area_glyphs and previous_echo_glyphs. (direct_output_for_insert): Check for mini-window displaying echo area message differently. (update_frame): Likewise. (set_window_cursor_after_update): Likewise. In echo area, don't try to set cursor on rows that aren't enabled. * print.c: Remove conditional compilation on `standalone'. (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy, glyph_to_str_cpy): Remove that section because GLYPHs are no longer used in that way. (PRINTDECLARE): Add multibyte. (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently. (printbufidx): Removed. (printchar, strout): Rewritten. * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to a struct kboard. (echo_kboard): New. (echo_now): Set echo_kboard to the current kboard. (cancel_echoing): Set echo_kboard to null. (cmd_error_internal): Use clear_message, remove references to echo_area_glyphs and echo_area_message. (command_loop_1): Check for echo area messages differently. (read_char): Likewise. (record_menu_key): Use clear_message. (Fexecute_extended_command): Check for echo area messages differently. Use push_message, restore_message, pop_message. * alloc.c (Fgarbage_collect): Use push_message, restore_message, pop_message. * emacs.c (shut_down_emacs): Call check_message_stack. * lisp.h: Add function prototypes and extern declarations for new functions and variables. * fileio.c (Fdo_auto_save): Use push_message, restore_message, pop_message. * minibuf.c (read_minibuf): Use clear_message instead of setting echo_area_glyphs. (Fminibuffer_completion_help): Ditto. * editfns.c (Fcurrent_message): Rewritten. * frame.c, window.h: Remove references to echo_area_glyphs and previous_echo_glyphs. 1999-08-21 Dave Love * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O. * aix4-1.h: Likewise. * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize. 1999-08-20 Gerd Moellmann * xfns.c: Remove tiff34 prefix from include. 1999-08-20 Dave Love * cm.c: Revert previous change. 1999-08-19 Gerd Moellmann * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear under scroll bar with width FRAME_SCROLL_BAR_COLS. 1999-08-18 Dave Love * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use stdlib.h. * doprnt.c: Use stdlib.h, unistd.h. * config.in: Add HAVE_TERMCAP_H. * cm.c: Use termcap.h. 1999-08-18 Gerd Moellmann * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for FRAME_X_WINDOW (f) being null at the of the function. If widgets cannot be created we will already have crashed earlier. Call lw_set_main_areas with a null menu-bar widget, so that we have a reasonable default. (Fx_create_frame): Rearranged so that Lisp errors during frame initialization cause less damage. Initialize menu bar widget here. 1999-08-18 Gerd Moellmann * dispnew.c (update_frame_line): Fix previous change. If writing whole line clear to end of frame. 1999-08-17 Gerd Moellmann * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area' and `right-bitmap-area' if position is in the bitmap areas. This avoids an error when clicking on the bitmap areas. Instead, they are currently treated like clicks inside the window. (coordinates_in_window): Return 5 and 6 for bitmap areas. (Qleft_bitmap_area, Qright_bitmap_area): New. (syms_of_window): Initialize new symbols. * dispnew.c (update_frame_line): If writing whole line, don't write trailing spaces unless we must. * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p. (redisplay_internal): Register unwind_redisplay with register_unwind_protect. (try_window_reusing_current_matrix): If new start > old start, give up if start pos of first reusable row is not equal to new start. * eval.c (Fsignal): Don't reset redisplaying_p here. * xterm.c (expose_area): If row extends face to end of line, write the whole line. 1999-08-16 Gerd Moellmann * dispextern.h (struct it): Remove member show_trailing_whitespace_p. * dispnew.c (direct_output_for_insert): Use Vshow_trailing_whitespace instead of former iterator member show_trailing_whitespace_p. (direct_output_forward_char): Don't do it if hightlighting trailing whitespace. * xdisp.c (Qshow_trailing_whitespace): Removed. (Vshow_trailing_whitespace): Added. (init_iterator): Remove initialization code for show_trailing_whitespace_p. (redisplay_internal): Don't try cursor movement in this_line if showing trailing whitespace. (redisplay_window): Likewise for cursor movement in current matrix and try_window_id. (try_window_reusing_current_matrix): Likewise. (trailing_whitespace_p): Return 0 if trailing whitespace is in front of point. (display_line): Use Vshow_trailing_whitespace instead of former iterator member show_trailing_whitespace_p. (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace. 1999-08-16 Gerd Moellmann * window.c (Fpos_visible_in_window_p): Rewritten. * xfaces.c (add_to_log): Renamed from display_message. Don't display messages in echo area. * xterm.c (x_draw_glyph_string_box): Use the background width of the glyph string for the width of the box. 1999-08-16 Stefan Monnier * syntax.c (Fforward_comment): Set comstyle for Scomment_fence. 1999-08-16 Geoff Voelker * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and background first, and then set other parameters that might depend upon their new values. 1999-08-15 Gerd Moellmann * xfaces.c (Vfont_list_limit): New. (syms_of_xfaces): Make it a user-variable. (DEFAULT_FONT_LIST_LIMIT): New. (sorted_font_list): If Vfont_list_limit is an integer > 0, list maximally that number of fonts, otherwise use DEFAULT_FONT_LIST_LIMIT. (Fx_font_family_list): Bind `font-list-limit' to higher values until we have all fonts. (Fxfont_list): Additionally return the full names of fonts and their registry and encoding. * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]: Simplify clearing "under" scroll bar. * window.c (Qfixed_window_size): New. (syms_of_window): Initialiaze it. (check_all_windows): Add return type void. (window_fixed_size_p): New. Return non-zero if window is fixed-size. (window_min_size_1): New. (window_min_size): Handle fixed-size windows. (size_window): New. Rewritten combination of set_window_height and set_window_width that handles fixed-size windows. (set_window_height): Call it. (set_window_width): Call it. (Fsplit_w