Commit Graph

878 Commits

Author SHA1 Message Date
Paul Eggert
e32a579975 Use Gnulib stdalign and environ modules (Bug#9772, Bug#9960).
* .bzrignore: Add lib/stdalign.h.
* config.bat: Do not set NO_DECL_ALIGN; no longer needed.
Copy lib/stdalign.in.h to lib/stdalign.in-h as needed.
* configure.ac (HAVE_ATTRIBUTE_ALIGNED): Remove the code that
fiddles with this, as gnulib now does this for us.
* admin/merge-gnulib: Add environ, stdalign.
* m4/environ.m4: New file, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/stdalign.in.h, m4/stdalign.m4: New files, from gnulib.
* sed2v2.inp (HAVE_ATTRIBUTE_ALIGNED): Remove edit.
* sedlibmk.inp (STDALIGN_H, @GL_GENERATE_STDALIGN_H_TRUE@)
(GL_GENERATE_STDALIGN_H_FALSE): New edits.
* nt/config.nt (HAVE_ATTRIBUTE_ALIGNED): Remove.
* src/alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
Simplify by using alignof.
(pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
* src/lisp.h: Include <stdalign.h>.
(GCALIGNMENT): New macro and constant.
(DECL_ALIGN): Remove.  All uses replaced by alignas (GCALIGNMENT).
(USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
(stdalign): New macro, if not already defined.
2012-07-28 16:05:32 -07:00
Eli Zaretskii
3438fe218c Fix failure to compile on Windows due to 2012-07-27T06:04:35Z!dmantipov@yandex.ru.
src/lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
 enumeration constants, as PURE and HEAP are too general, and clash
 with other headers and sources, such as gmalloc.c and the
 MS-Windows system headers.  All users changed.
2012-07-27 12:24:34 +03:00
Dmitry Antipov
694b6c97eb Utility function to make a list from specified amount of objects.
* lisp.h (enum constype): New datatype.
(listn): New prototype.
* alloc.c (listn): New function.
(Fmemory_use_count, syms_of_alloc): Use it.
* buffer.c (syms_of_buffer): Likewise.
* callint.c (syms_of_callint): Likewise.
* charset.c (define_charset_internal): Likewise.
* coding.c (syms_of_coding): Likewise.
* keymap.c (syms_of_keymap): Likewise.
* search.c (syms_of_search): Likewise.
* syntax.c (syms_of_syntax): Likewise.
* w32.c (init_environment): Likewise.
* w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
* xdisp.c (syms_of_xdisp): Likewise.
* xfns.c (syms_of_xfns): Likewise.
2012-07-27 10:04:35 +04:00
Dmitry Antipov
04e9897cf7 Adjust buffer text indirection counters at the end of Fkill_buffer.
* buffer.c (Fkill_buffer): Adjust indirection counters when the
buffer is definitely dead.  This should really fix an issue reported
by Christoph Scholtes again.  (Bug#12007).
(init_buffer_once): Initialize indirection counters of
buffer_defaults and buffer_local_symbols (for sanity and safety).
2012-07-25 09:09:02 +04:00
Dmitry Antipov
fa691a83f0 Simplify copy_overlay.
* buffer.c (copy_overlay): Simplify, use build_marker.
* lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
2012-07-24 10:45:44 +04:00
Dmitry Antipov
d7a7fda3cc Cleanup miscellaneous objects allocation and initialization.
* alloc.c (allocate_misc): Change to static.  Add argument to
specify the subtype.  Adjust comment and users.
(build_overlay): New function.
* buffer.c (copy_overlays, Fmake_overlay): Use it.
* lisp.h (struct Lisp_Overlay): Remove obsolete comment.
(allocate_misc): Remove prototype.
(build_overlay): Add prototype.
2012-07-23 15:15:43 +04:00
Dmitry Antipov
372f8ffc2e Swap buffer text indirection counters in Fbuffer_swap_text.
* buffer.c (Fbuffer_swap_text): Swap indirections too.
This avoids crash reported by Christoph Scholtes at
http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
2012-07-23 11:14:58 +04:00
Dmitry Antipov
9928463dcd Add indirection counting to speed up Fkill_buffer.
* buffer.h (struct buffer): New member.
* buffer.c (Fget_buffer_create): Set indirection counter to 0.
(Fmake_indirect_buffer): Set indirection counter to -1, increment
base buffer indirection counter.
(compact_buffer): If ENABLE_CHECKING, verify indirection counters.
(Fkill_buffer): Adjust indirection counters as needed, don't walk
through buffer list if indirection counter is 0.
2012-07-20 20:05:47 +04:00
Dmitry Antipov
f8643a6b9e Extend the value returned by Fgarbage_collect with heap statistics.
* alloc.c (Qheap): New symbol.
(syms_of_alloc): DEFSYM it.
(Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
(Fmemory_free): Remove.
(syms_of_alloc): Don't defsubr it.
* buffer.c (Fcompact_buffer): Remove.
(syms_of_buffer): Don't defsubr it.
2012-07-20 18:07:28 +04:00
Paul Eggert
52b852c77d * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
(FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
'for_each_per_buffer_object_at'.
All uses changed.  It's better to use upper-case for macros that
cannot be implemented as functions, to give the reader a clue
that they're special.
2012-07-19 15:35:58 -07:00
Dmitry Antipov
9cd47b72e0 Compact buffers when idle.
* lisp/compact.el: New file.
* src/buffer.c (compact_buffer, Fcompact_buffer): New function.
(syms_of_buffer): Register Fcompact_buffer.
* src/alloc.c (Fgarbage_collect): Use compact_buffer.
* src/buffer.h (compact_buffer): New prototype.
(struct buffer_text): New member.
2012-07-19 12:56:53 +04:00
Dmitry Antipov
d17337e501 New macro to iterate over all buffers, miscellaneous cleanups.
* lisp.h (all_buffers): Remove declaration.
* buffer.h (all_buffers): Add declaration, with comment.
(for_each_buffer): New macro.
* alloc.c (Fgarbage_collect, mark_object): Use it.
* buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
(init_buffer): Likewise.
* data.c (Fset_default): Likewise.
* coding.c (code_conversion_restore): Remove redundant check
for dead buffer.
* buffer.c (Fkill_buffer): Likewise.  Remove obsolete comment.
2012-07-19 07:55:59 +04:00
Stefan Monnier
4dc7c8d579 Merge from emacs-24 2012-07-17 07:52:00 -04:00
Dmitry Antipov
22657b4098 Cleanup overlays checking.
* buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
* buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
eassert and OVERLAYP.
(sort_overlays): Change to use OVERLAYP.
2012-07-17 08:29:50 +04:00
Andreas Schwab
8a05d57a7d Fixes: debbugs:11917
Fix crash when creating indirect buffer
* buffer.c (buffer_lisp_local_variables): Add argument CLONE.
Don't handle unbound variables specially if non-zero.
(Fbuffer_local_variables): Pass zero.
(clone_per_buffer_values): Pass non-zero.
2012-07-12 09:12:24 +02:00
Paul Eggert
e9a9ae0350 EMACS_TIME simplification (Bug#11875).
This replaces macros (which typically do not work in GDB)
with functions, typedefs and enums, making the code easier to debug.
The functional style also makes code easier to read and maintain.
* lib-src/profile.c (TV2): Remove no-longer-needed static var.
* src/systime.h: Include <sys/time.h> on all hosts, not just if
WINDOWSNT, since 'struct timeval' is needed in general.
(EMACS_TIME): Now a typedef, not a macro.
(EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
not macros.
(EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
(EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
(EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
(EMACS_TIME_LE): Now functions, not macros.
(EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
(EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
which are not functions.  All uses rewritten to use:
(make_emacs_time): New function.
(EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
(EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
not functions.  All uses rewritten to use the following, respectively:
(emacs_secs_addr, invalid_emacs_time, get_emacs_time)
(add_emacs_time, sub_emacs_time): New functions.
* src/atimer.c: Don't include <sys/time.h>,	as "systime.h" does this.
* src/fileio.c (Fcopy_file):
* src/xterm.c (XTflash): Get the current time closer to when it's used.
* src/makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
2012-07-10 16:24:36 -07:00
Dmitry Antipov
2a0213a6d0 Optimize pure C strings initialization.
* lisp.h (make_pure_string): Fix prototype.
(build_pure_c_string): New function, defined as static inline.  This
provides a better opportunity to optimize away calls to strlen when
the function is called with compile-time constant argument.
* alloc.c (make_pure_c_string): Fix comment.  Change to add nchars
argument, adjust users accordingly.  Use build_pure_c_string where
appropriate.
* buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
* keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
* xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
2012-07-10 12:43:46 +04:00
Dmitry Antipov
cb1caeaf2b Avoid calls to strlen in miscellaneous functions.
* buffer.c (init_buffer): Use precalculated len, adjust if needed.
* font.c (Ffont_xlfd_name): Likewise.  Change to call make_string.
* lread.c (openp): Likewise.
2012-07-10 11:59:31 +04:00
Dmitry Antipov
a8290ec31c Use make_formatted_string to avoid double length calculation.
* lisp.h (make_formatted_string): New prototype.
* alloc.c (make_formatted_string): New function.
* buffer.c (Fgenerate_new_buffer_name): Use it.
* dbus.c (syms_of_dbusbind): Likewise.
* editfns.c (Fcurrent_time_zone): Likewise.
* filelock.c (get_boot_time): Likewise.
* frame.c (make_terminal_frame, set_term_frame_name)
(x_report_frame_params): Likewise.
* image.c (gs_load): Likewise.
* minibuf.c (get_minibuffer): Likewise.
* msdos.c (dos_set_window_size): Likewise.
* process.c (make_process): Likewise.
* xdisp.c (ensure_echo_area_buffers): Likewise.
* xsettings.c (apply_xft_settings): Likewise.
2012-07-09 16:02:27 +04:00
Dmitry Antipov
7b7ae96547 * buffer.c (unchain_overlay): Simplify. Add comment.
* marker.c (unchain_marker): Simplify.  Fix comments.
2012-07-06 11:34:37 +04:00
Dmitry Antipov
657924ff58 Introduce fast path for the widely used marker operation.
* alloc.c (build_marker): New function.
* lisp.h (build_marker): New prototype.
* buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
* composite.c (autocmp_chars): Likewise.
* editfns.c (buildmark): Remove.
(Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
(save_restriction_save): Use build_marker.
* marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
* window.c (save_window_save): Likewise.
2012-07-06 09:07:44 +04:00
Dmitry Antipov
041a49a645 Do not use Fdelete_overlay in delete_all_overlays
to avoid redundant calls to unchain_overlay.
* buffer.c (drop_overlay): New function.
(delete_all_overlays, Fdelete_overlay): Use it.
* minibuf.c (get_minibuffer): Fix comment.
2012-07-06 08:42:30 +04:00
Paul Eggert
38182d901d More xmalloc and related cleanup.
* alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
* callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
* doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
* font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
* gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
* nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
* regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
* sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
* xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
* xterm.c:
Omit needless casts involving void * pointers and allocation.
Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
as the former is more robust if P's type is changed.
Prefer xzalloc to xmalloc + memset 0.
Simplify malloc-or-realloc to realloc.
Don't worry about xmalloc returning a null pointer.
Prefer xstrdup to xmalloc + strcpy.
* editfns.c (Fmessage_box): Grow message_text by at least 80 when
growing it.
* keyboard.c (apply_modifiers_uncached): Prefer local array to
alloca of a constant.
2012-07-05 11:35:48 -07:00
Dmitry Antipov
23f86fce48 Cleanup xmalloc.
* admin/coccinelle/xzalloc.cocci: Semantic patch to convert
calls to xmalloc with following memset to xzalloc.
* src/lisp.h (xzalloc): New prototype.  Omit needless casts.
* src/alloc.c (xzalloc): New function.  Omit needless casts.
* src/charset.c: Omit needless casts.  Convert all calls to
malloc with following memset to xzalloc.
* src/dispnew.c: Likewise.
* src/fringe.c: Likewise.
* src/image.c: Likewise.
* src/sound.c: Likewise.
* src/term.c: Likewise.
* src/w32fns.c: Likewise.
* src/w32font.c: Likewise.
* src/w32term.c: Likewise.
* src/xfaces.c: Likewise.
* src/xfns.c: Likewise.
* src/xterm.c: Likewise.
* src/atimer.c: Omit needless casts.
* src/buffer.c: Likewise.
* src/callproc.c: Likewise.
* src/ccl.c: Likewise.
* src/coding.c: Likewise.
* src/composite.c: Likewise.
* src/doc.c: Likewise.
* src/doprnt.c: Likewise.
* src/editfns.c: Likewise.
* src/emacs.c: Likewise.
* src/eval.c: Likewise.
* src/filelock.c: Likewise.
* src/fns.c: Likewise.
* src/gtkutil.c: Likewise.
* src/keyboard.c: Likewise.
* src/lisp.h: Likewise.
* src/lread.c: Likewise.
* src/minibuf.c: Likewise.
* src/msdos.c: Likewise.
* src/print.c: Likewise.
* src/process.c: Likewise.
* src/region-cache.c: Likewise.
* src/search.c: Likewise.
* src/sysdep.c: Likewise.
* src/termcap.c: Likewise.
* src/terminal.c: Likewise.
* src/tparam.c: Likewise.
* src/w16select.c: Likewise.
* src/w32.c: Likewise.
* src/w32reg.c: Likewise.
* src/w32select.c: Likewise.
* src/w32uniscribe.c: Likewise.
* src/widget.c: Likewise.
* src/xdisp.c: Likewise.
* src/xmenu.c: Likewise.
* src/xrdb.c: Likewise.
* src/xselect.c: Likewise.
2012-07-05 10:32:41 +04:00
Dmitry Antipov
3884d954f3 * buffer.c (init_buffer_once): Fix initialization of
headers for buffer_defaults and buffer_local_symbols.
Reported by Juanma Barranquero <lekktu@gmail.com>.
2012-07-04 19:49:46 +04:00
Paul Eggert
dea7f1e5a4 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch. 2012-07-03 22:39:36 -07:00
Dmitry Antipov
76046526fe * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch. 2012-07-04 07:49:19 +04:00
Tom Tromey
404dbd373a Auto-generate EXFUN using make-docfile
src
	* window.c (Fset_window_margins, Fset_window_fringes)
	(Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
	* textprop.c (Fprevious_property_change): No longer static.
	* syntax.c (Fsyntax_table_p): No longer static.
	* process.c (Fget_process, Fprocess_datagram_address): No longer
	static.
	* keymap.c (Flookup_key, Fcopy_keymap): No longer static.
	* keyboard.c (Fcommand_execute): No longer static.
	Remove EXFUN.
	* insdel.c (Fcombine_after_change_execute): No longer static.
	* image.c (Finit_image_library): No longer static.
	* fileio.c (Fmake_symbolic_link): No longer static.
	* eval.c (Ffetch_bytecode): No longer static.
	* editfns.c (Fuser_full_name): No longer static.
	* doc.c: (Fdocumentation_property, Fsnarf_documentation): No
	longer static.
	* buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
	static.
	* dired.c (Ffile_attributes): No longer static.
	* composite.c (Fcomposition_get_gstring): No longer static.
	* callproc.c (Fgetenv_internal): No longer static.

	* ccl.h: Remove EXFUNs.
	* buffer.h: Remove EXFUNs.
	* dispextern.h: Remove EXFUNs.
	* intervals.h: Remove EXFUNs.
	* fontset.h: Remove EXFUN.
	* font.h: Remove EXFUNs.
	* dosfns.c (system_process_attributes): Remove EXFUN.
	* keymap.h: Remove EXFUNs.
	* lisp.h: Remove EXFUNs.
	* w32term.h: Remove EXFUNs.
	* window.h: Remove EXFUNs.
	* xsettings.h: Remove EXFUN.
	* xterm.h: Remove EXFUN.

lib-src
	* make-docfile.c (enum global_type) <FUNCTION>: New constant.
	(struct global) <value>: New field.
	(add_global): Add 'value' argument.
	(compare_globals): Sort functions at the end.
	(close_emacs_globals): New function.
	(write_globals): Handle functions.
	(scan_c_file): Call add_global for DEFUN.
2012-07-03 12:24:42 -06:00
Glenn Morris
8e4fd1e172 Speed up generate-new-buffer-name for invisible buffers (bug#1229)
* src/buffer.c (Fgenerate_new_buffer_name):
Speed up finding a new buffer for invisible buffers.

* src/lisp.h (Frandom): Make it visible to C.
2012-07-03 13:47:32 -04:00
Dmitry Antipov
36429c89cb Cleanup basic buffer management.
* buffer.h (struct buffer): Change layout to use generic vector
marking code.  Fix some comments.  Change type of 'clip_changed'
to bitfield.  Remove unused #ifndef old.
(FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
(GET_OVERLAYS_AT): Fix indentation.
(for_each_per_buffer_object_at): New macro.
* buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
(Fbuffer_local_variables): Use it.
(init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
* alloc.c (allocate_buffer): Adjust to match new layout of
struct buffer.  Fix comment.
(mark_overlay): New function.
(mark_buffer): Use it.  Use mark_vectorlike to mark normal
Lisp area of struct buffer.
(mark_object): Use it.  Adjust marking of misc objects
and related comments.
2012-07-03 07:57:52 +04:00
Paul Eggert
d35af63cd6 Support higher-resolution time stamps.
Fixes: debbugs:9000
2012-06-22 14:17:42 -07:00
Martin Rudalics
b7e8d08167 Handle cases where buffer gets killed while running Fkill_buffer (Bug#11665).
* buffer.c (Fkill_buffer): Don't throw an error when the buffer
gets killed during executing of this function (Bug#11665).  Try
to always return Qt when the buffer has been actually killed.
(Vkill_buffer_query_functions): In doc-string say that functions
run by this hook should not change the current buffer.
2012-06-18 09:20:19 +02:00
Andreas Schwab
e5560ff7d2 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
(BUF_FETCH_MULTIBYTE_CHAR): Likewise.
* character.c (_fetch_multibyte_char_p): Remove.
* alloc.c: Include "character.h" before "buffer.h".
* bidi.c: Likewise.
* buffer.c: Likewise.
* bytecode.c: Likewise.
* callint.c: Likewise.
* callproc.c: Likewise.
* casefiddle.c: Likewise.
* casetab.c: Likewise.
* category.c: Likewise.
* cmds.c: Likewise.
* coding.c: Likewise.
* composite.c: Likewise.
* dired.c: Likewise.
* dispnew.c: Likewise.
* doc.c: Likewise.
* dosfns.c: Likewise.
* editfns.c: Likewise.
* emacs.c: Likewise.
* fileio.c: Likewise.
* filelock.c: Likewise.
* font.c: Likewise.
* fontset.c: Likewise.
* fringe.c: Likewise.
* indent.c: Likewise.
* insdel.c: Likewise.
* intervals.c: Likewise.
* keyboard.c: Likewise.
* keymap.c: Likewise.
* lread.c: Likewise.
* macros.c: Likewise.
* marker.c: Likewise.
* minibuf.c: Likewise.
* nsfns.m: Likewise.
* nsmenu.m: Likewise.
* print.c: Likewise.
* process.c: Likewise.
* regex.c: Likewise.
* region-cache.c: Likewise.
* search.c: Likewise.
* syntax.c: Likewise.
* term.c: Likewise.
* textprop.c: Likewise.
* undo.c: Likewise.
* unexsol.c: Likewise.
* w16select.c: Likewise.
* w32fns.c: Likewise.
* w32menu.c: Likewise.
* window.c: Likewise.
* xdisp.c: Likewise.
* xfns.c: Likewise.
* xmenu.c: Likewise.
* xml.c: Likewise.
* xselect.c: Likewise.
2012-06-16 14:24:15 +02:00
Chong Yidong
c5cfcbe076 * buffer.c (word_wrap): Doc fix. 2012-06-06 14:39:24 +08:00
Chong Yidong
5f2c76c6ce Implement default help-echo for mode line.
* lisp/bindings.el: Remove explicit help-echo from format-mode-line.
(mode-line-front-space, mode-line-end-spaces)
(mode-line-misc-info): New variables.
(mode-line-modes, mode-line-position): Move the default value to
the variable definition.
(mode-line-default-help-echo): New defcustom.

* src/buffer.c (buffer_local_value_1): New function, split from
Fbuffer_local_value; can return Qunbound.
(Fbuffer_local_value): Use it.
(Vmode_line_format): Docstring tweaks.

* src/xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
(note_mode_line_or_margin_highlight): If there is no help echo,
use mode-line-default-help-echo.  Handle the case where the mouse
position is past the end of the mode line string.

* doc/lispref/modes.texi (Mode Line Data): Use "mode line construct"
terminology for consistency.
2012-06-03 17:03:23 +08:00
Troels Nielsen
471fe23dc5 Do not avoid creating empty evaporating overlays (Bug#9642).
* buffer.c (Fmove_overlay): Reinstate the earlier fix for
Bug#9642, but explicitly check that the buffer the overlay would
be moved to is live and rearrange lines to make sure that errors
will not put the overlay in an inconsistent state.
(Fdelete_overlay): Cosmetics.
2012-05-29 09:13:38 -07:00
Paul Eggert
024811862b * src/buffer.c (Fmove_overflay): Clip instead of trying to fix bug 9642. 2012-05-25 13:30:19 -07:00
Paul Eggert
42b2a986d9 Merge from trunk. 2012-05-25 11:19:24 -07:00
Eli Zaretskii
52c55cc7d2 Fix bug #11519 with relocation of buffer text during regex search.
src/lisp.h [REL_ALLOC]: Add prototypes for external functions
 defined on ralloc.c.
 src/buffer.c [REL_ALLOC]: Remove prototypes of
 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
 they are now on lisp.h.
 src/ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
 src/search.c (search_buffer): Use it to inhibit relocation of buffer
 text while re_search_2 is doing its job, because re_search_2 is
 passed C pointers to buffer text.
2012-05-23 20:32:28 +03:00
Paul Eggert
261cb4bb75 Assume C89 or later.
* configure.in (AC_C_PROTOTYPES, AC_C_VOLATILE, AC_C_CONST)
(POINTER_TYPE, PROTOTYPES): Remove.
* admin/CPP-DEFINES: Remove NULL, const.
* lib-src/etags.c (static, const): Remove macros.
(PTR): Remove; all uses replaced with void *.  Omit needless casts.
* src/alloc.c, src/buffer.c, lisp.h: Replace POINTER_TYPE with void.
* alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
(xrealloc):
* buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
* editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
* textprop.c, tparam.c (NULL): Remove.
* ralloc.c, vm-limit.c (POINTER): Assume void * works.
* regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
* regex.h (_RE_ARGS): Remove.  All uses rewritten to use prototypes.
* unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
* xterm.c (input_signal_count): Assume volatile works.
2012-05-21 08:36:54 -07:00
Dmitry Antipov
0c16dfed70 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
with RESET_INTERVAL.
* buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
Remove duplicated buffer name initialization.
2012-05-02 13:21:54 -04:00
Paul Eggert
13c379eed0 Do not avoid creating empty evaporating overlays (Bug#9642).
* buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
That is, do not delete an evaporating overlay if it becomes
empty after its bounds are adjusted to fit within its buffer.
This fix caused other problems, and I'm reverting it until we get
to the bottom of them.
2012-04-28 15:17:27 -07:00
Paul Eggert
89a438bd86 Do not create empty overlays with the evaporate property (Bug#9642).
* buffer.c (Fmove_overlay): Delete an evaporating overlay
if it becomes empty after its bounds are adjusted to fit within
its buffer.  Without this fix, in a nonempty buffer (let ((o
(make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
yields an empty overlay that has the evaporate property, which is
not supposed to happen.
2012-04-23 15:46:35 -07:00
Paul Eggert
bbd347f5f7 Merge from trunk. 2012-04-21 17:53:32 -07:00
Paul Eggert
a041960a7c Improve ralloc.c interface checking.
See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
* buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
(r_alloc_free) [REL_ALLOC]: Move decls from here ...
* lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
[REL_ALLOC]: ... to here, to check interface.
* m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
Remove decls.  This fixes an "It stinks!".
2012-04-15 18:10:42 -07:00
Paul Eggert
45e9f7da84 Merge from trunk. 2012-04-09 15:54:59 -07:00
Chong Yidong
fb7ada5f94 Remove * characters from the front of variable docstrings. 2012-04-09 21:05:48 +08:00
Glenn Morris
fd06db5dd6 Remove ucs-set-table-for-input dead code
This function was removed with ucs-tables.el in 2008.

* lisp/international/mule-cmds.el (set-default-coding-systems):
* lisp/files.el (normal-mode):
Remove guarded calls to ucs-set-table-for-input. 

* src/buffer.c (Qucs_set_table_for_input): Remove.
(Fget_buffer_create): Don't call Qucs_set_table_for_input.
(init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.

Fixes: debbugs:9821
2012-04-08 17:58:00 -07:00
Paul Eggert
9af5ed8756 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830). 2012-03-12 01:27:25 -07:00
Stefan Monnier
cae0700001 * src/buffer.c (compare_overlays): Avoid qsort's instability.
Fixes: debbugs:6830
2012-03-09 11:46:25 -05:00