aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | Use make_formatted_string to avoid double length calculation.Dmitry Antipov2012-07-091-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | * buffer.c (unchain_overlay): Simplify. Add comment.Dmitry Antipov2012-07-061-8/+7
| | | | | | | | * marker.c (unchain_marker): Simplify. Fix comments.
* | Introduce fast path for the widely used marker operation.Dmitry Antipov2012-07-061-23/+12
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Do not use Fdelete_overlay in delete_all_overlaysDmitry Antipov2012-07-061-18/+27
| | | | | | | | | | | | | | 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.
* | More xmalloc and related cleanup.Paul Eggert2012-07-051-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Cleanup xmalloc.Dmitry Antipov2012-07-051-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | * buffer.c (init_buffer_once): Fix initialization ofDmitry Antipov2012-07-041-2/+8
| | | | | | | | | | headers for buffer_defaults and buffer_local_symbols. Reported by Juanma Barranquero <lekktu@gmail.com>.
* | * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.Paul Eggert2012-07-031-1/+1
| |
* | * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.Dmitry Antipov2012-07-041-1/+1
| |
* | Auto-generate EXFUN using make-docfileTom Tromey2012-07-031-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Speed up generate-new-buffer-name for invisible buffers (bug#1229)Glenn Morris2012-07-031-3/+19
| | | | | | | | | | | | | | * 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.
* | Cleanup basic buffer management.Dmitry Antipov2012-07-031-25/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Support higher-resolution time stamps.Paul Eggert2012-06-221-4/+4
| | | | | | | | Fixes: debbugs:9000
* | Handle cases where buffer gets killed while running Fkill_buffer (Bug#11665).Martin Rudalics2012-06-181-32/+43
| | | | | | | | | | | | | | | | * 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.
* | * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.Andreas Schwab2012-06-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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.
* | * buffer.c (word_wrap): Doc fix.Chong Yidong2012-06-061-1/+7
| |
* | Implement default help-echo for mode line.Chong Yidong2012-06-031-27/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Do not avoid creating empty evaporating overlays (Bug#9642).Troels Nielsen2012-05-291-42/+43
| | | | | | | | | | | | | | | | * 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.
* | * src/buffer.c (Fmove_overflay): Clip instead of trying to fix bug 9642.Paul Eggert2012-05-251-12/+13
| |
* | Merge from trunk.Paul Eggert2012-05-251-27/+25
|\ \
| * | Assume C89 or later.Paul Eggert2012-05-211-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * | * intervals.c (adjust_intervals_for_insertion): Initialize `newi'Dmitry Antipov2012-05-021-2/+0
| | | | | | | | | | | | | | | | | | with RESET_INTERVAL. * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Remove duplicated buffer name initialization.
| * | Do not avoid creating empty evaporating overlays (Bug#9642).Paul Eggert2012-04-281-19/+18
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * | Do not create empty overlays with the evaporate property (Bug#9642).Paul Eggert2012-04-231-18/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Merge from trunk.Paul Eggert2012-04-211-11/+0
|\ \ \ | |/ /
| * | Improve ralloc.c interface checking.Paul Eggert2012-04-151-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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!".
* | | Merge from trunk.Paul Eggert2012-04-091-40/+33
|\ \ \ | |/ /
| * | Remove * characters from the front of variable docstrings.Chong Yidong2012-04-091-24/+24
| | |
| * | Remove ucs-set-table-for-input dead codeGlenn Morris2012-04-081-13/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).Paul Eggert2012-03-121-1/+3
| |
| * * src/buffer.c (compare_overlays): Avoid qsort's instability.Stefan Monnier2012-03-091-1/+5
| | | | | | | | Fixes: debbugs:6830
| * * src/buffer.c (buffer-list-update-hook): Doc fix.Glenn Morris2012-03-011-3/+3
| |
* | Merge from trunk.Paul Eggert2012-02-241-1/+5
|\ \ | |/
| * Update Files chapter in Lisp manual.Chong Yidong2012-02-211-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/files.texi (Files): Mention magic file names as arguments. (Reading from Files): Copyedits. (File Attributes): Mention how to change file modes. (Changing Files): Use standard "file permissions" terminology. Add xref to File Attributes node. (Locating Files): Document locate-user-emacs-file. (Unique File Names): Recommend against using make-temp-name. * src/buffer.c (Fget_file_buffer): Protect against invalid file handler return value. * src/fileio.c (Vfile_name_handler_alist): Doc fix.
* | Merge from trunk.Paul Eggert2012-02-101-4/+10
|\ \ | |/
| * Fix and doc-fix for `buffer-local-variables'.Chong Yidong2012-02-071-4/+10
| | | | | | | | | | | | | | | | | | | | | | * src/buffer.c (Fbuffer_local_variables) (buffer_lisp_local_variables): Handle unbound vars correctly; don't let Qunbound leak into Lisp. * doc/lispref/variables.texi (Creating Buffer-Local): Minor clarification to buffer-local-variables doc. Fixes: debbugs:10715
* | Merge from trunk.Paul Eggert2012-01-091-1/+1
|\ \ | |/
| * Add 2012 to FSF copyright years for Emacs filesGlenn Morris2012-01-051-1/+1
| |
* | Merge from trunk.Paul Eggert2011-12-101-6/+11
|\ \ | |/
| * Spelling fixes.Paul Eggert2011-11-261-2/+2
| |
| * In Fkill_buffer do replace_buffer_in_windows before Fset_buffer. (Bug#10114)Martin Rudalics2011-11-231-2/+7
| | | | | | | | | | * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before making another buffer current. (Bug#10114)
| * Fix typos.Juanma Barranquero2011-11-201-1/+1
| |
| * Spelling fixes.Paul Eggert2011-11-191-1/+1
| |
* | Merge from trunk.Paul Eggert2011-11-181-1/+1
|\ \ | |/
| * Spelling fixes.Paul Eggert2011-11-141-1/+1
| |
* | Merge from trunk.Paul Eggert2011-10-071-3/+1
|\ \ | |/
| * * src/buffer.c (syms_of_buffer) <enable-multibyte-characters>: Don'tStefan Monnier2011-10-071-3/+1
| | | | | | | | advertise functionality which we discourage or doesn't work.
| * * buffer.h (struct buffer): Use time_t, not int, for a time stamp.Paul Eggert2011-09-301-1/+1
| | | | | | | | | | | | | | | | | | This fixes a Y2038 bug on 64-bit hosts. * buffer.c (reset_buffer): * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved) (Fclear_buffer_auto_save_failure): Use 0, not -1, to represent an unset failure time, since time_t might not be signed.
* | * buffer.c (Fmove_overlay): Delete an evaporating overlayPaul Eggert2011-09-301-19/+14
| | | | | | | | | | | | | | | | 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. (Bug#9642)
| |
| \
*-. \ Merge from trunk.Paul Eggert2011-09-241-1/+3
|\ \ \ | | |/