(find-file-run-dired): Update docstring.
[bpt/emacs.git] / src / ChangeLog
index b9fa9d7..b334a56 100644 (file)
@@ -1,5 +1,340 @@
+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.
 
        * 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,