/* Buffer manipulation primitives for GNU Emacs.
-Copyright (C) 1985-1989, 1993-1995, 1997-2011 Free Software Foundation, Inc.
+Copyright (C) 1985-1989, 1993-1995, 1997-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
b->prevent_redisplay_optimizations_p = 1;
BVAR (b, backed_up) = Qnil;
BUF_AUTOSAVE_MODIFF (b) = 0;
- b->auto_save_failure_time = -1;
+ b->auto_save_failure_time = 0;
BVAR (b, auto_save_file_name) = Qnil;
BVAR (b, read_only) = Qnil;
b->overlays_before = NULL;
UNGCPRO;
}
- /* Make this buffer not be current.
+ /* Run replace_buffer_in_windows before making another buffer current
+ since set-window-buffer-start-and-point will refuse to make another
+ buffer current if the selected window does not show the current
+ buffer. (Bug#10114) */
+ replace_buffer_in_windows (buffer);
+
+ /* Make this buffer not be current.
In the process, notice if this is the sole visible buffer
and give up if so. */
if (b == current_buffer)
/* These may run Lisp code and into infinite loops (if someone
insisted on circular lists) so allow quitting here. */
- replace_buffer_in_windows (buffer);
frames_discard_buffer (buffer);
clear_charpos_cache (b);
/* Reset the local variables, so that this buffer's local values
won't be protected from GC. They would be protected
- if they happened to remain encached in their symbols.
+ if they happened to remain cached in their symbols.
This gets rid of them for certain. */
swap_out_buffer_local_variables (b);
reset_buffer_local_variables (b, 1);
call1 (Vrun_hooks, Qbuffer_list_update_hook);
}
-DEFUN ("record-buffer", Frecord_buffer, Srecord_buffer, 1, 1, 0,
- doc: /* Move BUFFER to the front of the buffer list.
-Return BUFFER. */)
- (Lisp_Object buffer)
-{
- CHECK_BUFFER (buffer);
-
- record_buffer (buffer);
- return buffer;
-}
+/* Move BUFFER to the end of the buffer (a)lists. Do nothing if the
+ buffer is killed. For the selected frame's buffer list this moves
+ BUFFER to its end even if it was never shown in that frame. If
+ this happens we have a feature, hence `unrecord-buffer' should be
+ called only when BUFFER was shown in the selected frame. */
- /* Move BUFFER to the end of the buffer (a)lists. Do nothing if the
- buffer is killed. For the selected frame's buffer list this moves
- BUFFER to its end even if it was never shown in that frame. If
- this happens we have a feature, hence `unrecord-buffer' should be
- called only when BUFFER was shown in the selected frame. */
-
-DEFUN ("unrecord-buffer", Funrecord_buffer, Sunrecord_buffer, 1, 1, 0,
- doc: /* Move BUFFER to the end of the buffer list.
-Return BUFFER. */)
+DEFUN ("bury-buffer-internal", Fbury_buffer_internal, Sbury_buffer_internal,
+ 1, 1, 0,
+ doc: /* Move BUFFER to the end of the buffer list. */)
(Lisp_Object buffer)
{
Lisp_Object aelt, aelt_cons, tem;
if (!NILP (Vrun_hooks))
call1 (Vrun_hooks, Qbuffer_list_update_hook);
- return buffer;
+ return Qnil;
}
DEFUN ("set-buffer-major-mode", Fset_buffer_major_mode, Sset_buffer_major_mode, 1, 1, 0,
Lisp_Object sym = XCAR (XCAR (alist));
eassert (XSYMBOL (sym)->redirect == SYMBOL_LOCALIZED);
/* Need not do anything if some other buffer's binding is
- now encached. */
+ now cached. */
if (EQ (SYMBOL_BLV (XSYMBOL (sym))->where, buffer))
{
/* Symbol is set up for this buffer's old local value:
static unsigned char *overlay_str_buf;
/* Allocated length of overlay_str_buf. */
-static EMACS_INT overlay_str_len;
+static ptrdiff_t overlay_str_len;
/* A comparison function suitable for passing to qsort. */
static int
static int mmap_page_size;
-/* 1 means mmap has been intialized. */
+/* 1 means mmap has been initialized. */
static int mmap_initialized_p;
is currently mapped. Used to prevent overwriting an existing
memory mapping.
- Default is to conservativly assume the address range is occupied by
+ Default is to conservatively assume the address range is occupied by
something else. This can be overridden by system configuration
files if system-specific means to determine this exists. */
#define MMAP_ALLOCATED_P(start, end) 1
#endif
-/* Perform necessary intializations for the use of mmap. */
+/* Perform necessary initializations for the use of mmap. */
static void
mmap_init (void)
This variable is buffer-local but you cannot set it directly;
use the function `set-buffer-multibyte' to change a buffer's representation.
-Changing its default value with `setq-default' is supported.
-See also variable `default-enable-multibyte-characters' and Info node
-`(elisp)Text Representations'. */);
+See also Info node `(elisp)Text Representations'. */);
XSYMBOL (intern_c_string ("enable-multibyte-characters"))->constant = 1;
DEFVAR_PER_BUFFER ("buffer-file-coding-system",
Note that this is overridden by the variable
`truncate-partial-width-windows' if that variable is non-nil
-and this buffer is not full-frame width. */);
+and this buffer is not full-frame width.
+
+Minibuffers set this variable to nil. */);
DEFVAR_PER_BUFFER ("word-wrap", &BVAR (current_buffer, word_wrap), Qnil,
doc: /* *Non-nil means to use word-wrapping for continuation lines.
defsubr (&Sother_buffer);
defsubr (&Sbuffer_enable_undo);
defsubr (&Skill_buffer);
- defsubr (&Srecord_buffer);
- defsubr (&Sunrecord_buffer);
+ defsubr (&Sbury_buffer_internal);
defsubr (&Sset_buffer_major_mode);
defsubr (&Scurrent_buffer);
defsubr (&Sset_buffer);