Gerd Moellmann [Tue, 21 Mar 2000 21:47:47 +0000 (21:47 +0000)]
(tags-case-fold-search): New user-option.
(tags-loop-eval): New function. Bind case-fold-search around eval
depending on the value of tags-case-fold-search.
(tags-loop-continue): Use tags-loop-eval.
(find-tag-in-order): Bind case-fold-search depending on the value
of tags-case-fold-search.
Stefan Monnier [Tue, 21 Mar 2000 16:59:17 +0000 (16:59 +0000)]
(diff-mode-*-map): use `easy-mmode-defmap'.
(diff-end-of-hunk): Return the end position for use in
`easy-mmode-define-navigation'.
(diff-recenter): Remove.
(diff-(next|prev)-*): Rename `diff-*-(prev|next)' and defined in terms
of `easy-mmode-define-navigation'.
(diff-kill-*): Rename `diff-*-kill' (for consistency with the
previous renaming) and fix to use new names.
(diff-merge-strings): Use \n as separator: simpler, faster.
(diff-mode): Use `define-derived-mode'.
Gerd Moellmann [Tue, 21 Mar 2000 16:13:31 +0000 (16:13 +0000)]
(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.
Stefan Monnier [Tue, 21 Mar 2000 15:35:06 +0000 (15:35 +0000)]
* derived.el (define-derived-mode): Don't autoload anymore.
Prefer the macro-only version provided by easy-mmode.el.
* emacs-lisp/easy-mmode.el (define-derived-mode): New name for
`easy-mmode-define-derived-mode'.
Use `combine-run-hooks'.
(easy-mmode-define-navigation): New macro.
Kenichi Handa [Tue, 21 Mar 2000 00:43:55 +0000 (00:43 +0000)]
Include fontset.h after dispextern.h.
(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.
Kenichi Handa [Tue, 21 Mar 2000 00:43:10 +0000 (00:43 +0000)]
(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.
Kenichi Handa [Tue, 21 Mar 2000 00:38:14 +0000 (00:38 +0000)]
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.
Kenichi Handa [Tue, 21 Mar 2000 00:36:45 +0000 (00:36 +0000)]
(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.
Kenichi Handa [Tue, 21 Mar 2000 00:32:34 +0000 (00:32 +0000)]
(describe-font): Don't refer to
global-fontset-alist, instead call font-list.
(describe-fontset, list-fontsets, mule-diag): Likewise.
(print-fontset): Adjusted for the change of fontset
implementation.
Kenichi Handa [Tue, 21 Mar 2000 00:32:06 +0000 (00:32 +0000)]
(x-charset-registries): Variable
removed, instead the corresponding data is stored in the default
fontset.
(register-alternate-fontnames): Function removed.
(resolved-ascii-font): Variable removed.
(x-compose-font-name): Ignore the second argument REDOCE.
(x-complement-fontset-spec): Complement only an ASCII font and
element for those charsets than can use that ASCII font.
(generate-fontset-menu): Don't refer to global-fontset-alist,
instead call fontset-list.
(uninstantiated-fontset-alist): Variable removed.
(x-style-funcs-alist): Likewise.
(fontset-default-styles): Likewise.
(x-modify-font-name): Function removed.
(create-fontset-from-fontset-spec): Ignore the argument
STYLE-VARIANT.
(create-fontset-from-ascii-font): Docsting adjusted for the above
change.
(instantiate-fontset, resolve-fontset-name): Functions removed.
(fontset-list): Now implemented by C code.
Gerd Moellmann [Mon, 20 Mar 2000 12:24:13 +0000 (12:24 +0000)]
(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.
Stefan Monnier [Sun, 19 Mar 2000 23:23:50 +0000 (23:23 +0000)]
(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.
Gerd Moellmann [Thu, 16 Mar 2000 22:15:26 +0000 (22:15 +0000)]
(custom-variable-tag-face): Handle case that
default face's height is not a number.
(custom-face-tag-face, custom-group-tag-face-1)
(custom-group-tag-face): Ditto.
(custom-group-tag-face-1): Add :group.
Dave Love [Thu, 16 Mar 2000 22:05:51 +0000 (22:05 +0000)]
(f90): Put custom group under `languages', not
`fortran'.
(f90-mode-hook): Customize.
(f90-mode): Set add-log-current-defun-function.
(f90-current-defun): New function.
Stefan Monnier [Thu, 16 Mar 2000 02:55:33 +0000 (02:55 +0000)]
(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.
Gerd Moellmann [Wed, 15 Mar 2000 19:57:38 +0000 (19:57 +0000)]
(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.
Gerd Moellmann [Tue, 14 Mar 2000 21:15:46 +0000 (21:15 +0000)]
(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.
Stefan Monnier [Tue, 14 Mar 2000 00:27:57 +0000 (00:27 +0000)]
* 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.
Ken Raeburn [Mon, 13 Mar 2000 01:04:12 +0000 (01:04 +0000)]
* 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.
Dave Love [Sun, 12 Mar 2000 18:50:49 +0000 (18:50 +0000)]
Doc fixes.
(customize-set-variable, customize-save-variable): Rename args for
doc.
(custom-variable-tag-face, custom-face-tag-face)
(custom-group-tag-face-1, custom-group-tag-face): Modify from
style which user identify as hyperlink.
(hook): Don't add undefined functions to the hook.
(debug-ignored-errors): Transfer message from bindings.el.