Gerd Moellmann [Sun, 26 Mar 2000 19:32:02 +0000 (19:32 +0000)]
(Qfunction_documentation): New variable.
(syms_of_doc): Initialize Qfunction_documentation.
(Fdocumentation): If FUNCTION is a symbol with non-nil
`function-documentation' property, return a documentation derived
from that.
Gerd Moellmann [Sun, 26 Mar 2000 16:25:09 +0000 (16:25 +0000)]
(reset_buffer): Initialize buffer's cursor_type.
(init_buffer_once): Set default cursor_type value to t.
Mark cursor_type as local everywhere.
(syms_of_buffer): New per-buffer variable cursor-type.
Gerd Moellmann [Sun, 26 Mar 2000 14:07:30 +0000 (14:07 +0000)]
(buffer_permanent_local_flags): Make a char array.
(max_buffer_local_idx): New variable.
(reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
for new handling of per-buffer variables.
(buffer_slot_type_mismatch): Use new macros for per-buffer vars.
(init_buffer_once): Initialize per-buffer vars differently.
Set max_buffer_local_idx.
Gerd Moellmann [Sun, 26 Mar 2000 14:05:44 +0000 (14:05 +0000)]
(do_symval_forwarding, store_symval_forwarding)
(find_symbol_value, set_internal, default_value, Fset_default)
(Fkill_local_variable, Flocal_variable_p): Use new macros for
per-buffer variables.
Gerd Moellmann [Fri, 24 Mar 2000 20:49:56 +0000 (20:49 +0000)]
(open_paren_in_column_0_is_defun_start): New variable.
(find_defun_start): Consider an open parenthesis in column 0
a defun start only if open_paren_in_column_0_is_defun_start is set.
(syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
Gerd Moellmann [Fri, 24 Mar 2000 20:45:10 +0000 (20:45 +0000)]
(msb--choose-file-menu): Use `(apply #'list ...)'
instead of copy-list which is a function from CL.
(msb--choose-menu, msb--mode-menu-cond)
(msb--create-buffer-menu-2): Use dolist instead of mapc.
(msb--init-file-alist): Use mapcar instead of mapcan.
(msb--aggregate-alist): Use mapcar instead of mapcan. Fix
`(' in column 0 in doc string.
(msb--add-separators): Use mapcar instead of mapcan.
Gerd Moellmann [Fri, 24 Mar 2000 20:42:41 +0000 (20:42 +0000)]
(beginning-of-defun-raw): Add regexp
matching open parenthesis in column 0 to defun-prompt-regexp
only if open-paren-in-column-0-is-defun-start is set.
Stefan Monnier [Fri, 24 Mar 2000 18:37:48 +0000 (18:37 +0000)]
(byte-compile-warning-types, byte-compile-warnings): New warning `noruntime'.
(byte-compile-constants, byte-compile-variables): Fix docstring.
(byte-compile-initial-macro-environment): Use `byte-compile-eval' to
execute `eval-whenc-compile's body.
(byte-compile-unresolved-functions): Fix docstring.
(byte-compile-eval): New function.
(byte-compile-callargs-warn): Check if the function will be available
at runtime (via property `byte-compile-noruntime').
(byte-compile-print-syms): New function.
(byte-compile-warn-about-unresolved-functions): Also warn about
`noruntime' functions (and use `byte-compile-print-syms').
(byte-compile-file): Capitalize the message.
Gerd Moellmann [Fri, 24 Mar 2000 12:14:43 +0000 (12:14 +0000)]
(bootstrap-clean): If $(emacs) exists, build
loaddefs.el first. A loaddefs.el that's not up-to-date might
cause a bootstrap failure because things don't autoload as
expected.
Gerd Moellmann [Thu, 23 Mar 2000 13:53:14 +0000 (13:53 +0000)]
Changed the type of parameter passed to the
function defined by `quickurl-format-function'. Before only the
text of the URL was passed. Now the whole URL structure is passed
and the function is responsible for extracting the parts it
requires. Changed the default of `quickurl-format-function'
accordingly.
(quickurl-insert): Changed the `funcall' of
`quickurl-format-function' to match the above change.
(quickurl-list-insert): Changed the `url' case so that it makes
use of `quickurl-format-function', previous to this the format was
hard wired.
Stefan Monnier [Thu, 23 Mar 2000 02:39:58 +0000 (02:39 +0000)]
(makefile-warn-suspicious-lines): clean
up the code and the regexp and make sure the cursor is temporarily
moved to the suspicious line while querying the user.
Jason Rumney [Wed, 22 Mar 2000 23:15:30 +0000 (23:15 +0000)]
(single_submenu): Set help string to NULL if none.
(w32_menu_show): Set help string correctly.
(add-menu-item): Set help string in MIIM_DATA for menu item.
Load SetMenuItemInfoA explicitly.
(w32_menu_display_help): New function.
Jason Rumney [Wed, 22 Mar 2000 22:29:41 +0000 (22:29 +0000)]
(w32_wnd_proc): Handle WM_MENUSELECT message.
(QCdata): Moved to xdisp.c.
Include fontset.h after dispextern.h.
(Fx_create_frame): Do not create fontset.
(w32_load_system_font): Doc fix.
(Fx_close_connection): Free full_name if it is not shared.
Ken Raeburn [Wed, 22 Mar 2000 21:44:05 +0000 (21:44 +0000)]
Changes towards better type safety regarding intervals, primarily
regarding the "parent" handle. These just separate out the different
usages based on the type of parent (interval vs lisp object); later
changes will do type checking and enforcement.
* intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
(INT_LISPLIKE): New macro.
(NULL_INTERVAL_P): Use it.
(INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
* alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
explicit references to "parent" field of struct interval and
associated unclean type conversions.
* intervals.c (create_root_interval, root_interval, rotate_right,
rotate_left, balance_possible_root_interval, split_interval_right,
split_interval_left, interval_start_pos, find_interval,
next_interval, previous_interval, update_interval,
adjust_intervals_for_insertion, delete_node, delete_interval,
adjust_intervals_for_deletion, merge_interval_right,
merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
copy_intervals_to_string): Likewise.
* intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
Likewise.
* syntax.c (update_syntax_table): Likewise.
* intervals.c (reproduce_tree_obj): New function, like
reproduce_tree but takes a Lisp_Object for the parent. Declare
with prototype.
(graft_intervals_into_buffer): Use it when appropriate.
(reproduce_tree): Declare with prototype.
(balance_possible_root_interval): Check that the parent is a lisp
object before trying to examine its type.
Stefan Monnier [Wed, 22 Mar 2000 04:18:10 +0000 (04:18 +0000)]
(CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
definitions for non-Emacs compilation.
(enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
outside of `#ifdef emacs'.
(print_partial_compiled_pattern): Update.
(regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
(re_compile_fastmap): Merge handling of charset and charset_not (for
emacs and non-emacs compilation as well).
Similarly for (not)categoryspec and (not)syntaxspec.
Don't use the fastmap when reaching `anychar' since the added
complexity is not justified.
(re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
and (not)syntaxspec. Merge (not)categoryspec.
Stefan Monnier [Wed, 22 Mar 2000 03:10:07 +0000 (03:10 +0000)]
(find-file-run-dired): Update docstring.
(find-directory-functions): New hook.
(find-file-noselect): Run find-directory-functions rather than
calling dired directly.
Stefan Monnier [Wed, 22 Mar 2000 02:57:23 +0000 (02:57 +0000)]
* pcvs.el: Add a minimal leading commentary.
(cvs-make-cvs-buffer): Change the header part by removing the startup
message and adding a `Module' entry. Also replace the FOOTER and
HEADER special fileinfos with the new support in ewoc for updating
its own footer and header.
(cvs-update-header): Update to use the header/footer of the ewoc.
(cvs-mode): Use define-derived-mode and set truncate-lines to t.
(cvs-is-within-p): New function.
(cvs-mode-run): Take advantage of `save-some-buffers's new ability
to only examine some subset of the buffers.
* pcvs-info.el (cvs-fileinfo-pp): Use the new property-preserving
`format' instead of our own ad-hoc functions.
Remove HEADER and FOOTER cases, now handled in the EWOC.
(cvs-fileinfo<): Remove HEADER and FOOTER cases.
* pcvs-parse.el (cvs-parse-run-table): Change message for unknown
output to avoid scaring the user.
(cvs-parse-table): Catch message for non-up-to-date commits.
* pcvs-defs.el (cvs-startup-message): Remove.
(cvs-global-menu): New autoloaded menu.
* pcvs-util.el (cvs-string-fill): Remove.
* emacs-lisp/ewoc.el (ewoc--create-special-node): Remove.
(ewoc--refresh-node): Don't take the whole EWOC but only the relevant
PP part of it and also make it work for footers and headers.
(ewoc-create): Drop POS and BUFFER arguments.
Use the DLL's dummy node to store the end-of-footer position.
(ewoc-map, ewoc-invalidate): Update call to ewoc--refresh-node.
(ewoc-refresh): Remove unused `header' variable.
(ewoc-(get|set)-hf): New functions.
Stefan Monnier [Wed, 22 Mar 2000 01:10:09 +0000 (01:10 +0000)]
(log-view-(msg|file)-(prev|next)): Rename from
log-view-*-(message|file) and use easy-mmode-define-navigation.
(log-view-message-re): Match SCCS format as well.
And match the revision line rather than the dashed separator line.
(log-view-mode): Use the new define-derived-mode.
(log-view-current-tag): Fill in with an actual implementation.
Stefan Monnier [Wed, 22 Mar 2000 01:01:36 +0000 (01:01 +0000)]
(cvs-status-(prev|next)): Rename from
cvs-status-(prev|next)-entry and use easy-mmode-define-navigation.
(cvs-tree-dstr-*): Rename from cvstree-dstr-* and use two ascii chars
to let the output "breathe" a little more (more readable).
Stefan Monnier [Wed, 22 Mar 2000 00:54:55 +0000 (00:54 +0000)]
(smerge-auto-leave): New function and variable.
(smerge-basic-map): Rename from smerge-basic-keymap.
Change the bindings for smerge-diff-*.
(smerge-*-map): Use easy-mmode-defmap.
(smerge-(next|prev)): Use easy-mmode-define-navigation.
(smerge-keep-*): Use smerge-auto-leave.
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.