+2000-03-22 Kenichi Handa <handa@etl.go.jp>
+
+ * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
+ FACE_FOR_CHAR): Define them differently for the configuration of
+ --without-x.
+
+2000-03-21 Dave Love <fx@gnu.org>
+
+ * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
+ doc string.
+
+2000-03-21 Gerd Moellmann <gerd@gnu.org>
+
+ * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
+ (lface_fully_specified_p): Don't check contents of
+ LFACE_FONT_INDEX because that attribute is optional.
+ (realize_x_face): Remove now unwarranted xassert.
+
+2000-03-21 Kenichi HANDA <handa@etl.go.jp>
+
+ The following changes are to make font selection based on
+ characters, not charset. In addition, they recover fontset
+ facilities while utilizing the new font selection mechanism.
+
+ * Makefile.in (fontset.o): Depend on dispextern.h.
+
+ * alloc.c (mark_face_cache): Don't mark face->registry.
+
+ * dispextern.h (struct glyph): New member glyph_not_available_p.
+ Use 22 bits for face_id.
+ (enum lface_attribute_index): Add LFACE_FONT_INDEX.
+ (struct face): Delete member registry, new member ascii_face.
+ (FACE_SUITABLE_FOR_CHAR_P): Renamed from
+ FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
+ (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
+ (struct it): Delete member charset, new member
+ glyph_not_available_p.
+
+ * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
+ (struct fontset_info, struct fontset_data): Structs removed.
+ (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
+ Vglobale_fontset_alist, font_idx_temp): Externs removed.
+ (fs_load_font, fs_query_fontset): Adjusted for new argument.
+ (fs_free_face_fontset, fontset_font_pattern,
+ face_suitable_for_char_p, face_for_char,
+ make_fontset_for_ascii_face): Extern them.
+ (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
+ (FS_LOAD_FACE_FONT): New macro.
+
+ * fontset.c: All codes rewritten or adjusted for the change of
+ fontset implementation. Now fontset is represented by char table.
+ (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
+ removed.
+ (my_strcasecmp): Function removed.
+ (Vfontset_table, next_fontset_id, Vdefault_fontset): New
+ variables.
+ (AREF, ASIZE): New macros.
+ (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
+ FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
+ FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
+ (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
+ fontset_id_valid_p, font_family_registry, fontset_name,
+ fontset_ascii, free_face_fontset, face_suitable_for_char_p,
+ face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
+ New functions.
+ (fs_load_font): New arg FACE. Caller changed.
+ (fs_query_fontset): Argument changed. Caller changed.
+ (Fquery_fontset): call fs_query_fontset.
+ (fs_register_fontset, alloc_fontset_data, free_fontset_data):
+ Functions removed.
+ (clear_fontset_elements, check_registry_encoding,
+ check_fontset_name): New functions.
+ (syms_of_fontset): Set char-table-extra-slots property of fontset
+ to 3. Staticpro and initialize Vfontset_table and
+ Vdefault_fontset. Defsubr fontset_font and fontset_list.
+
+ * frame.h (struct frame): Member `fontset_data' removed.
+ (FRAME_FONTSET_DATA): Macro removed.
+
+ * frame.c (make_frame): Don't allocate f->fontset_data.
+ (Fdelete_frame): Don't free f->fontset_data.
+
+ * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
+
+ * xdisp.c (charset_at_position): Function removed.
+ (init_iterator): Don't set member charset of struct `it'.
+ (handle_face_prop, reseat_to_string, set_iterator_to_next,
+ next_element_from_display_vector, insert_left_trunc_glyphs):
+ Likewise.
+ (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
+ FACE_FOR_CHARSET.
+ (get_next_display_element, append_space,
+ extend_face_to_end_of_line): Likewise.
+
+ * xfaces.c (Qx_charset_registry, Vface_default_registry):
+ Variables removed.
+ (clear_font_table, frame_update_line_height, load_face_font):
+ Adjusted for the change of fontset implementation.
+ (load_face_fontset_font): Function removed.
+ (pixel_point_size): New function.
+ (font_list): Argument type changed. Caller changed.
+ (LFACE_FONT): New macro.
+ (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
+ (set_lface_from_font_name): Type of arg FONTNAME is changed to
+ Lisp_Object. Determine the font name by actually loading a font
+ by the specified pattern. Set LFACE_FONT (lface) to the specified
+ pattern. Even if a font is not found, don't try alternatives.
+ (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
+ (set_font_frame_param): If `font' is specified in lface, use it.
+ (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
+ (lface_same_font_attributes_p): Likewise.
+ (make_realized_face): Arguent changed. Caller changed. Set
+ face->ascii_face to face itself.
+ (free_realized_face): Free face->fontset if face is for ASCII.
+ (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
+ deduce_unibyte_registry, x_charset_registry): Functions removed.
+ (free_realized_multibyte_face): New function.
+ (lookup_face, lookup_named_face, lookup_derived_face): Argument
+ changed. Caller changed.
+ (try_font_list): Argument type changed.
+ (face_fontset): Check `font' slot of ATTRS, not `family' slot.
+ (choose_face_font): Argument changed. Handle fontset properly.
+ (choose_face_fontset_font): Function removed.
+ (realize_default_face, realize_named_face): Don't remove the
+ former face here.
+ (realize_face): Argument changed. Caller changed. Remove face
+ with the arg former_face_id in advance. Load font for the new
+ face.
+ (realize_x_face): Argument changed. Caller changed. For a
+ multibyte character, share fontset with base_face. For a single
+ byte character, make a new realized fontset. Don't load a font
+ here.
+ (realize_tty_face): Argument changed. Caller changed.
+ (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
+ (face_at_buffer_position): Don't check multibyte_p for returning
+ DEFAULT_FACE_ID.
+ (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
+ FACE_SUITABLE_FOR_CHARSET_P.
+ (syms_of_xfaces): Remove code for Qx_charset_registry and
+ Vface_default_registry.
+
+ * xterm.c: Include fontset.h after dispextern.h. Undo the changes
+ related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
+ (x_per_char_metric): Don't try FONT->default_char. Even if
+ pcm->width is zero, glyph bits may exist.
+ (x_encode_char): Always initialize char2b->byte1.
+ (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
+ (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
+ changed.
+ (x_append_glyph): Set glyph->glyph_not_available_p.
+ (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
+ it->charset. Handle the case that per char metric is not
+ available. If it->multibyte_p is zero and it->c is a multibyte
+ character, convert it to a unibyte character.
+ (struct glyph_string): Delete member `charset'.
+ (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
+ the case that per char metric is not available correctly.
+ (x_fill_glyph_string): Handle the case that the specific glyph is
+ not available correctly.
+ (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
+ (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
+ (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
+ (x_new_fontset): Call fontset_ascii to get ASCII font name of the
+ fontset. Don't call FS_LOAD_FONT.
+
+ * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
+ (x_create_tip_frame): Likewise.
+ (Fx_close_connection): Free full_name of font_info.
+
+ * fns.c (optimize_sub_char_table): New function.
+ (Foptimize_char_table): New function.
+ (syms_of_fns): Defsubr Soptimize_char_table.
+
+2000-03-20 Gerd Moellmann <gerd@gnu.org>
+
+ * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
+ only if buffer is displayed in some window.
+
+ * xdisp.c (handle_single_display_prop): Initialize local `value'.
+ (try_window_reusing_current_matrix): Don't call scroll run
+ function if run's current and desired position are the same;
+ this prevents cursor flickering.
+
+2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
+
+ * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
+
+ * regex.c (RE_STRING_CHAR): New macro.
+ (GET_CHAR_AFER_2): Remove.
+ (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
+ (enum re_opcode_t): Remove on_failure_jump_exclusive.
+ (print_partial_compiled_pattern, re_compile_fastmap)
+ (re_match_2_internal): Remove on_failure_jump_exclusive.
+ (regex_compile): Turn optimizable P+ loops into PP*, so that the
+ optimization only need to work for * (ie. can use of_keep_string_jump).
+ Remove the special case for .*\n since it is now covered by the general
+ optimization.
+ (re_search_2): Don't bother with `room'.
+ (skip_one_char): New function.
+ (skip_noops): Simplify since `memory' is not needed any more.
+ (mutually_exclusive_p): Restructure slightly to use `switch' and
+ add handling for "all" remaining cases.
+ (re_match_2_internal): Change on_failure_jump_smart to use
+ on_failure_keep_string_jump (and redirect the end-of-loop jump)
+ rather than on_failure_jump_exclusive.
+
+2000-03-19 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
+ number of bits per RGB because it's everywhere used as the depth
+ of the visual.
+
+ * term.c (calculate_costs): Remove code dealing with X frames.
+
+2000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
+
+ * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
+
+2000-03-18 Gerd Moellmann <gerd@gnu.org>
+
+ * lread.c (read_integer): Unread the last char not consumed.
+
+2000-03-17 Gerd Moellmann <gerd@gnu.org>
+
+ * xterm.c (x_update_window_cursor): Don't update in frames
+ which are in the process of being deleted.
+
+2000-03-16 Gerd Moellmann <gerd@gnu.org>
+
+ * Makefile.in (mostlyclean): Add `*.core'.
+ (clean): Add `bootstrap-emacs'.
+
+ * lread.c (read_integer): New function.
+ (read1): Support read syntax #o, #x, #b, #r.
+
+2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
+
+ * regex.c (re_match_2): Fix string shortening (to fit `stop') to
+ make sure POINTER_TO_OFFSET gives the same value before and after
+ PREFETCH. Use `dfail' to guarantee "atomic" matching.
+ (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
+ (debug): Now only active if > 0 rather than if != 0.
+ (DEBUG_*): Update for the new meaning of `debug'.
+ (print_partial_compiled_pattern): Add missing `succeed' case. Use
+ CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
+ in `succeed_n', `jump_n' and `set_number_at'.
+ (store_op1, store_op2, insert_op1, insert_op2)
+ (at_begline_loc_p, at_endline_loc_p): Add prototype.
+ (group_in_compile_stack): Move to after its arg's types are
+ declared and add a prototype.
+ (PATFETCH): Define in terms of PATFETCH_RAW.
+ (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
+ wrapper.
+ (QUIT): Redefine as a nop except for NTemacs.
+ (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
+ indentation of the greedy-op and shy-group code.
+ (at_(beg|end)line_loc_p): Fix argument's types.
+ (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
+ (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
+ (MATCHING_IN_FIRST_STRING): Remove.
+ (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
+ to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
+ QUIT unconditionally.
+
+2000-03-15 Gerd Moellmann <gerd@gnu.org>
+
+ * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
+ a sole completion.
+
+ * process.c (send_process): Add a hint that the function
+ can call Lisp code to its comment.
+
+ * lread.c (load_dangerous_libraries): New variable.
+ (Vbytecomp_version_regexp): New variable.
+ (safe_to_load_p): New function.
+ (Fload): Handle files not compiled with Emacs specially.
+ (syms_of_lread): New Lisp variable load-dangerous-libraries.
+
+2000-03-14 Gerd Moellmann <gerd@gnu.org>
+
+ * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
+
+ * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
+ support functions only if HAVE_X11R6_XIM is defined.
+ (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
+
+ * s/sol2.h (INHIBIT_X11R6_XIM): Define.
+
+ * xfns.c (X_I18N_INHIBITED): Don't define.
+ (create_frame_xic): Remove conditional compilation on
+ X_I18N_INHIBITED.
+ (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
+
+ * config.in (HAVE_X_I18N): Moved here from xterm.h.
+ (HAVE_X11R6_XIM): Define.
+
+ * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
+
+ * xterm.c (x_term_init): Add support for X resource `synchronous'.
+ If set, call XSynchronize.
+
+2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
+
+ * regex.c: Declare a new type `re_char' used throughout the code
+ for the string char type. It's `const unsigned char' to match the
+ rest of Emacs. Consistently make sure all pointers to strings use
+ it and make sure all pointers into the pattern use `unsigned
+ char'.
+ (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
+ GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
+ code duplication.
+
+ * charset.h (GET_CHAR_AFTER_2): Remove.
+ (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
+
+2000-03-12 Ken Raeburn <raeburn@gnu.org>
+
+ * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
+ variable before the invocation of YMF_PASS_LDFLAGS, in case both
+ of them try to use backquotes.
+
+2000-03-12 Dave Love <fx@gnu.org>
+
+ * unexelf.c: Restore changes of 1999-10-19.
+ (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
+ fix its type and alignment; copy it from current process.
+
+2000-03-12 Gerd Moellmann <gerd@gnu.org>
+
+ * atimer.c (cancel_atimer): Break out of the loop as soon as timer
+ has been found. Fix bug not computing timer's predecessor.
+
+ * fileio.c (Fread_file_name): Handle case that DIR contains a
+ file name.
+
+ * window.c (Fsave_window_excursion): Doc fix.
+
+ * xfns.c (x_defined_color): Rewritten to use
+ x_allocate_nearest_color.
+
+2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.c (vga_installed): New function, code moved from
+ dos_set_window_size.
+ (Qbar, Qcursor_type, outside_cursor): New variables.
+ (syms_of_msdos): Intern and staticpro them.
+ (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
+ shape used outside Emacs when called for the first time.
+ (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
+ cursor shape used outside Emacs.
+ (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
+ (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
+ type has changed.
+ (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
+ parameters specify the cursor. Make qreverse a global
+ variable (renamed to Qreverse).
+
+2000-03-09 Gerd Moellmann <gerd@gnu.org>
+
+ * fns.c (Fy_or_n_p): Cancel busy-cursor.
+
+2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
+
+ This is a big redesign of failure-stack and register handling, prompted
+ by bugs revealed when trying to add shy-groups. Overall, what happened
+ is that loops are now structured a little differently, groups can be
+ shy and the code is a little simpler.
+
+ * regex.h: Update the copyright.
+ (RE_SHY_GROUPS): New value.
+ (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
+ (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
+
+ * regex.c (enum re_opcode_t): Remove jump_past_alt,
+ maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
+ on_failure_jump_(exclusive, loop and smart). Also fix the comment
+ for (start|stop)_memory since they now only take one argument (the
+ second has becomes unnecessary).
+ (print_partial_compiled_pattern): Adjust for changes in
+ re_opcode_t.
+ (print_compiled_pattern): Use %ld to printf long ints and flush to
+ make debugging a little easier.
+ (union fail_stack_elt): Make the integer unsigned.
+ (struct fail_stack_type): Add a `frame' element.
+ (INIT_FAIL_STACK): Init `frame' as well.
+ (POP_PATTERN_OP): New macro for re_compile_fastmap.
+ (DEBUG_PUSH, DEBUG_POP): Remove.
+ (NUM_REG_ITEMS): Remove.
+ (NUM_NONREG_ITEMS): Adjust.
+ (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
+ (TOP_FAILURE_HANDLE): New macros for the cycle detection.
+ (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
+ (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
+ macros.
+ (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
+ address pushed is not the destination of the jump but the source
+ of it instead.
+ (NUM_FAILURE_ITEMS): Remove.
+ (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
+ registers before the actual failure point). Don't hardcode any
+ meaning for str==NULL anymore.
+ (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
+ (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
+ Remove.
+ (REG_UNSET_VALUE): Use NULL (why not?).
+ (compile_range): Remove declaration since it doesn't exist.
+ (struct compile_stack_elt_t): Remove inner_group_offset.
+ (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
+ (regex_grow_registers): Remove dead code.
+ (FIXUP_ALT_JUMP): New macro.
+ (regex_compile): Add shy-groups Change loops to use
+ on_failure_jump_smart&jump instead of
+ on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
+ initial (dummy_failure_)jump. Remove c1_base (looks like unused
+ variable to me). Use `jump' instead of `jump_past_alt' and don't
+ bother with push_dummy_failure in alternatives since it is now
+ unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
+ emacs' for (re)allocating the stack.
+ (re_compile_fastmap): Remove dead variables i and num_regs. Exit
+ from loop when bufp->can_be_null rather than jumping to `done'.
+ Avoid jumping backwards so as to ensure termination. Use
+ PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
+ backreferences. Remove dead code in handling of `anychar'.
+ (skip_noops, mutually_exclusive_p): New functions taken from the
+ handling of `maybe_pop_jump' in re_match_2_internal. Slightly
+ improve mutually_exclusive_p to handle ".+\n".
+ (lowest_active_reg, highest_active_reg,
+ NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
+ (re_match_2_internal): Use %p instead of 0x%x when printf'ing
+ ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
+ variables. Push register (in `start_memory') on the stack rather
+ than storing it in old_reg(start|end). Remove the cycle detection
+ from `stop_memory', replaced by the use of on_failure_jump_loop
+ for greedy loops. Add code for the new on_failure_jump_<foo>.
+ Remove ad-hoc code in `on_failure_jump' to push more registers in
+ the case of a loop. Take out code from `maybe_pop_jump' into
+ separate functions and adapt it to the semantics of
+ `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
+ and push_dummy_failure. Remove dummy_failure handling and
+ handling of `failures to jump to on_failure_jump' (this last one
+ was already dead code, it seems).
+ (group_match_null_string_p, alt_match_null_string_p)
+ (common_op_match_null_string_p): Remove.
+
+2000-03-08 Dave Love <fx@gnu.org>
+
+ * config.in: Don't depend on __STDC__ for volatile.
+ Add POINTER_TYPE, PTR, PROTOTYPES.
+
+ * hftctl.c, strftime.c: Use PROTOTYPES.
+ * eval.c (find_handler_clause): Likewise.
+
+ * mem-limits.h: Use POINTER_TYPE.
+
+ * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
+ (memory_warnings): Declare using POINTER_TYPE.
+
+2000-03-08 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
+
+ * xdisp.c (display_echo_area): Temporarily inhibit garbage
+ collection.
+
+ * xfns.c: Remove obsolete code in #if 0.
+ (Fx_focus_frame): New function.
+
+2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
+
+ * coding.c (coding_category_name): Add coding-category-utf-8,
+ coding-category-utf-16-be, coding-category-utf-16-le.
+ (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
+ UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
+ UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
+ (detect_coding_utf_8): New function.
+ (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
+ UTF_16_LOW_SURROGATE_P): New macros.
+ (detect_coding_utf_16): New function
+ (detect_coding_mask): When priorities are specified, skip any
+ categories that have `nil' coding-system. Fix bug of returning
+ wrong mask when PRIORITIES is specified and detect_coding_XXX()
+ returns a mask not set in PRIORITIES.
+ (detect_eol_type_in_2_octet_form): New function.
+ (detect_eol): selects detect_eol_type_XXX to call according to
+ cooding->category_idx.
+ (detect_coding_system): Remove `nil' coding-system in the result.
+ (Fupdate_coding_systems_internal): Update all coding-categories.
+
+ * coding.h (CODING_CATEGORY_IDX_UTF_8,
+ CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
+ macros.
+ (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
+ CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
+ CODING_CATEGORY_IDX_UTF_16_LE.
+ (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
+ CODING_CATEGORY_MASK_UTF_16_LE): New macros.
+ (CODING_CATEGORY_MASK_ANY): Include the above macros.
+ (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
+
+2000-03-07 Gerd Moellmann <gerd@gnu.org>
+
+ * doc.c (Fdocumentation_property): If value is not a string,
+ and doesn't refer to etc/DOC, evaluate it to obtain a string.
+
+ * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
+ close the display with XtCloseDisplay. This caused a bus error
+ on OpenWindows.
+
+ * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
+ complete but not unique.
+
+2000-03-06 Gerd Moellmann <gerd@gnu.org>
+
+ * process.c (send_process): Remove local variable `procname' that
+ might become invalid when a GC happens. Instead, access the
+ process name slot directly.
+
+ * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
+ orig_height if set.
+
+ * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
+ orig_height if set.
+
+2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
+ glyph matrices have been freed.
+
2000-03-05 Gerd Moellmann <gerd@gnu.org>
+ * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
+ (bootstrap-temacs): Set LC_ALL to C like for temacs.
+
+ * xfns.c (QCdata): Moved to xdisp.c.
+
+ * xdisp.c (QCdata): Moved here from xfns.c.
+ (syms_of_xdisp): Initialize QCdata.
+
+ * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
+
+ * window.c (coordinates_in_window): Use
+ FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
+ FRAME_INTERNAL_BORDER_WIDTH.
+
* xdisp.c (try_window_id): Recompute unchanged information if
- it is invalid.
+ it is obviously invalid.
* xterm.c (x_term_init): Create a colormap if not using the
default visual.