* Makefile.in (install-arch-dep): Install fns-*.el only if it
[bpt/emacs.git] / src / ChangeLog
index b466b0c..555c2ca 100644 (file)
@@ -1,3 +1,691 @@
+2000-05-25  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
+       of an anchor at the beginning of a shy-group.
+
+2000-05-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (handle_invisible_prop): Don't try to skip over
+       invisible text if end of text is already reached.
+
+2000-05-25  Dave Love  <fx@gnu.org>
+
+       * xdisp.c (Fdump_glyph_matrix): Declare the arg.
+
+       * coding.c (encode_eol): Add null statement after label.
+
+2000-05-25  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * w16select.c (Fw16_set_clipboard_data): Fix the change from
+       2000-05-20.
+
+2000-05-25  Kenichi Handa  <handa@etl.go.jp>
+
+       * ccl.c (ccl_driver): Fix previous change.
+
+2000-05-25  Kenichi Handa  <handa@etl.go.jp>
+
+       * coding.c (run_pre_post_conversion_on_str): Set point to the
+       beginning of buffer before calling coding->post_read_conversion.
+       (decode_coding_string): Give correct args to
+       run_pre_post_conversion_on_str.
+       (encode_coding_string): Likewise.
+
+       * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
+       <CCL_WriteMultibyteChar2>:  Handle charsets eight-bit-control and
+       eight-bit-graphic correctly.
+
+2000-05-24  Kenichi HANDA  <handa@etl.go.jp>
+
+       * fileio.c (Finsert_file_contents): Even if a file is not found,
+       execute codes for setting up coding system.  Call
+       after-insert-file-functions unconditionally.
+
+2000-05-24  Gerd Moellmann  <gerd@gnu.org>
+
+       * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
+       BSD_PGRPS are not defined.
+
+2000-05-24  Kenichi Handa  <handa@etl.go.jp>
+
+       * charset.c (update_charset_table): Accept nil in LONG_NAME and
+       DESCRIPTION.
+       (syms_of_charset): Avoid building same strings.
+
+2000-05-23  Gerd Moellmann  <gerd@gnu.org>
+
+       * lread.c (Fload): Add a comment about the meaning of
+       Vuser_init_file being t.
+
+       * puresize.h (BASE_PURESIZE): Increase to 675000.
+
+       * s/gnu-linux.h (setpgrp): Don't define it here because this
+       prevents compilation on GNU/Linux systems with glib 2.2.
+
+       * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
+       as setpgid.
+       
+2000-05-23  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
+       dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
+       version.
+       (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
+
+2000-05-23  Kenichi Handa  <handa@etl.go.jp>
+
+       * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
+       unconditionally.
+
+       * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
+
+       * term.c (encode_terminal_code): Set coding->src_multibyte
+       properly.
+
+       * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
+
+2000-05-22  Kenichi Handa  <handa@etl.go.jp>
+
+       * keyboard.c (read_char): Allow character codes 128..255 to be
+       handled by input-method-function.
+
+       * insdel.c (adjust_markers_for_replace): Fix previous change.
+       (adjust_after_replace): If PREV_TEXT is nil, call
+       adjust_markers_for_insert, not adjust_markers_for_replace.
+
+2000-05-20  NIIBE Yutaka  <gniibe@mri.co.jp>
+       
+       * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
+       (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
+       [HAVE_GRANDPT]: Define.
+       (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
+
+       * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
+       like SYSV_PTYS.
+
+       * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
+
+       * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
+
+2000-05-20  Kenichi Handa  <handa@etl.go.jp>
+
+       The following changes are to handle 8-bit characters in a
+       multibyte buffer/string without facing with byte combining
+       problem.  Two new charsets eight-bit-control (for 0x80..0x9F) and
+       eight-bit-graphic (for 0xA0..0xFF) are introduced.
+
+       * Makefile.in (fns.o): Depend on charset.h.
+
+       * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
+       convert it to unibyte.
+       (make_string): Use parse_str_as_multibyte, not chars_in_text.
+
+       * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
+       apparent char boundary.
+       (Fset_buffer_multibyte): Convert 8-bit characters in the range
+       0x80..0x9F to/from multibyte form.
+
+       * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
+       to unibyte.
+
+       * callproc.c (Fcall_process): Always encode an argument string if
+       it is multibyte.  Setup src_multibyte and dst_multibyte members of
+       process_coding properly.
+
+       * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
+       SPLIT_NON_ASCII_CHAR.
+
+       * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
+       as is.
+       (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
+
+       * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
+       variables.
+       (SPLIT_CHARACTER_SEQ): This macro deleted.
+       (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
+       valid.
+       (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
+       and eight-bit-graphic.
+       (char_to_string): Likewise.  Signal an error for too large
+       character code.
+       (char_printable_p): Return 0 for 8-bit characters.
+       (update_charset_table): Update iso_charset_table only when a final
+       character is non-negative.
+       (find_charset_in_text): Renamed from find_charset_in_str.
+       Arguments and return value changed.  Callers changed.
+       (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
+       be -1 if CHARSET is used only internally.
+       (Fmake_char_internal): Handle new charsets; eight-bit-control and
+       eight-bit-graphic.
+       (Fcharset_after): Simplified.
+       (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
+       (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
+       (multibyte_chars_in_text): Simplified by assuming there's no
+       invalid multibyte sequence.
+       (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
+       str_as_unibyte): New functions.
+       (Fstring): Simpified by assuming that byte combining never
+       happens.
+       (init_charset_once): Initialization for
+       LEADING_CODE_8_BIT_CONTROL.
+       (syms_of_charset): Intern and staticpro Qeight_bit_control and
+       Qeight_bit_graphic.  Include them in Vcharset_list.  Make charsets
+       eight-bit-control and eight-bit-graphic.
+
+       * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
+       CHARSET_8_BIT_GRAPHIC): New macros.
+       (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
+       (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
+       (CHARSET_REVERSE_CHARSET): Likewise.
+       (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
+       eight-bit-graphic.
+       (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
+       (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
+       (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
+       encounter an invalid multibyte sequence.
+       (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
+       sequence is always valid.
+       (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
+       (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
+       macros.
+       (CHAR_STRING): For 8-bit characters, call char_to_string.
+       (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version.  Assume
+       multibyte sequence is always valid.
+       (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
+       (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
+       str_as_unibyte): Extern them.
+       (BCOPY_SHORT): Fix a bug.
+       (CHAR_LEN): This macro deleted.  Callers changed to use
+       CHAR_BYTES.
+       (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
+       (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
+       (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
+
+       * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
+       CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
+       (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
+       EMIT_BYTES): New macros.
+       (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
+       DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
+       macros deleted.
+       (CHECK_CODE_RANGE_A0_FF): This macro deleted.
+       (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
+       check the validity of multibyte sequence.
+       (decode_coding_emacs_mule): New function.
+       (encode_coding_emacs_mule): New macro.
+       (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
+       the source.
+       (DECODE_ISO_CHARACTER): Just return a character code.
+       (DECODE_COMPOSITION_START): Set coding->result instead of result.
+       (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
+       EMIT_CHAR to produced decoded characters.  Exit the loop only by
+       macros ONE_MORE_BYTE or EMIT_CHAR.  Don't handle the case of last
+       block here.
+       (ENCODE_ISO_CHARACTER): Don't translate character here.  Produce
+       only position codes for an invalid character.
+       (encode_designation_at_bol): Return new destination pointer.  5th
+       arg DSTP is changed to DST.
+       (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
+       from the source by ONE_MORE_CHAR.  Don't handle the case of last
+       block here.
+       (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
+       macros deleted.
+       (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
+       detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
+       TWO_MORE_BYTES to fetch a byte from the source.
+       (encode_eol): Pay attention to coding->src_multibyte.
+       (detect_coding, detect_eol): Preserve members src_multibyte and
+       dst_multibyte.
+       (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
+       (encoding_buffer_size): Set magnification to 3 for all coding
+       systems that require encoding.
+       (ccl_coding_driver): For decoding, be sure that the result is
+       valid multibyte sequence.
+       (decode_coding): Initialize coding->errors and coding->result.
+       For emacs-mule, call decode_coding_emacs_mule.  For no-conversion
+       and raw-text, always call decode_eol.  Handle the case of last
+       block here.  If not coding->dst_multibyte, convert the resulting
+       sequence to unibyte.
+       (encode_coding): Initialize coding->errors and coding->result.
+       For emacs-mule, call encode_coding_emacs_mule.  For no-conversion
+       and raw-text, always call encode_eol.  Handle the case of last
+       block here.
+       (shrink_decoding_region, shrink_encoding_region): Detect cases
+       that we can't skip data more rigidly.
+       (code_convert_region): Setup src_multibyte and dst_multibyte
+       members of coding.  For decoding, if the buffer is multibyte,
+       convert the source sequence to unibyte in advance.  For encoding,
+       if the buffer is multibyte, convert the resulting sequence to
+       multibyte afterward.
+       (run_pre_post_conversion_on_str): New function.
+       (code_convert_string): Deleted and divided into the following two.
+       (decode_coding_string, encode_coding_string): New functions.
+       (code_convert_string1, code_convert_string_norecord): Call one of
+       above.
+       (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
+       MAKE_NON_ASCII_CHAR.
+       (Fset_terminal_coding_system_internal,
+       Fset_safe_terminal_coding_system_internal): Setup src_multibyte
+       and dst_multibyte members.
+       (init_coding_once): Initialize iso_code_class with new enum
+       ISO_control_0 and ISO_control_1.
+
+       * coding.h (enum iso_code_class_type): Member ISO_control_code is
+       devided into ISO_control_0 and ISO_control_1.
+       (struct coding_system): New members src_multibyte, dst_multibyte,
+       errors, and result.  Delete member fake_multibyte.
+       (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
+       nonzero.
+       (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
+       nonzero.
+
+       * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
+       (Faset): Likewise.
+
+       * editfns.c (Fformat): Be sure to convert 8-bit characters to
+       multibyte form.
+       (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
+       combining occurs.
+       (Ftranspose_region): Delete codes for handling byte combining.
+
+       * fileio.c (Finsert_file_contents): Setup src_multibyte and
+       dst_multibyte members of coding.  On handling REPLACE on unibyte
+       buffer, convert the result of decode_coding to unibyte.  On
+       inserting into a mutibyte buffer, always call code_convert_region.
+       (e_write): Setup coding->src_multibyte according to the
+       multibyteness of the source (buffer or string).
+
+       * fns.c (concat): Handle 8-bit characters correctly.
+       (Fstring_as_unibyte): Be sure to make all 8-bit characters in
+       unibyte in the result.
+       (Fstring_as_multibyte): Be sure to make all 8-bit characters in
+       valid multibyte form in the result.
+       (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
+       (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
+       return -1, signal an error.
+       (base64_encode_1): New arg MULTIBYTE.  Get each character by
+       CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero.  If a multibyte
+       character is found, return -1.
+       (Fbase64_decode_region): Delete codes for handling byte-combining.
+       Treat each decoded byte as a unibyte character.
+       (Fbase64_decode_string): Return unibyte string.
+       (Fcompare_strings, concat, string_byte_to_char): Use
+       FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
+       FETCH_STRING_CHAR_ADVANCE.
+       (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
+       (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
+
+       * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
+       SPLIT_NON_ASCII_CHAR.
+       (fontset_ref_via_base, fontset_set): Likewise
+
+       * insdel.c (adjust_markers_for_record_delete): Deleted.
+       (adjust_markers_for_insert): Argument changed.  Caller changed.
+       (adjust_markers_for_replace): Likewise.
+       (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
+       CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
+       (copy_text): Delete unused local varialbe c_save.  For converting
+       to multibyte, be sure to make all 8-bit characters in valid
+       multibyte form.
+       (count_size_as_multibyte): Handle 8-bit characters correctly.
+       (insert_1_both, insert_from_string_1, insert_from_buffer_1,
+       adjust_after_replace, replace_range, del_range_2)
+       [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
+       (insert_1_both, insert_from_string_1, insert_from_buffer_1,
+       adjust_after_replace, replace_range, del_range_2) Delete codes for
+       handling byte combining.
+       (adjust_before_replace): Deleted.
+       
+       * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
+       SPLIT_NON_ASCII_CHAR.
+       (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
+       (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
+       unconditionally.
+       (Fkey_description): Likewise.
+
+       * lread.c (read1): On reading multibyte string, be sure to make
+       all 8-bit chararacters in valid multibyte form.
+       (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
+
+       * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
+       unconditionally.
+
+       * process.c (Fstart_process): GCPRO current_dir before calling
+       Ffind_operation_coding_system.  Encode arguments here.
+       (create_process): Don't encode arguments here.  Setup
+       src_multibyte and dst_multibyte members of struct coding.
+       (read_process_output): Setup src_multibyte and dst_multibyte
+       members of struct coding.  If the output is to multibyte buffer,
+       always decode the output of the process.  Adjust the
+       representation of 8-bit characters to the multibyteness of the
+       output.
+       (send_process): Setup coding->src_multibyte according to the
+       multibyteness of the source.
+
+       * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
+       unconditionally.
+       (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
+       FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
+
+       * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
+       CHAR_LEN.
+
+       * w16select.c (Fw16_set_clipboard_data): Setup members
+       src_multibyte and dst_multibyte of coding.  Adjusted for the
+       change for find_charset_in_str.
+       (Fw16_get_clipboard_data): Likewise.
+
+       * w32fns.c (w32_to_x_font): Setup members src_multibyte and
+       dst_multibyte of coding.
+       (x_to_w32_font): Likewise.
+
+       * w32select.c (Fw32_set_clipboard_data): Setup members
+       src_multibyte and dst_multibyte of coding.  Adjusted for the
+       change for find_charset_in_str.
+       (Fw32_get_clipboard_data): Likewise.
+
+       * xdisp.c (get_next_display_element): Handle 8-bit characters
+       correctly.
+       (next_element_from_display_vector): Use CHAR_BYTES instead of
+       CHAR_LEN.
+       (disp_char_vector): Use SPLIT_CHAR instead of
+       SPLIT_NON_ASCII_CHAR.
+
+       * xselect.c (selection_data_to_lisp_data): Setup members
+       src_multibyte and dst_multibyte of coding.  Adjusted for the
+       change for find_charset_in_str.
+       (lisp_data_to_selection_data): Likewise.
+
+2000-05-19  Gerd Moellmann  <gerd@gnu.org>
+
+       * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
+       buffer.
+
+       * dispextern.h (Vimage_types): Add extern declaration.
+
+       * xdisp.c (Vimage_types): Moved here from xfns.c.
+       (syms_of_xdisp): Move `image-types' variable here from xfns.c.
+
+       * xfns.c (Vimages_types): Moved to xdisp.c.
+       (syms_of_xfns): Move `image-types' to xdisp.c.
+
+       * w32fns.c (Vimage_types): Removed.
+       (syms_of_w32fns): Remove `image-types'.
+
+2000-05-18  Kenichi Handa  <handa@etl.go.jp>
+
+       * fns.c (map_char_table): Pay attention to character number of
+       charset.  Check the validity of charset at the first level.   For
+       leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
+       the default value.
+
+       * fontset.c: Include "buffer.h".
+       (fs_load_font): If the face has fontset, record the face ID in
+       that fontset.
+       (Finternal_char_font): New function.
+       (accumulate_font_info): New function.
+       (Ffontset_info): Rewritten for the new fontset implementation.
+       (syms_of_fontset): Register Vdefault_fontset in the first element
+       of Vfontset_table.  Include Vdefault_fontset in
+       Vfontset_alias_alist.  Declare `internal-char-font' as a Lisp
+       function.
+
+2000-05-16  Dave Love  <fx@gnu.org>
+
+       * m/iris5d.h: Deleted -- unused.
+
+2000-05-16  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
+       `invalid' instead of `illegal'.
+
+       * indent.c (Fmove_to_column): When ending within a tab, insert
+       spaces first so that markers at the end of the tab get adjusted.
+
+       * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
+       buffer list that wasn't selected in that frame.
+
+       * filelock.c (get_boot_time): To obtain an 8 char file name, which
+       is needed on mescaline, use a 2 char prefix, and call
+       make_temp_name with second arg non-zero.
+
+       * fileio.c (make_temp_name): New function, extracted from
+       Fmake_temp_name.
+       (Fmake_temp_name): Use it.
+
+2000-05-15  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * window.c (coordinates_in_window): Subtract 1 when computing
+       right_x.
+
+2000-05-15  Gerd Moellmann  <gerd@gnu.org>
+
+       * Makefile.in (lisp): Add env.elc.
+
+       * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
+
+2000-05-12  Gerd Moellmann  <gerd@gnu.org>
+
+       * search.c (Freplace_match): Handle case of `\N' in the
+       replacement when there's no group N.
+
+2000-05-11  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (add_to_log): Don't pass the terminating NUL byte
+       of the message to message_dolog.
+
+       * keyboard.c (read_char): Don't clear current message for help
+       events; let the code handling help events handle this.  Change
+       code detecting help events that should be ignored.
+
+       * xdisp.c (handle_single_display_prop): Don't try to set PT if
+       we're interating over a string.
+
+2000-05-09  Dave Love  <fx@gnu.org>
+
+       * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
+       that offset before writing.  Move gcpro region past call of
+       Ffile_regular_p.
+
+2000-05-04  Dave Love  <fx@gnu.org>
+
+       * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
+
+2000-05-04  Gerd Moellmann  <gerd@gnu.org>
+
+       * insdel.c (insert_from_buffer_1): Adjust FROM position by number
+       of inserted characters when BUF equals the current buffer, and PT
+       is in front of or equal to FROM.
+
+2000-05-03  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (handle_single_display_prop): If display property value
+       is invalid, or something not supported on the frame, restore
+       iterator's position to what it was initially.  Make sure to return
+       0 for invalid and unsupported property values.
+
+       * xterm.c (x_produce_glyphs) <composite chars>: Handle case
+       that x_per_char_metric returns null.
+
+2000-05-02  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.h (struct face): Add forward declaration.
+       (struct image): Ditto.
+       (image_ascent): Add prototype.
+
+       * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
+       (x_draw_image_relief, x_draw_image_foreground_1): Call function
+       image_ascent instead of using IMAGE_ASCENT.
+
+       * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
+       (IMAGE_ASCENT): Removed.
+
+       * xfns.c (Qcenter): New variable.
+       (enum image_value_type): Add IMAGE_ASCENT_VALUE.
+       (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
+       (image_ascent): New function.
+       (lookup_image): Recognize `:ascent center'.
+       (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
+       (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
+       (xbm_load): Don't set image's ascent here.
+       (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
+       (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
+       check ascent values here.
+       (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
+       (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
+       (syms_of_xfns): Initialize Qcenter.
+
+       * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
+       to the limits, increase the limits.
+
+2000-05-01  Kenichi Handa  <handa@etl.go.jp>
+
+       * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
+       Check Vfont_encoding_alist against the full name of the opened
+       font.
+
+2000-04-28  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
+       taller than the window.
+
+2000-04-28  Kenichi Handa  <handa@etl.go.jp>
+
+       * xfaces.c (realize_x_face): Fix the argument of the second
+       xassert.  BASE_FACE may not be a face for ASCII.
+
+2000-04-27  Gerd Moellmann  <gerd@gnu.org>
+
+       * print.c (print_object): Treat print-length < 0 as nil.
+
+       * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
+
+       * s/freebsd.h (TERMCAP_OBJ): Removed.
+       (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
+
+       * lread.c (read1): Don't treat period followed by certain
+       characters as symbol start.
+
+       * xfns.c (slurp_file): New function.
+       (xbm_image_p): Handle case of in-memory XBM files.
+       (xbm_scan): Rewritten to work on memory buffers instead of files.
+       (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
+       Work on memory buffers instead of files.  If DATA is null test
+       if buffer looks like an in-memory XBM file.
+       (xbm_load_image): Renamed from xbm_load_image_file.  Work on
+       memory buffers instead of files.
+       (xbm_file_p): New function.
+       (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
+
+       * lread.c (end_of_file_error): New function.
+       (read1): Call it instead of signaling `end-of-file' directly.
+
+       * print.c (print_error_message): Print data of `end-of-file' 
+       with Fprinc instead of Fprin1.
+
+2000-04-26  Ken Raeburn  <raeburn@gnu.org>
+
+       * window.c (freeze_window_start): Check that minibuffer scroll
+       window isn't nil before extracting the window structure pointer
+       from it.
+
+       * undo.c (record_delete): If we hit the end of the undo list, stop
+       picking elements apart.
+
+2000-04-26  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (display_line): If lines are continued, restore
+       iterator's ascent/descent information to the values before the
+       first glyph not fitting on the line.
+
+2000-04-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (try_window_id) <all changes above window start>: Adjust
+       positions in glyph matrix.  Don't compute new window end
+       positions.
+
+       * dispnew.c (increment_matrix_positions): Renamed from
+       increment_glyph_matrix_buffer_positions.
+       (increment_row_positions): Renamed from
+       increment_glyph_row_buffer_positions.
+
+       * dispextern.h: Change names of renamed functions from dispnew.c
+       in prototypes.
+
+2000-04-24  Gerd Moellmann  <gerd@gnu.org>
+
+       * fileio.c (Fdo_auto_save): Create directories for auto-save
+       list file if necessary.
+
+       * xdisp.c (init_iterator): Set iterator's extra_line_spacing
+       from buffer or frame.
+       (automatic_hscrolling_p): New variable.
+       (hscroll_windows): Scroll windows horizontally only if automatic
+       hscrolling is allowed.
+       (syms_of_xdisp): New variable `automatic-hscrolling'.
+
+       * frame.h (struct frame): Add member extra_line_spacing.
+
+       * xfns.c (x_set_line_spacing): New function.
+       (Fx_create_frame): Set line spacing from resources.
+       (Qline_spacing): New variable.
+       (syms_of_xfns): Initialize Qline_spacing.
+       
+       * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
+
+       * buffer.c (init_buffer_once): Handle extra_line_spacing.
+       (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
+       (reset_buffer): Don't initialize extra2 and extra3.  Initialize
+       extra_line_spacing from default value.
+       (init_buffer_once): Initialize default value of extra_line_spacing.
+
+       * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
+       and extra3.
+
+       * xterm.c (x_produce_glyphs): Remove reference to struct it's
+       prompt_width.  Add extra line spacing.
+
+       * term.c (produce_glyphs): Remove reference to struct it's
+       prompt_width.
+
+       * dispextern.h (struct it): Remove member prompt_width, add
+       extra_line_spacing.
+
+2000-04-22  Gerd Moellmann  <gerd@gnu.org>
+
+       * dispnew.c (update_frame_line): When writing a whole line, make
+       sure cursor is in the right row afterwards, otherwise a use of
+       capability `ch' in cmgoto might leave the cursor in the row below.
+
+2000-04-21  Gerd Moellmann  <gerd@gnu.org>
+
+       * lisp.h (struct Lisp_Buffer_Cons): Remove.
+
+       * keyboard.c (timer_check): Fix typo in comment.
+
+2000-04-21  Kenichi Handa  <handa@etl.go.jp>
+
+       * fontset.c (Fset_fontset_font): Fix docstring.  Local variable
+       name change: ch -> character.
+
+2000-04-20  Gerd Moellmann  <gerd@gnu.org>
+
+       * keyboard.c (echo_message_buffer): New variable.
+       (echo_now): Set echo_message_buffer to the echo area buffer used
+       to display the echo.
+       (cancel_echoing): Reset echo_message_buffer to nil.
+       (read_char): Code rewritten that handles canceling an echo or
+       echoing a dash, respectively.
+
+       * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
+       directory doesn't exist.
+
+2000-04-19  Dave Love  <fx@gnu.org>
+
+       * fns.c (syms_of_fns): Defsubr mapc.
+       (concat): Don't allow numeric args.
+       (Fconcat): Doc change.
+
 2000-04-19  Stefan Monnier  <monnier@cs.yale.edu>
 
        * regex.c (re_match_2_internal): Don't shorten the strings anymore,