X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/c407c570006300c2a520c89aa118e798a5e3589b..a4e1759ef0fb6fcd9e41e45fc39430044710a561:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog index 19932e9d76..a0710fdfdf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,875 @@ +2000-05-25 Kenichi Handa + + * ccl.c (ccl_driver): Fix previous change. + +2000-05-25 Kenichi Handa + + * 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) + : Handle charsets eight-bit-control and + eight-bit-graphic correctly. + +2000-05-24 Kenichi HANDA + + * 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 + + * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and + BSD_PGRPS are not defined. + +2000-05-24 Kenichi Handa + + * charset.c (update_charset_table): Accept nil in LONG_NAME and + DESCRIPTION. + (syms_of_charset): Avoid building same strings. + +2000-05-23 Gerd Moellmann + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * m/iris5d.h: Deleted -- unused. + +2000-05-16 Gerd Moellmann + + * 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 + + * window.c (coordinates_in_window): Subtract 1 when computing + right_x. + +2000-05-15 Gerd Moellmann + + * Makefile.in (lisp): Add env.elc. + + * callproc.c (Fgetenv_internal): Renamed from Fgetenv. + +2000-05-12 Gerd Moellmann + + * search.c (Freplace_match): Handle case of `\N' in the + replacement when there's no group N. + +2000-05-11 Gerd Moellmann + + * 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 + + * 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 + + * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix. + +2000-05-04 Gerd Moellmann + + * 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 + + * 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) : Handle case + that x_per_char_metric returns null. + +2000-05-02 Gerd Moellmann + + * 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 + + * 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 + + * xdisp.c (make_cursor_line_fully_visible): Handle case of rows + taller than the window. + +2000-04-28 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 + + * xdisp.c (try_window_id) : 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 + + * 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 + + * 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 + + * lisp.h (struct Lisp_Buffer_Cons): Remove. + + * keyboard.c (timer_check): Fix typo in comment. + +2000-04-21 Kenichi Handa + + * fontset.c (Fset_fontset_font): Fix docstring. Local variable + name change: ch -> character. + +2000-04-20 Gerd Moellmann + + * 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 + + * fns.c (syms_of_fns): Defsubr mapc. + (concat): Don't allow numeric args. + (Fconcat): Doc change. + +2000-04-19 Stefan Monnier + + * regex.c (re_match_2_internal): Don't shorten the strings anymore, + instead define end_match(1|2) more carefully. + Use GET_CHAR_BEFORE_2 for `begline'. + +2000-04-19 Gerd Moellmann + + * frame.h (SELECTED_FRAME): Change definition to compile cleanly + on 64-bit systems where NULL is defined as `0'. + + * xdisp.c (with_echo_area_buffer): Add more `int' parameters for + the `variable argument list' to make it work on Alpha. + + * m/alpha.h (_LP64) [!_LP64]: Define. + (ORDINARY_LINK): Define for NetBSD. + + * m/macppc.h (ORDINARY_LINK): Define for NetBSD. + +2000-04-19 Dave Love + + * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14 + change. + + * Makefile.in (LIBS): Don't use. + (GETLOADAVG_OBJ): Define again. + (otherobj): Add GETLOADAVG_OBJ. + + * buffer.c (Fmake_indirect_buffer): Escape newline in doc. + +2000-04-18 Gerd Moellmann + + * lread.c (read_filtered_event): Cancel and start busy cursor. + + * xterm.c (x_produce_glyphs) : Take into account + that the per-character metrics may be null. + +2000-04-17 Gerd Moellmann + + * buffer.c (clone_per_buffer_values): New function. + (Fmake_indirect_buffer): Add optional argument CLONE. Call + clone_per_buffer_values if CLONE is not nil. + + * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix. + +2000-04-16 Dave Love + + * Makefile.in: Remove obsolete localcpp stuff. + (GETLOADAVG_OBJ): Don't define. + (obj): Move LIBOBJS... + (otherobj): ... to here. + (MSDOS_OBJ): Convert to make variable -- preprocessing zapped + whitespace-only lines after the continuation (Irix). + +2000-04-14 Gerd Moellmann + + * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors. + + * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'. + +2000-04-14 Dave Love + + * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h: + * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.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, s/umax.h: Don't define autoconfiscated + NLIST_STRUCT. + + * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define + autoconfiscated HAVE_GETLOADAVG. + + * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated + BROKEN_MKTIME. + +2000-04-14 Gerd Moellmann + + * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes. + (fill_in_lock_file_name): Avoid existing files that aren't + links. + +2000-04-14 Dave Love + + * Makefile.in (LIBS, LIBOBJS): New variable. + (INTERVAL_SRC): Convert to make variable. + (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT) + (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove. + (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and + add LIBOBJS. + (SOME_MACHINE_OBJECTS): Remove interval stuff. + (lisp): Substitute FACE_SUPPORT, FLOAT_SUP. + (shortlisp): Add facemenu, float-sup, frame. + (SOME_MACHINE_LISP): Remove them from here. + (LIBES): Change unused LDLIBS to autoconf LIBS. + + * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION. + +2000-04-14 Kenichi Handa + + * composite.c (update_compositions): If FROM and TO are not in a + valid range, do nothing. + +2000-04-13 Gerd Moellmann + + * tparam.c (tparam1): Abort when encountering an unknown + `%'-specifier. + + * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as + terminfo.o. + + * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define + as TERMCAP_OBJ. + +2000-04-13 Eli Zaretskii + + * fileio.c (a_write): Remove redundant semi-colons. + (e_write): Return -1 if failed to write all the data. + This fixes the changes made at 1999-12-15. + +2000-04-12 Dave Love + + * fns.c (mapcar1): Test for null vals to support mapc. + (Fmapc): New function. + +2000-04-12 Eli Zaretskii + + * msdos.c (NUM_MOUSE_BUTTONS): Define. + (IT_frame_up_to_date): Support the buffer local value of + cursor-type, if defined. + +2000-04-10 Dave Love + + * editfns.c (preceding-char, following-char): Doc fix. + +2000-04-10 Ken Raeburn + + * Makefile.in (temacs): Revert 2000-03-12 change. + +2000-04-10 Jason Rumney + + * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P. + +2000-04-10 Gerd Moellmann + + * xdisp.c (setup_echo_area_for_printing): Choose an echo + area buffer, if it's not set up yet. + + * indent.c (compute_motion): Set immediate_quit. + +2000-04-09 Gerd Moellmann + + * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New + variable. + (realize_tty_face): Suppress boldness if colors are the inverse of + the default colors, and tty_suppress_bold_inverse_default_colors_p + is set. + (Ftty_suppress_bold_inverse_default_colors): New function. + (syms_of_xfaces): Defsubr it. + + * buffer.c (Frestore_buffer_modified_p): New function. + (syms_of_buffer): Defsubr it. + +2000-04-08 Ken Raeburn + + * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a + charset id (int) argument, not a charset (Lisp_Object). + + * coding.h (code_convert_string): Declare. + * coding.c (code_convert_string_norecord): Pass an int, not a lisp + object, as the fourth argument to code_convert_string. + + * fontset.c (make_fontset_for_ascii_face): Use XINT on return + value. + (Fset_fontset_font): Use EQ to compare lisp objects. + +2000-04-05 Ken Raeburn + + * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for + a pointer that looks like a lisp object. + (SET_INTERVAL_OBJECT): Don't explicitly compare the object with + zero, instead see whether it's an integer object, since they can't + have intervals. + (GET_INTERVAL_OBJECT): Simply assign to the destination. + + * dispnew.c (allocate_matrices_for_frame_redisplay, + direct_output_forward_char): Use X(U)INT and make_number as needed + to convert between (unsigned) int values and lisp integers. + * keyboard.c (read_key_sequence): Likewise. + * lread.c (substitute_object_recurse): Likewise. + * fns.c (concat, hash_lookup, hash_remove): Likewise. + * minibuf.c (do_completion, Fminibuffer_complete_word, + Fminibuffer_completion_help): Likewise. + * term.c (produce_special_glyphs): Likewise. + + * fileio.c (Fwrite_region): Use EQ when comparing lisp objects. + * print.c (print_preprocess, print_object): Likewise. + + * search.c (compile_pattern): Use NILP when checking for nil. + + * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 && + __OPTIMIZE__]: Provide a GNU C macro version that handles + lisp-object unions. + (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type + field, to better cope with ENABLE_CHECKING and calls that modify a + Lisp_Object using its old value. + 2000-04-04 Gerd Moellmann * window.c (compare_window_configurations): Signal an error