(find-file-run-dired): Update docstring.
[bpt/emacs.git] / src / ChangeLog
index 9992882..b334a56 100644 (file)
@@ -1,5 +1,811 @@
+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 obviously invalid.
+
+       * xterm.c (x_term_init): Create a colormap if not using the
+       default visual.
+
+       * xterm.h (select_visual): Change prototype.
+
+       * xfns.c (select_visual): Rewritten.  Recognize user-specified
+       visual classes.
+       (visual_classes): New variable.
+
+2000-03-04  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
+       (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
+       (png_load): Access colormap of frame using FRAME_X_COLORMAP.
+       (x_decode_color): Don't handle allocation of white and black
+       specially.
+       (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
+       XtNcolormap resources.
+       (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
+       (Fx_create_frame): Initialize color members of x_output structure.
+       (xpm_load): Pass colormap to XPM lib.
+
+       * xfaces.c (x_free_colors): Access colormap of frame using
+       FRAME_X_COLORMAP.  Be paranoid about freeing black and white
+       when default colormap is used.
+
+       * xterm.c (x_term_init): Set Colormap member of x_display_info
+       structure.  Copy colormap if resource `privateColormap' is
+       specified (PseudoColor only).
+       (x_setup_relief_color): Access colormap of frame using
+       FRAME_X_COLORMAP.
+
+       * xterm.h (struct x_display_info): Add Colormap member `cmap'.
+       (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
+
+2000-03-04  Jason Rumney  <jasonr@gnu.org>
+
+       * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
+       other non-platform-specific equivalents.
+       [WINDOWSNT]: Include w32term.h, fontset.h and define X
+       specific functions and macros as their w32 equivalents where
+       non-platform-specifics are not available.
+       [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
+       (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
+       (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
+       (frame_update_line_height): Use macros to access f->output_data.
+       (defined_color): Remove FIXME comments; fixed.
+       (x_face_list_fonts, prepare_face_for_display): Put X specifics
+       into #ifdef blocks. Add WINDOWSNT blocks.
+       (Fx_list_fonts): Use macros for accessing font data.
+       (set_lface_from_font_name): Different default fonts for X and
+       WINDOWSNT.
+       (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
+       scalable for backward compatibility.
+       (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
+       (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
+
+       * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
+       syms_of_w32faces.
+
+       * makefile.nt (w32faces.obj): Remove.
+       (xfaces.obj): Add.
+
+2000-03-03  Jason Rumney  <jasonr@gnu.org>
+
+       * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
+       correct parameters.
+
+2000-03-03  Ken Raeburn  <raeburn@gnu.org>
+
+       * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
+       standard ELF definitions here if the system header does not.
+
+2000-03-03  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.c (PER_CHAR_METRIC): Removed.
+       (x_per_char_metric_1, x_default_char): New functions.
+       (x_per_char_metric): If font's default char is invalid, return
+       metrics of a suitably chosen usable default char.
+       (x_draw_glyph_string_foreground): If font has an invalid default
+       char, replace occurrences of unprintable chars with a suitably
+       chosen usable default char.
+
+2000-03-02  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.c (note_mouse_highlight): Return quickly if frame's
+       glyph matrices have been freed.
+
+       * dispnew.c (free_glyphs): Block input while freeing matrices.
+
+       * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
+
+       * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
+       x_free_colors.
+
+       * dispextern.h (x_free_colors): Add prototype.
+
+       * xfaces.c (x_free_colors): New function.
+       (unload_color, free_face_colors): Use it.
+
+2000-03-02  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
+
+       * window.c [MSDOS]: Include msdos.h.
+
+2000-03-02  Dave Love  <fx@gnu.org>
+
+       * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
+
+       * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
+       set C_OPTIMIZE_SWITCH for gcc.
+
+2000-03-02  Kenichi Handa  <handa@etl.go.jp>
+
+       * coding.c (coding_save_composition): Be sure to allocate
+       composition data area in coding even if there's no composition in
+       the current run.
+
+2000-03-01  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c: Equivalent changes to those made to xterm.c on
+       2000-02-25 and 2000-02-24.
+
+       * w32fns.c: Equivalent changes to those made to xfns.c on
+       2000-02-25 and 2000-02-21.
+
+       * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
+       correct line-end convention is followed.
+
+       * w32menu.c [HAVE_BOXES]: Remove #undef.
+       (single_keymap_panes): Remove code for simulating checkmarks.
+       (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
+       Remove code for drawing simulated checkmarks.
+       (w32_menu_show): make unibyte help string correctly.
+       (add_menu_item): draw standard Windows checkmarks. Draw radio
+       buttons as radio buttons if possible.
+
+2000-03-01  Gerd Moellmann  <gerd@gnu.org>
+
+       * sysdep.c (start_of_text): Don't define this function for NetBSD
+       with ELF.
+
+       * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]: 
+       Don't define.
+       (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
+       (LINKER): Don't undef if __NetBSD__ is defined.
+
+       * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
+
+       * fileio.c [__NetBSD__]: Define `unix'.
+
+       * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
+
+2000-02-29  Gerd Moellmann  <gerd@gnu.org>
+
+       * atimer.c (start_atimer): Don't abort when timers are stopped.
+       (append_atimer_lists): New function.
+       (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
+       arbitrary lists of stopped and running atimers.
+
+       * atimer.c (cancel_atimer): Handle canceling an atimer when
+       some timers are stopped.
+
+       * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
+       after canceling it.
+
+       * fns.c (maybe_resize_hash_table): Handle case of new size
+       coming out as being the same as old size.
+
+2000-02-27  Jason Rumney  <jasonr@gnu.org>
+
+       * makefile.nt: Add atimer.h to dependencies.
+       * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
+       * w32console.c: Only disable window system features for dispextern.h
+       (initialize_w32_display): Build a display info for the console.
+       * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
+       * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
+       WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
+       as 2 button mice.
+       * w32gui.h (struct W32FontStruct): Revert last change after change
+       to xdisp.c.
+       * w32menu.c (single_submenu): Set up help string.
+       [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
+       (w32_dialog_show): Set up help string.
+       * w32term.c (w32_display_info_for_display): Remove unused function.
+       (w32_draw_bitmap): Use pre-built bitmaps.
+       (w32_initialize_display_info): New function to initialize parts of
+       display info that are common to both GUI and console frames.
+       (w32_term_init): Use w32_initialize_display_info. Do not set
+       Vw32_num_mouse_buttons here, as it is not called for console
+       frames.  Build bitmaps for indicating truncated lines etc.
+       (x_delete_display): Destroy pre-built bitmaps.
+       * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
+       (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
+
+2000-02-27  Dave Love  <fx@gnu.org>
+
+       * lisp.h: Add a bunch of prototypes.
+
+2000-02-26  Kenichi Handa  <handa@etl.go.jp>
+
+       * keyboard.c (read_char): Set `usec' correctly.
+
+2000-02-25  Miyashita Hisashi  <himi@bird.scphys.kyoto-u.ac.jp>
+
+       * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
+       `lambda', set reg[RRR] to the map index.
+       (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
+       reg[RRR] to 0.  Otherwise, set it to -1.
+
 2000-02-25  Gerd Moellmann  <gerd@gnu.org>
 
+       * emacs.c (main): Remove code snippet commented out with `//'.
+
+2000-02-25  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+       
+       * fileio.c (Ffile_symlink_p): If result starts with a `/'
+       and contains a `:', prepend `/:'.
+
+       * window.c (select_window_1): If selected_window is nil,
+       don't "swap out" the buffer's point.
+       (Fset_window_configuration): Set selected_window to nil
+       before calling Fselect_window.
+       (unshow_buffer): Don't set point in buffer from window's point
+       if another more recently selected window also shows the buffer.
+
+2000-02-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * keyboard.c (recursive_edit_1): Cancel busy-cursor.
+
+       * xfns.c (inhibit_busy_cursor, busy_count): Removed.
+       (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
+       (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
+       variables.
+       (DEFAULT_BUSY_CURSOR_DELAY): New define.
+       (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
+       (hide_busy_cursor): New functions.
+       (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
+
+       * minibuf.c (read_minibuf): Cancel busy-cursor.
+
+       * keyboard.c (command_loop_1): Call start_busy_cursor before
+       Fcommand_execute and cancel_busy_cursor after it.
+       (timer_check): Remove busy-cursor code.
+       (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
+       cursor timer.
+
+       * process.c (wait_reading_process_input): Remove busy-cursor code.
+
+       * eval.c (Fsignal): Call cancel_busy_cursor instead of
+       Fx_hide_busy_cursor.
+
+       * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
+       Remove prototyoes.
+       (start_busy_cursor, cancel_busy_cursor): Add prototypes.
+
+       * lisp.h (Fx_hide_busy_cursor): Remove prototype.
+
+       * xterm.c (XTread_socket): Remove busy-cursor code.
+
        * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
        (build_frame_matrix_from_leaf_window): Put code handling
        glyph row's not being a slice of a frame row in #if 0.