(Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
AFTER_POTENTIAL_GC calls around calls to functions that can
signal an error and thus invoke the debugger.
(lispy_mouse_names): Variable removed.
(Vlispy_mouse_stem): New variable.
(syms_of_keyboard): Initialize Vlispy_mouse_stem.
(make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
for any mouse button number. Increase size of mouse_syms and
button_down_location as needed. Call modify_event_symbol with
different arguments.
(make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
Call modify_event_symbol with different arguments.
(make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
for any button number. Call modify_event_symbol with different
arguments.
(modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
Accept a string for NAME_ALIST_OR_STEM.
Stefan Monnier [Sun, 2 Apr 2000 23:56:46 +0000 (23:56 +0000)]
* regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
(RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
(GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
we are between str1 and str2.
(MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
(PATFETCH): Use `TRANSLATE'.
(PATFETCH_RAW): Fetch multibyte char if applicable.
(PATUNFETCH): Remove.
(regex_compile): Rely on PATFETCH to do most of the multibyte magic.
When writing a char, write it directly into the pattern buffer rather
than going needlessly through a temp char-array.
(re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
multibyte magic and remove the useless `#ifdef emacs'.
(bcmp_translate): Don't compare as multibyte chars when in a unibyte
buffer.
* regex.h (struct re_pattern_buffer): Make field `multibyte'
conditional on `emacs'.
* charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
Ken Raeburn [Sun, 2 Apr 2000 02:42:12 +0000 (02:42 +0000)]
* composite.c (run_composite_function): Use NILP when checking for nil.
(syms_of_composite): Delete local var NARGS, pass an int as first argument to
Fmake_hash_table.
Ken Raeburn [Sun, 2 Apr 2000 02:31:07 +0000 (02:31 +0000)]
* editfns.c (text_property_stickiness, Fmessage_or_box): Use NILP to test
Lisp_Object boolean value.
(Fformat): Use a temporary variable to avoid ENABLE_CHECKING problems reading
from and changing the same lisp value in an XSETSTRING call.
Ken Raeburn [Sun, 2 Apr 2000 01:52:58 +0000 (01:52 +0000)]
* alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand non-union-type
versions of XMARK and friends here, because XMARK and friends won't work on an
integer field if NO_UNION_TYPE is not defined.
(make_number): Define as a function if it's not defined as a macro.
(TN_no_color_video): New variable.
(term_init): Intitialize TN_no_color_video.
(enum no_color_bit): New enumeration.
(MAY_USE_WITH_COLORS_P): New macro.
(turn_on_face): Use it to determine if attributes may be used
combined with colors.
Ken Raeburn [Sat, 1 Apr 2000 12:59:53 +0000 (12:59 +0000)]
Fix Lisp_Object/int type confusion revealed by making Lisp_Object a union type:
* xdisp.c (compute_string_pos): Fix order of arguments to
string_pos_nchars_ahead.
(handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
count arg to variable-arg routines like Frun_hook_with_args and Fformat.
(back_to_previous_visible_line_start, build_desired_tool_bar_string):
Pass Lisp_Object, not int, to fixed-arg routines like
Fget_char_property and Fmake_string.
(reconsider_clip_changes): Use XINT when comparing integer lisp
objects, or passing them as int arguments.
(mark_window_display_accurate, insert_left_trunc_glyphs, append_space,
extend_face_to_end_of_line): Use make_number when storing or passing
integer values as lisp objects.
(set_cursor_from_row, highlight_trailing_whitespace): Use INTEGERP,
not implicit test against zero, for glyph object.
(try_window_id): Don't use make_number when we want an int value.
* xfaces.c (xlfd_symbolic_value): Make last argument a Lisp_Object, to
be consistent with callers.
(Fbitmap_spec_p): Use XINT to get numeric value of height.
(lface_hash): Apply XFASTINT to lisp values before folding in.
* xfns.c (Fx_show_tip): Use make_number to get lisp objects to fill in window
width and height. Pass an int, not a lisp object, as first arg to Finsert.
Ken Raeburn [Sat, 1 Apr 2000 12:39:03 +0000 (12:39 +0000)]
* window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
with int lvalues via casts; instead, just yield lisp object
lvalues.
(enlarge_window): Variable sizep now points to Lisp_Object. Use
proper accessor macros.
(shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
(grow_mini_window): Fix typo getting int value of root->height.
Gerd Moellmann [Fri, 31 Mar 2000 11:25:10 +0000 (11:25 +0000)]
(byte-compile-inline-expand): Look
for function definition in symbol's function value slot first
instead of first consulting byte-compile-function-environment.
Dave Love [Fri, 31 Mar 2000 10:50:03 +0000 (10:50 +0000)]
Defvar curline when compiling.
(sc-citation-root-regexp, sc-citation-nonnested-root-regexp)
(sc-get-address, sc-attribs-extract-namestring): Use [:alnum:]
rather than a-zA-Z0-9 to allow non-ASCII characters.
Gerd Moellmann [Thu, 30 Mar 2000 13:21:45 +0000 (13:21 +0000)]
PostScript programming fix for ghostview, doc fix.
(ps-print-version): New version number (5.1.3).
(ps-begin-file, ps-begin-job, ps-set-color, ps-do-despool, ps-setup)
(ps-insert-file, ps-output-boolean, ps-plot-with-face)
(ps-generate-postscript-with-faces): Code fix.
(ps-color-values): XEmacs compatibility.
(ps-print-background-image, ps-print-background-text, ps-printer-name)
(ps-default-fg, ps-default-bg): Adjust customization.
(ps-zebra-color): Adjust customization, renaming old ps-zebra-gray var.
(ps-color-scale): Renaming old ps-color-value fun.
(ps-print-headers): Replace ps-print-header group to avoid conflict
with ps-print-header variable.
(ps-print-miscellany): New group.
(ps-format-color, ps-rgb-color): New funs.
(ps-default-foreground): New var.
(ps-printer-name-option): New const.
Peter Breton [Thu, 30 Mar 2000 10:20:29 +0000 (10:20 +0000)]
network-connection-mode is derived from comint-mode
Added network-connection-mode-setup function
Save host and port/service information in local variables
Ken Raeburn [Wed, 29 Mar 2000 22:14:34 +0000 (22:14 +0000)]
Stop assuming interval pointers and lisp objects can be distinguished by
inspection. Beginnings of support for expensive internal consistency checks.
* config.in (ENABLE_CHECKING): Undef.
* lisp.h (struct interval): Replace "parent" field with a union of interval
pointer and Lisp_Object; add new bitfield to use as discriminant. Change other
flag fields to bitfields.
(CHECK): New macro for consistency checking. If ENABLE_CHECKING is defined and
the supplied test fails, print a message and abort.
(eassert): New macro. Use CHECK to provide an assert-like facility.
* intervals.h (NULL_INTERVAL_P): Now applies only to real interval pointers;
abort if the value looks like a lisp object.
(NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT, SET_OBJECT,
INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT): Modify for new interval
parent definition.
* alloc.c (mark_interval_tree, MARK_INTERVAL_TREE, UNMARK_BALANCE_INTERVALS):
Update references that need an addressable lisp object in the interval
structure.
(die): New function.
(suppress_checking): New variable.
* intervals.c (interval_start_pos): Just return 0 if there's no parent object.
Dave Love [Wed, 29 Mar 2000 21:47:07 +0000 (21:47 +0000)]
Doc fixes.
(appt-check): Convert min-to-app to a string before passing to
appt-disp-window-function or concat.
(appt-delete-window): Remove test for frame-root-window.
(appt-select-lowest-window, appt-convert-time): Simplify.
Dave Love [Wed, 29 Mar 2000 18:33:24 +0000 (18:33 +0000)]
Move provide to end. Doc fixes.
(iso-iso2sgml-trans-tab, iso-sgml2iso-trans-tab): New variables.
(iso-iso2sgml, iso-sgml2iso): New functions.
(iso-cvt-define-menu): Fix some entries and use backquote for
clarity.