]> code.delx.au - gnu-emacs/blobdiff - src/ChangeLog
(set-display-table-and-terminal-coding-system):
[gnu-emacs] / src / ChangeLog
index e13d55bbb696ee935510713eefc31a754c133897..dd9d9cecb264434258372a5a6704dc7ea065bb89 100644 (file)
@@ -1,3 +1,224 @@
+2003-07-09  Stefan Monnier  <monnier@cs.yale.edu>
+
+       Change overlays_after and overlays_before so the overlays themselves
+       are linked into lists, rather than using cons cells.  After all each
+       Lisp_Misc already occupies 5 words, so we can add a `next' field to
+       Lisp_Overlay for free and save up one cons cell per overlay (not
+       to mention one indirection when traversing the list of overlay).
+
+       * lisp.h (struct Lisp_Overlay): New field `next'.
+
+       * buffer.h (struct buffer): Change overlays_before and overlays_after
+       from Lisp lists of overlays to pointers to overlays.
+
+       * buffer.c (overlay_strings, recenter_overlay_lists):
+       Fix typo in eassert in last commit.
+       (unchain_overlay): New function.
+       (add_overlay_mod_hooklist): Use AREF.
+       (copy_overlays, reset_buffer, overlays_at, overlays_in)
+       (overlay_touches_p, overlay_strings, recenter_overlay_lists)
+       (fix_overlays_in_range, fix_overlays_before, Fmake_overlay)
+       (Fmove_overlay, Fdelete_overlay, Foverlay_lists)
+       (report_overlay_modification, evaporate_overlays, init_buffer_once):
+       Adjust to new type of overlays_(before|after).
+
+       * alloc.c (mark_object): Mark the new `next' field of overlays.
+       (mark_buffer): Manually mark the overlays_(after|before) fields.
+
+       * coding.c (run_pre_post_conversion_on_str):
+       * editfns.c (overlays_around):
+       * xdisp.c (load_overlay_strings):
+       * fileio.c (Finsert_file_contents):
+       * indent.c (current_column):
+       * insdel.c (signal_before_change, signal_after_change):
+       * intervals.c (set_point_both):
+       * print.c (temp_output_buffer_setup): Use new type for
+       overlays_(before|after).
+
+2003-07-08  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * buffer.c (report_overlay_modification): Don't run hooks while
+       traversing the list of overlays.
+
+       * buffer.h (struct buffer): Use an int for overlay_center.
+       (overlays_at, evaporate_overlays, recenter_overlay_lists)
+       (overlay_strings, fix_overlays_before): Use EMACS_INT for positions.
+
+       * buffer.c (reset_buffer, recenter_overlay_lists)
+       (adjust_overlays_for_insert, adjust_overlays_for_delete)
+       (fix_overlays_in_range, Fmake_overlay, Fmove_overlay)
+       (evaporate_overlays, init_buffer_once): Update use of overlay_center.
+       (overlays_at, evaporate_overlays, recenter_overlay_lists)
+       (overlay_strings, fix_overlays_before): Use EMACS_INT for positions.
+
+       * xdisp.c (fast_find_position): Remove unused var.
+
+       * cmds.c (Qexpand_abbrev): New sym.
+       (syms_of_cmds): Initialize it.
+       (internal_self_insert): Use it to call expand-abbrev.
+
+2003-07-09  Kim F. Storm  <storm@cua.dk>
+
+       * xterm.c (use_xim) [!USE_XIM]: Default to disable XIM if emacs
+       was configured with --without-xim.
+       (x_term_init) [!USE_XIM]: Use `useXIM' resource to turn on XIM.
+
+2003-07-07  Richard M. Stallman  <rms@gnu.org>
+
+       * xdisp.c (reseat_1): Set it->area to TEXT_AREA.
+
+       * alloc.c (Fgarbage_collect): Doc fix.
+
+2003-07-07  Nozomu Ando  <nand@mac.com>  (tiny change)
+
+       * buffer.c (Fkill_buffer): Clear charpos cache if necessary.
+
+2003-07-06  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * minibuf.c (read_minibuf): UNGCPRO before returning.
+       (Ftry_completion, Fall_completions): Doc fix.
+
+       * alloc.c (live_float_p): Check that p is not past the `floats' array,
+       now that `floats' is not the last element of the struct any more.
+
+2003-07-06  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.h (ClipboardSequence_Proc): New type.
+
+       * w32fns.c (clipboard_sequence_fn): New variable.
+       (globals_of_w32fns): Initialize it.
+
+       * w32select.c (last_clipboard_sequence_number): New variable.
+       (Fw32_set_clipboard_data, Fw32_get_clipboard_data): Use sequence
+       number if possible.
+
+2003-07-06  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * m/amdx86-64.h (MARKBIT):
+       * m/ia64.h (MARKBIT): Remove definition since lisp.h does not compare
+       MARKBIT and ARRAY_MARK_FLAG any more.
+
+       * m/hp800.h (XSETMARKBIT):
+       * m/sr2k.h (XSETMARKBIT):
+       * lisp.h (XSETMARKBIT): Remove unused macro.
+
+       * lisp.h (mark_object): Change prototype.
+
+       * alloc.c (mark_object): Change arg *Lisp_Object -> Lisp_Object.
+       (last_marked): Change accordingly.
+       (mark_interval, mark_maybe_object, mark_maybe_pointer)
+       (Fgarbage_collect, mark_glyph_matrix, mark_face_cache, mark_image)
+       (mark_buffer): Update calls to mark_object.
+
+       * bytecode.c (mark_byte_stack):
+       * fns.c (sweep_weak_table):
+       * keyboard.c (mark_kboards): Update calls to mark_object.
+
+2003-07-06  Jason Rumney  <jasonr@gnu.org>
+
+       * alloc.c (struct ablock): Only include padding when there is some.
+
+2003-07-04  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * alloc.c (ALIGN): Add casts to simplify usage.
+       (BLOCK_ALIGN, BLOCK_BYTES, ABLOCKS_PADDING, ABLOCKS_SIZE)
+       (ABLOCKS_BYTES, ABLOCK_ABASE, ABLOCKS_BUSY, ABLOCKS_BASE): New macros.
+       (struct ablock, struct ablocks): New types.
+       (free_ablock): New global var.
+       (lisp_align_malloc, lisp_align_free): New functions.
+       (FLOAT_BLOCK_SIZE): Redefine in terms of BLOCK_BYTES.
+       (struct float_block): Reorder and add gcmarkbits.
+       (GETMARKBIT, SETMARKBIT, UNSETMARKBIT, FLOAT_BLOCK, FLOAT_INDEX)
+       (FLOAT_MARKED_P, FLOAT_MARK, FLOAT_UNMARK): New macros.
+       (init_float, make_float): Use lisp_align_malloc.
+       (free_float, live_float_p): Don't use `type' any more.
+       (make_float): Use FLOAT_UNMARK to access to mark bit.
+       (mark_maybe_object, mark_maybe_pointer, survives_gc_p):
+       Use FLOAT_MARKED_P to access the mark bit.
+       (pure_alloc): Simplify use of ALIGN.
+       (mark_object): Use FLOAT_MARK to access the mark bit.
+       (gc_sweep): Use new macros to access the float's mark bit.
+       (init_alloc_once): Init free_ablock.
+
+       * lisp.h (struct Lisp_Float): Remove unused field `type'.
+
+2003-06-27  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * alloc.c (VECTOR_MARK, VECTOR_UNMARK, VECTOR_MARKED_P): New macros.
+       (GC_STRING_BYTES): Don't mask markbit (it's only used on `size').
+       (allocate_buffer): Move.
+       (string_bytes): Don't mask markbit of `size_byte'.
+       (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect)
+       (mark_object, mark_buffer, survives_gc_p, gc_sweep):
+       Use the `size' field of buffers (rather than the `name' field) for
+       the mark bit, as is done for all other vectorlike objects.
+       Use the new macros to access the mark bit of vectorlike objects.
+
+2003-06-26  Richard M. Stallman  <rms@gnu.org>
+
+       * puresize.h (BASE_PURESIZE): Increment base size.
+
+       * xdisp.c (fast_find_position): Enable Gerd's new definition.
+
+       * xterm.c (xim_initialize): Undo previous change.
+
+2003-06-26  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * alloc.c (survives_gc_p): Simplify.
+
+       * buffer.c (set_buffer_internal_1): Test CONSP for lists.
+
+       * window.c (Fset_window_dedicated_p): Simplify.
+       (display_buffer_1): Don't raise the win from which minibuf was entered.
+       (temp_output_buffer_show): Don't assume BEG == 1.  Simplify.
+       (Fminibuffer_selected_window): Simplify.
+
+       * buffer.h (struct buffer_text): Lisp_Object `markers' => Lisp_Marker.
+
+       * lisp.h (unchain_marker): Lisp_Object arg => Lisp_Marker.
+       (struct Lisp_Marker): Lisp_Object `chain' => Lisp_Marker `next'.
+
+       * insdel.c (check_markers, adjust_markers_for_delete)
+       (adjust_markers_for_insert, adjust_markers_for_replace)
+       (prepare_to_modify_buffer, RESTORE_VALUE):
+       * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos)
+       (Fset_marker, set_marker_restricted, set_marker_both, unchain_marker)
+       (set_marker_restricted_both, Fbuffer_has_markers_at, count_markers):
+       * alloc.c (Fmake_marker, free_marker, gc_sweep):
+       * buffer.c (Fget_buffer_create, Fkill_buffer, Fset_buffer_multibyte):
+       * editfns.c (save_excursion_restore, transpose_markers):
+       * window.c (delete_window):
+       * xdisp.c (message_dolog): Update for new types.
+
+2003-06-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * xfaces.c (set_font_frame_param): Set default_face_done_p to zero.
+       (realize_default_face): Use default_face_done_p for the force_p
+       argument to set_lface_from_font_name.  Set default_face_done_p to one.
+
+       * frame.c (make_frame): Initialize default_face_done_p.
+
+       * frame.h (struct frame): Add default_face_done_p.
+
+       * config.in: Add XRegisterIMInstantiateCallback_arg6 so it
+       will be defined.
+
+2003-06-25  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * alloc.c (make_interval, Fmake_symbol, allocate_misc):
+       Initialize the new field `gcmarkbit'.
+       (mark_interval, MARK_INTERVAL_TREE): Use the new `gcmarkbit' field.
+       (mark_interval_tree): Don't mark the tree separately from the nodes.
+       (UNMARK_BALANCE_INTERVALS): Don't unmark the tree.
+       (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect)
+       (mark_object, survives_gc_p, gc_sweep): Use new `gcmarkbit' fields.
+
+       * lisp.h (struct interval, struct Lisp_Symbol, struct Lisp_Free)
+       (struct Lisp_Marker, struct Lisp_Intfwd, struct Lisp_Boolfwd)
+       (struct Lisp_Kboard_Objfwd, struct Lisp_Save_Value)
+       (struct Lisp_Buffer_Local_Value, struct Lisp_Overlay)
+       (struct Lisp_Objfwd, struct Lisp_Buffer_Objfwd): Add `gcmarkbit' field.
+
 2003-06-24  Dave Love  <fx@gnu.org>
 
        * xterm.c (xim_initialize): Use XRegisterIMInstantiateCallback_arg6.