*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
index 3f33d4c..15ce2c0 100644 (file)
@@ -1,3 +1,289 @@
+2000-04-10  Gerd Moellmann  <gerd@gnu.org>
+
+       * indent.c (compute_motion): Set immediate_quit.
+
+2000-04-09  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
+       variable.
+       (realize_tty_face): Suppress boldness if colors are the inverse of
+       the default colors, and tty_suppress_bold_inverse_default_colors_p
+       is set.
+       (Ftty_suppress_bold_inverse_default_colors): New function.
+       (syms_of_xfaces): Defsubr it.
+
+       * buffer.c (Frestore_buffer_modified_p): New function.
+       (syms_of_buffer): Defsubr it.
+
+2000-04-08  Ken Raeburn  <raeburn@gnu.org>
+
+       * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
+       charset id (int) argument, not a charset (Lisp_Object).
+
+       * coding.h (code_convert_string): Declare.
+       * coding.c (code_convert_string_norecord): Pass an int, not a lisp
+       object, as the fourth argument to code_convert_string.
+
+       * fontset.c (make_fontset_for_ascii_face): Use XINT on return
+       value.
+       (Fset_fontset_font): Use EQ to compare lisp objects.
+
+2000-04-05  Ken Raeburn  <raeburn@gnu.org>
+
+       * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
+       a pointer that looks like a lisp object.
+       (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
+       zero, instead see whether it's an integer object, since they can't
+       have intervals.
+       (GET_INTERVAL_OBJECT): Simply assign to the destination.
+
+       * dispnew.c (allocate_matrices_for_frame_redisplay,
+       direct_output_forward_char): Use X(U)INT and make_number as needed
+       to convert between (unsigned) int values and lisp integers.
+       * keyboard.c (read_key_sequence): Likewise.
+       * lread.c (substitute_object_recurse): Likewise.
+       * fns.c (concat, hash_lookup, hash_remove): Likewise.
+       * minibuf.c (do_completion, Fminibuffer_complete_word,
+       Fminibuffer_completion_help): Likewise.
+       * term.c (produce_special_glyphs): Likewise.
+
+       * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
+       * print.c (print_preprocess, print_object): Likewise.
+
+       * search.c (compile_pattern): Use NILP when checking for nil.
+
+       * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
+       __OPTIMIZE__]: Provide a GNU C macro version that handles
+       lisp-object unions.
+       (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
+       field, to better cope with ENABLE_CHECKING and calls that modify a
+       Lisp_Object using its old value.
+
+2000-04-04  Gerd Moellmann  <gerd@gnu.org>
+
+       * window.c (compare_window_configurations): Signal an error
+       if parameters C1 or C2 aren't window configurations.
+
+       * bytecode.c (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.
+
+2000-04-03  Gerd Moellmann  <gerd@gnu.org>
+
+       * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
+       an error if decoding fails.
+
+       * keyboard.c (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.
+
+       * lisp.h (larger_vector): Add prototype.
+
+       * fns.c (larger_vector): Make externally visible.
+
+       * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
+
+2000-04-02  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * 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.
+
+2000-04-01  Ken Raeburn  <raeburn@gnu.org>
+
+       * 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.
+
+       * 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.
+
+       * editfns.c (text_property_stickiness): Use NILP to test
+       Lisp_Object boolean value.
+       (Fmessage_or_box): Don't use NILP to test int variable.
+       (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
+       problems reading from and changing the same lisp value in an
+       XSETSTRING call.
+
+2000-04-01  Gerd Moellmann  <gerd@gnu.org>
+
+       * term.c (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.
+
+2000-04-01  Ken Raeburn  <raeburn@gnu.org>
+
+       * 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.
+
+       * 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.
+
+2000-04-01  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c (realize_basic_faces): Block input while realizing
+       the faces.
+
+       * keyboard.c (lispy_mouse_names): Add additional mouse names.
+
+       * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
+
+2000-03-31  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.c (x_produce_glyphs): When displaying unibyte text
+       or ASCII, handle case that per-char metric is null.
+
+2000-03-30  Ken Raeburn  <raeburn@gnu.org>
+
+       * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
+
+       * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
+       XSUBR, XBUFFER): Verify correct object type before returning
+       pointer, using eassert.
+       * frame.h (XFRAME): Likewise.
+
+       * buffer.c (Frename_buffer, Fset_buffer_multibyte,
+       swap_out_buffer_local_variables, Fmove_overlay): Don't apply
+       XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
+       type.
+       * data.c (set_internal): Likewise.
+       * dispextern.h (WINDOW_WANTS_MODELINE_P,
+       WINDOW_WANTS_HEADER_LINE_P): Likewise.
+       * fileio.c (auto_save_1): Likewise.
+       * insdel.c (check_markers): Likewise.
+       * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
+       * undo.c (record_insert): Likewise.
+       * vmsproc.c (child_sig): Likewise.
+       * window.c (unshow_buffer, window_loop): Likewise.
+       * xterm.c (x_erase_phys_cursor): Likewise.
+
+2000-03-30  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfns.c (free_image_cache): Free the cache structure itself
+       last, after all its members have been freed.
+
+       * lisp.h (xstrdup): Add prototype.
+
+       * alloc.c (xstrdup): Moved here from xfaces.c.
+       (allocating_for_lisp): Variable removed.
+       (lisp_malloc): Block input around the calls to malloc and
+       mem_insert.
+
+       * xfaces.c (realize_tty_face): Use find_symbol_value instead
+       of Fsymbol_value.
+       (xstrdup): Moved to alloc.c.
+
+2000-03-29  Ken Raeburn  <raeburn@gnu.org>
+
+       * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
+
+       * emacs.c (main): Fix sense of no-loadup test.
+
+       * 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.
+
+2000-03-29  Gerd Moellmann  <gerd@gnu.org>
+
+       * lread.c (read1): Accept `.' (period) as symbol start like in CL
+       and earlier Emacs versions.
+
+       * keyboard.c (Ftop_level): Cancel busy-cursor.
+
+       * eval.c (call_debugger): Cancel busy-cursor.
+
+2000-03-29  Kenichi Handa  <handa@etl.go.jp>
+
+       * search.c (Freplace_match): Adjust multibyteness of the current
+       buffer and NEWTEXT.  Free allocated memory before signaling an
+       error.
+
 2000-03-28  Stefan Monnier  <monnier@cs.yale.edu>
 
        * regex.c (analyse_first): New function obtained by ripping out most
 
        * alloc.c: Include stdio.h.  Test STDC_HEADERS, not __STDC__.
 
-2000-03-27  gerd  <gerd@dlpx1>
-
-       * alloc.c (mark_maybe_object): New function.
-       (mark_memory): Use it.
-       (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
-       (setjmp_tested_p, longjmp_done): New variables.
-       (test_setjmp): New function.
-       (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
-       (init_alloc): Initialize setjmp_tested_p and longjmp_done.
-
 2000-03-27  Stefan Monnier  <monnier@cs.yale.edu>
 
        * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as