+2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
+ of its headers.
+
+2000-06-15 Kenichi Handa <handa@etl.go.jp>
+
+ * coding.c (decode_coding_emacs_mule): Always set src_base at the
+ start of the while loop.
+
+2000-06-15 Gerd Moellmann <gerd@gnu.org>
+
+ * data.c (set_internal): Remove debug code.
+
+2000-06-14 Gerd Moellmann <gerd@gnu.org>
+
+ * Makefile.in (bootstrap-temacs): Add `-I../src'.
+
+ * unexec.c (toplevel) [COFF]: Include coff.h.
+
+ * s/lynxos.h: New file.
+
+ * keymap.c (Fsingle_key_description): Enclose function key and
+ event symbol names in angle brackets.
+
+ * xdisp.c (setup_echo_area_for_printing): Call
+ message_log_maybe_newline if message_buf_print is not set.
+
+ * print.c (printchar, strout): Don't check message_buf_print
+ before calling setup_echo_area_for_printing because that
+ function does something useful even when message_buf_print is
+ already set.
+
+ * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
+ variables.
+ (ensure_echo_area_buffers): Initialize echo buffer's
+ truncate lines setting to nil.
+ (with_echo_area_buffer): Don't set the echo buffer's truncate
+ lines setting here.
+ (set_message_1): Set it here instead, based on the value
+ of message_truncate_lines.
+ (resize_mini_window): Handle case that lines are truncated.
+ (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
+ message-truncate-lines.
+
+ * keyboard.c (read_char): Bind message-truncate-lines to t
+ while displaying a help-echo.
+
+ * lisp.h (Qmessage_truncate_lines): External declaration.
+
+2000-06-13 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (Vline_number_display_limit): Renamed from
+ line_number_display_limit.
+ (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
+ Extend documentation string. Initialize
+ Vline_number_display_limit to nil meaning no limit.
+ (decode_mode_spec): Use Vline_number_display_limit with its new
+ meaning.
+
+ * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
+
+2000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
+
+ * frame.c (Fmodify_frame_parameters): Doc fix.
+
+ * xfns.c (x_set_frame_parameters): Comment fix.
+
+ * frame.c (store_frame_param): Call swap_in_global_binding if the
+ variable's current binding was chosen based on this frame.
+
+ * data.c (swap_in_global_binding): New function.
+
+2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
+ macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
+
+2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
+
+2000-06-12 Jason Rumney <jasonr@gnu.org>
+
+ * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
+
+ * w32.h (EMACS_W32_H): Renamed from _NT_H_
+
+ * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
+
+ * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
+
+2000-06-12 Gerd Moellmann <gerd@gnu.org>
+
+ * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
+ (syms_of_xfaces): Defsubr Sdump_colors.
+ (x_free_colors): Don't treat b&w specially on default visual.
+ (x_free_dpy_colors): New function.
+ (free_face_colors): Don't check visual class; it's done
+ in x_free_colors.
+
+ * xterm.c (x_frame_of_widget): New function.
+ (x_alloc_nearest_color_for_widget): Use it.
+ (x_copy_dpy_color): New function.
+ (x_destroy_window): Free various colors.
+
+2000-06-12 Kenichi Handa <handa@etl.go.jp>
+
+ * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
+
+ * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
+
+ * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
+
+ * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
+
+ * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
+
+2000-06-11 Dave Love <fx@gnu.org>
+
+ * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
+
+2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
+
+2000-06-11 Gerd Moellmann <gerd@gnu.org>
+
+ * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
+ to `XEvent *'.
+
+2000-06-10 Kenichi Handa <handa@etl.go.jp>
+
+ * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
+ (regex_compile): Fix the code for handling the case of single byte
+ char and multibyte char being mixed in a range within [...].
+
+ * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
+ and dst_multibyte members of coding.
+
+ * charset.c (update_charset_table): Update the table
+ bytes_by_char_head.
+ (init_charset_once): Initialize elements of bytes_by_char_head to
+ 1 except for leading codes for private charases.
+
+ * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
+ (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
+ sequence.
+
+2000-06-09 Ken Raeburn <raeburn@gnu.org>
+
+ * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
+ access the data it doesn't point to.
+
+2000-06-08 Gerd Moellmann <gerd@gnu.org>
+
+ * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
+ will be translated to a switch-frame event when reading the
+ event queue. This is necessary because Emacs otherwise won't
+ perform a switch-frame to a new frame until some other event, for
+ example a keystroke event, forces it to do so. This has various
+ effects, one visible being that the cursor of a frame created with
+ C-x 5 2 or switched to with a window manager key binding like
+ A-TAB stays hollow because selected_window isn't on the newly
+ focused frame until the switch-frame is performed.
+
+ * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
+ generating a switch-frame event if necessary.
+
+ * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
+
+ * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
+ it's an integer.
+
+2000-06-08 Kenichi Handa <handa@etl.go.jp>
+
+ * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
+ charset.
+
+2000-06-07 Gerd Moellmann <gerd@gnu.org>
+
+ * window.c (displayed_window_lines): Take empty lines at
+ the bottom of a window into account.
+
+ * window.c (displayed_window_lines): New function.
+ (Fmove_to_window_line): Use displayed_window_lines to determine
+ the number of lines to move, instead of using the window's height.
+
+ * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
+ to stop reading, even if the form read sets point to a different
+ value when evaluated.
+
+ * xdisp.c (display_line): Fix code deciding in which line to
+ put the cursor.
+
+2000-06-07 Kenichi Handa <handa@etl.go.jp>
+
+ * fileio.c (e_write): Free composition data if stored in
+ coding->cmp_data.
+
+2000-06-06 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (display_line): Set row's and iterator's
+ starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
+ Set cursor even if row ends in the middle of a character.
+ (dump_glyph_row): Print values of new flags.
+ (redisplay_window) <cursor movement in unchanged window>: When
+ point has been moved forward, and PT is at the end of the cursor
+ row, don't place the cursor in the next row if the cursor row ends
+ in the middle of a character or at ZV.
+
+ * dispextern.h (struct it): Add starts_in_middle_of_char_p.
+ (struct glyph_row): Add starts_in_middle_of_char_p and
+ ends_in_middle_of_char_p.
+ (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
+ ends_in_middle_of_char_p flag.
+ (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
+
+ * term.c (append_glyph): Revert change of 2000-06-06.
+
+ * xdisp.c (display_line): Revert change of 2000-06-06. Treat
+ padding glyph not fitting on line as whole character not
+ fitting on line.
+
+ * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
+ this isn't true for images with `:ascent 100'.
+
+2000-06-06 Kenichi Handa <handa@etl.go.jp>
+
+ * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
+ as modified if it is originally unmodified.
+
+ * term.c (encode_terminal_code): Change the way to check if
+ terminal coding does any conversion.
+ (append_glyph): Set glyph->pixel_width correctly.
+
+ * xdisp.c (display_line): While checking line continuation, pay
+ attention to a padding glyph.
+
+2000-06-05 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
+
+2000-06-05 Dave Love <fx@gnu.org>
+
+ * xdisp.c: Include fontset.h.
+
+ * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
+
+ * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
+
+ * dispnew.c: Conditionally include term.h.
+
+ * coding.h: Declare code_convert_string_norecord.
+
+ * frame.h (struct frame): Use volatile unconditionally.
+
+ * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
+
+ * xmenu.c (menu_item_selection): Declare volatile unconditionally.
+
+ * systime.h: Protect against multiple inclusion.
+ (timezone) [USG5_4]: Define as time_t.
+
+ * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
+ (Foptimize_char_table, make_temp_name): Declare.
+
+ * Makefile.in (xdisp.o): Depend on fontset.h.
+
+ * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
+
+ * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
+ (Foptimize_char_table, make_temp_name): Declare.
+
+ * s/irix4-0.h:
+ * s/irix5-0.h:
+ * s/netbsd.h: Don't define autoconfiscated MATHERR.
+
+2000-06-02 Dave Love <fx@gnu.org>
+
+ * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
+
+2000-06-02 Gerd Moellmann <gerd@gnu.org>
+
+ * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
+ result face, set flags in that face indicating that colors may not
+ be freed.
+
+ * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
+ glyph, use the ASCII NUL character to determine the face.
+
+2000-06-02 Dave Love <fx@gnu.org>
+
+ * sysdep.c: Conditionally include stdlib.h, unistd.h.
+ (VFORK_RETURN_TYPE): Remove.
+
+ * config.in: Add NO_MATHERR.
+
+2000-06-01 Dave Love <fx@gnu.org>
+
+ * cmds.c (internal_self_insert): Don't check
+ Vbefore_change_function, Vafter_change_function.
+
+ * insdel.c (signal_before_change, signal_after_change): Likewise.
+
+ * buffer.c (Vbefore_change_function, Vafter_change_function):
+ Variables and their initializations deleted.
+
+ * callint.c (Fcall_interactively): Doc fix.
+
+ * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
+
+2000-05-31 Dave Love <fx@gnu.org>
+
+ * textprop.c: Revert last change -- duplicated.
+
+2000-05-31 Gerd Moellmann <gerd@gnu.org>
+
+ * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
+ in #if 0.
+
+ * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
+
+2000-05-31 Jason Rumney <jasonr@gnu.org>
+
+ * search.c (Fre_search_forward, Fre_search_backward)
+ (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
+
+ * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
+
+2000-05-30 Jason Rumney <jasonr@gnu.org>
+
+ * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
+ [WINDOWSNT]: Add extern for Vw32_system_coding_system.
+
+ * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
+ member.
+
+ * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
+ (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
+ expand a nil default_filename.
+
+ * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
+ pointer to glyph_to_pixel_coords, not a frame.
+
+ * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
+ coding.h to dependencies.
+
+ * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
+
+ * w32console.c (glyph_to_pixel_coords): Change first parameter to
+ window pointer to be consistent with w32term.c and xterm.c.
+
+ * w32fns.c: Format and doc changes to bring closer to xfns.c.
+ (VIETNAMESE_CHARSET): Define if not defined in system headers.
+ (Qline_spacing, Qcenter): New variables.
+ (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
+ (x_set_line_spacing): New function.
+ (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
+ macros.
+ (x_specified_cursor_type): New function.
+ (x_set_cursor_type): Use it.
+ (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
+ and icon strings.
+ (validate_x_resource_name, x_get_resource_string): Measure lengths
+ of external strings in bytes.
+ (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
+ GetTextExtentPoint32 with NULL title.
+ (Fx_create_frame): Initialize Qline_spacing.
+ (w32_load_system_font): Initialize font->double_byte_p.
+ (x_to_w32_charset): Use Vw32_charset_info_alist.
+ (Image, busy cursor, tooltip functions): Merged changes from
+ xfns.c. Not yet functional on Windows.
+
+ * w32gui.h (W32FontStruct): Add double_byte_p member.
+
+ * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
+ (emacs_button_translation): Use it.
+ (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
+ in `mask' to be set.
+
+ * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
+ menu strings.
+
+ * w32term.c: Format and doc changes to bring closer to xterm.c.
+ (w32_char_font_type): New enum.
+ (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
+ (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
+ (w32_encode_char): New function.
+ (x_encode_char): Removed.
+ (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
+ x_encode_char and w32_font_is_double_byte.
+ (x_produce_image_glyph): Use image_ascent.
+ (x_produce_glyphs): Use new version of w32_per_char_metric and
+ handle NULL return value. Allow extra line spacing.
+ (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
+ (w32_get_glyph_overhangs): Remove unicode_p param. Use
+ w32_font_type member of glyph instead.
+ (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
+ (fast_find_position): Make sure not to consider rows not visible
+ in the window.
+ (w32_read_socket) [WM_MENUSELECT]: Cannot call
+ w32_menu_display_help with input blocked, as it can abort.
+ (x_display_and_set_cursor): Choose cursor depending
+ on buffer-local value of cursor_type.
+ (x_draw_bar_cursor): Add parameter WIDTH.
+
+ * w32term.h (CP_DEFAULT): Define.
+ (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
+
+2000-05-30 Gerd Moellmann <gerd@gnu.org>
+
+ * search.c (Fre_search_forward, Fre_search_backward)
+ (Fposix_search_backward, Fposix_search_forward): Doc fix.
+
+2000-05-30 Kenichi Handa <handa@etl.go.jp>
+
+ * coding.c (detect_coding_iso2022): Fix code for checking
+ CODING_CATEGORY_MASK_ISO_8_2.
+
+2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
+
+ * regex.c (PREFETCH_NOLIMIT): New function.
+ (re_match_2_internal): Use it and adjust the end_match_2 logic.
+
+2000-05-29 Gerd Moellmann <gerd@gnu.org>
+
+ * syntax.c (find_defun_start): Move test for
+ open_paren_in_column_0_is_defun_start outside of the loop.
+
+ * xdisp.c (redisplay_window): Really switch buffers when
+ displaying mode lines, and temporarily set selected_frame to the
+ frame of the window that's redisplayed.
+
+ * xfaces.c (free_realized_faces): Block/unblock input.
+ (free_realized_multibyte_face): Ditto.
+
+2000-05-29 Dave Love <fx@gnu.org>
+
+ * textprop.c (Qkeymap): New variable.
+ (syms_of_textprop): Intern it.
+
+ * keymap.c: Include intervals.h.
+ (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
+
+ * Makefile.in (keymap.o): Depend on intervals.h.
+
+ * keyboard.c (menu_bar_items, tool_bar_items)
+ (Fexecute_extended_command): Deal with `keymap' property.
+ (read_key_sequence): Track map from `keymap' property as well as
+ `local_map'.
+
+ * intervals.c (get_local_map): Extra arg to allow looking for
+ `keymap' too.
+
+ * intervals.h (map_property): New enum.
+ (get_local_map): Extra arg using it.
+ (Qkeymap): Declare.
+
+ * lisp.h (get_local_map): Don't declare here.
+
+2000-05-29 Kenichi Handa <handa@etl.go.jp>
+
+ * Makefile.in (callproc.o): Depend on composite.h.
+
+ * callproc.c: Include composite.h.
+ (Fcall_process): Handle composition correctly.
+
+ * coding.h (coding_allocate_composition_data): Extern it.
+ (coding_restore_composition): Likewise.
+
+ * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
+ yet allocated, finish decoding with result
+ CODING_FINISH_INSUFFICIENT_CMP.
+ (coding_allocate_composition_data): Make it non-static.
+ (coding_restore_composition): Likewise.
+
+2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * charset.c (syms_of_charset): Revert last change.
+
+2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * term.c (produce_glyphs): Treat characters from the eight-bit-*
+ charsets as unibyte, with 1-column screen width. Sent by Kenichi
+ Handa.
+
+2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * charset.c (syms_of_charset): Set width of character sets
+ eight-bit-control and eight-bit-graphic to 1 column.
+
+2000-05-26 Gerd Moellmann <gerd@gnu.org>
+
+ * config.in (HAVE_SPEED_T): New define.
+
+ * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
+ `extern speed_t'.
+
+2000-05-26 Dave Love <fx@gnu.org>
+
+ * coding.c (shrink_decoding_region): Initialize eol_conversion.
+
+ * data.c (Qsubrp, Qmany, Qunevalled): New variables.
+ (Fsubr_arity): New function.
+ (syms_of_data): Install them.
+
+2000-05-26 Kenichi Handa <handa@etl.go.jp>
+
+ * charset.c (init_charset_once): Set the table bytes_by_char_head
+ correctly.
+
+ * fontset.c (syms_of_fontset): Adjust the font name for ascii of
+ the default fontset to what Emacs uses by default.
+ (check_registry_encoding): This function deleted.
+ (Fset_fontset_font): Remove the adhoc condition for the default
+ fontset. Allow cons in FONTNAME.
+
+ * fns.c (map_char_table): Ignore char-table entries for
+ charsets eight-bit-control and eight-bit-graphic.
+
+2000-05-25 Ken Raeburn <raeburn@gnu.org>
+
+ * emacs.c (main): Initialize keyboard syms before initializing
+ window code, so face names are available.
+
+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.
1999-11-24 Dave Love <fx@gnu.org>
- * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
-
* xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
* xfns.c: Don't duplicate Qdisplay definition done elsewhere.