+2000-05-01 Kenichi Handa <handa@etl.go.jp>
+
+ * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
+ Check Vfont_encoding_alist against the full name of the opened
+ font.
+
+2000-04-28 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
+ taller than the window.
+
+2000-04-28 Kenichi Handa <handa@etl.go.jp>
+
+ * xfaces.c (realize_x_face): Fix the argument of the second
+ xassert. BASE_FACE may not be a face for ASCII.
+
+2000-04-27 Gerd Moellmann <gerd@gnu.org>
+
+ * print.c (print_object): Treat print-length < 0 as nil.
+
+ * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
+
+ * s/freebsd.h (TERMCAP_OBJ): Removed.
+ (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
+
+ * lread.c (read1): Don't treat period followed by certain
+ characters as symbol start.
+
+ * xfns.c (slurp_file): New function.
+ (xbm_image_p): Handle case of in-memory XBM files.
+ (xbm_scan): Rewritten to work on memory buffers instead of files.
+ (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
+ Work on memory buffers instead of files. If DATA is null test
+ if buffer looks like an in-memory XBM file.
+ (xbm_load_image): Renamed from xbm_load_image_file. Work on
+ memory buffers instead of files.
+ (xbm_file_p): New function.
+ (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
+
+ * lread.c (end_of_file_error): New function.
+ (read1): Call it instead of signaling `end-of-file' directly.
+
+ * print.c (print_error_message): Print data of `end-of-file'
+ with Fprinc instead of Fprin1.
+
+2000-04-26 Ken Raeburn <raeburn@gnu.org>
+
+ * window.c (freeze_window_start): Check that minibuffer scroll
+ window isn't nil before extracting the window structure pointer
+ from it.
+
+ * undo.c (record_delete): If we hit the end of the undo list, stop
+ picking elements apart.
+
+2000-04-26 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (display_line): If lines are continued, restore
+ iterator's ascent/descent information to the values before the
+ first glyph not fitting on the line.
+
+2000-04-25 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (try_window_id) <all changes above window start>: Adjust
+ positions in glyph matrix. Don't compute new window end
+ positions.
+
+ * dispnew.c (increment_matrix_positions): Renamed from
+ increment_glyph_matrix_buffer_positions.
+ (increment_row_positions): Renamed from
+ increment_glyph_row_buffer_positions.
+
+ * dispextern.h: Change names of renamed functions from dispnew.c
+ in prototypes.
+
+2000-04-24 Gerd Moellmann <gerd@gnu.org>
+
+ * fileio.c (Fdo_auto_save): Create directories for auto-save
+ list file if necessary.
+
+ * xdisp.c (init_iterator): Set iterator's extra_line_spacing
+ from buffer or frame.
+ (automatic_hscrolling_p): New variable.
+ (hscroll_windows): Scroll windows horizontally only if automatic
+ hscrolling is allowed.
+ (syms_of_xdisp): New variable `automatic-hscrolling'.
+
+ * frame.h (struct frame): Add member extra_line_spacing.
+
+ * xfns.c (x_set_line_spacing): New function.
+ (Fx_create_frame): Set line spacing from resources.
+ (Qline_spacing): New variable.
+ (syms_of_xfns): Initialize Qline_spacing.
+
+ * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
+
+ * buffer.c (init_buffer_once): Handle extra_line_spacing.
+ (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
+ (reset_buffer): Don't initialize extra2 and extra3. Initialize
+ extra_line_spacing from default value.
+ (init_buffer_once): Initialize default value of extra_line_spacing.
+
+ * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
+ and extra3.
+
+ * xterm.c (x_produce_glyphs): Remove reference to struct it's
+ prompt_width. Add extra line spacing.
+
+ * term.c (produce_glyphs): Remove reference to struct it's
+ prompt_width.
+
+ * dispextern.h (struct it): Remove member prompt_width, add
+ extra_line_spacing.
+
+2000-04-22 Gerd Moellmann <gerd@gnu.org>
+
+ * dispnew.c (update_frame_line): When writing a whole line, make
+ sure cursor is in the right row afterwards, otherwise a use of
+ capability `ch' in cmgoto might leave the cursor in the row below.
+
+2000-04-21 Gerd Moellmann <gerd@gnu.org>
+
+ * lisp.h (struct Lisp_Buffer_Cons): Remove.
+
+ * keyboard.c (timer_check): Fix typo in comment.
+
+2000-04-21 Kenichi Handa <handa@etl.go.jp>
+
+ * fontset.c (Fset_fontset_font): Fix docstring. Local variable
+ name change: ch -> character.
+
+2000-04-20 Gerd Moellmann <gerd@gnu.org>
+
+ * keyboard.c (echo_message_buffer): New variable.
+ (echo_now): Set echo_message_buffer to the echo area buffer used
+ to display the echo.
+ (cancel_echoing): Reset echo_message_buffer to nil.
+ (read_char): Code rewritten that handles canceling an echo or
+ echoing a dash, respectively.
+
+ * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
+ directory doesn't exist.
+
+2000-04-19 Dave Love <fx@gnu.org>
+
+ * fns.c (syms_of_fns): Defsubr mapc.
+ (concat): Don't allow numeric args.
+ (Fconcat): Doc change.
+
+2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
+
+ * regex.c (re_match_2_internal): Don't shorten the strings anymore,
+ instead define end_match(1|2) more carefully.
+ Use GET_CHAR_BEFORE_2 for `begline'.
+
+2000-04-19 Gerd Moellmann <gerd@gnu.org>
+
+ * frame.h (SELECTED_FRAME): Change definition to compile cleanly
+ on 64-bit systems where NULL is defined as `0'.
+
+ * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
+ the `variable argument list' to make it work on Alpha.
+
+ * m/alpha.h (_LP64) [!_LP64]: Define.
+ (ORDINARY_LINK): Define for NetBSD.
+
+ * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
+
+2000-04-19 Dave Love <fx@gnu.org>
+
+ * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
+ change.
+
+ * Makefile.in (LIBS): Don't use.
+ (GETLOADAVG_OBJ): Define again.
+ (otherobj): Add GETLOADAVG_OBJ.
+
+ * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
+
+2000-04-18 Gerd Moellmann <gerd@gnu.org>
+
+ * lread.c (read_filtered_event): Cancel and start busy cursor.
+
+ * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
+ that the per-character metrics may be null.
+
+2000-04-17 Gerd Moellmann <gerd@gnu.org>
+
+ * buffer.c (clone_per_buffer_values): New function.
+ (Fmake_indirect_buffer): Add optional argument CLONE. Call
+ clone_per_buffer_values if CLONE is not nil.
+
+ * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
+
+2000-04-16 Dave Love <fx@gnu.org>
+
+ * Makefile.in: Remove obsolete localcpp stuff.
+ (GETLOADAVG_OBJ): Don't define.
+ (obj): Move LIBOBJS...
+ (otherobj): ... to here.
+ (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
+ whitespace-only lines after the continuation (Irix).
+
+2000-04-14 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
+
+ * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
+
+2000-04-14 Dave Love <fx@gnu.org>
+
+ * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
+ * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
+ * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
+ * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
+ NLIST_STRUCT.
+
+ * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
+ autoconfiscated HAVE_GETLOADAVG.
+
+ * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
+ BROKEN_MKTIME.
+
+2000-04-14 Gerd Moellmann <gerd@gnu.org>
+
+ * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
+ (fill_in_lock_file_name): Avoid existing files that aren't
+ links.
+
+2000-04-14 Dave Love <fx@gnu.org>
+
+ * Makefile.in (LIBS, LIBOBJS): New variable.
+ (INTERVAL_SRC): Convert to make variable.
+ (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
+ (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
+ (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
+ add LIBOBJS.
+ (SOME_MACHINE_OBJECTS): Remove interval stuff.
+ (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
+ (shortlisp): Add facemenu, float-sup, frame.
+ (SOME_MACHINE_LISP): Remove them from here.
+ (LIBES): Change unused LDLIBS to autoconf LIBS.
+
+ * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
+
+2000-04-14 Kenichi Handa <handa@etl.go.jp>
+
+ * composite.c (update_compositions): If FROM and TO are not in a
+ valid range, do nothing.
+
+2000-04-13 Gerd Moellmann <gerd@gnu.org>
+
+ * tparam.c (tparam1): Abort when encountering an unknown
+ `%'-specifier.
+
+ * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
+ terminfo.o.
+
+ * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
+ as TERMCAP_OBJ.
+
+2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * fileio.c (a_write): Remove redundant semi-colons.
+ (e_write): Return -1 if failed to write all the data.
+ This fixes the changes made at 1999-12-15.
+
+2000-04-12 Dave Love <fx@gnu.org>
+
+ * fns.c (mapcar1): Test for null vals to support mapc.
+ (Fmapc): New function.
+
+2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.c (NUM_MOUSE_BUTTONS): Define.
+ (IT_frame_up_to_date): Support the buffer local value of
+ cursor-type, if defined.
+
+2000-04-10 Dave Love <fx@gnu.org>
+
+ * editfns.c (preceding-char, following-char): Doc fix.
+
+2000-04-10 Ken Raeburn <raeburn@gnu.org>
+
+ * Makefile.in (temacs): Revert 2000-03-12 change.
+
+2000-04-10 Jason Rumney <jasonr@gnu.org>
+
+ * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
+
+2000-04-10 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (setup_echo_area_for_printing): Choose an echo
+ area buffer, if it's not set up yet.
+
+ * 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
+ of re_compile_fastmap and generalizing it a little bit so that it
+ can also just return whether a given (sub)pattern can match the empty
+ string or not.
+ (regex_compile): Use `analyse_first' to decide whether the loop-check
+ needs to be done or not for *, +, *? and +? (the loop check is costly
+ for non-greedy repetition).
+ (re_compile_fastmap): Delegate the actual work to `analyse_first'.
+
+2000-03-28 Dave Love <fx@gnu.org>
+
+ * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
+ alpha.
+
+ * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
+
+2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
+
+ * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
+ an expression.
+ (enum re_opcode_t): Update description of succeed_n.
+ (PATFETCH): Always define.
+ (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
+ operators, char classes, shy-groups and intervals).
+ Optimize special cases of intervals so as to only use succeed_n and
+ jump_n when really needed.
+ (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
+ that we don't have to handle the special cases any more.
+ Simplify on_failure_jump handling as well.
+
+2000-03-28 Jason Rumney <jasonr@gnu.org>
+
+ * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
+
+2000-03-27 Gerd Moellmann <gerd@gnu.org>
+
+ * s/freebsd.h (GC_SETJMP_WORKS): Define.
+
+ * s/msdos.h (GC_SETJMP_WORKS): Define.
+
+ * 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.
+
+ * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
+ to DEC_TEXT_POS and INC_TEXT_POS.
+
+ * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
+ with parameter MULTIBYTE_P.
+
+ * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
+ MULTIBYTE_P.
+
+ * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
+ buffers because it looks for multibyte character byte sequences
+ which don't exist in unibyte text.
+
+ * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
+
+ * xfaces.c (register_color, unregister_color, unregister_colors)
+ [DEBUG_X_COLORS]: New functions.
+ (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
+
+ * xfns.c (x_set_cursor_color): Get color reference counts right.
+
+ * xterm.c (x_copy_color): New function.
+ (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
+
+ * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
+ (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
+ (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
+ (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
+ (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
+ (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
+ (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
+ (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
+ (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
+ (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
+
+ * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
+ names for handling per-buffer variables.
+
+ * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
+ instead of MAX_BUFFER_LOCAL_VARS.
+ (last_per_buffer_idx): Renamed from max_buffer_local_idx.
+
+ * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
+
+ * xfns.c (x_specified_cursor_type): New function.
+ (x_set_cursor_type): Use it.
+
+ * buffer.h (struct buffer): Add cursor_type.
+
+2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
+
+ * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
+ (print_partial_compiled_pattern, re_compile_fastmap): Handle new
+ opcode.
+ (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
+ (re_match_2_internal): Add code for on_failure_jump_nastyloop when
+ executing it as well as when popping it off the stack to find infinite
+ loops in non-greedy repetition operators.
+
2000-03-26 Gerd Moellmann <gerd@gnu.org>
* doc.c (Qfunction_documentation): New variable.