diff options
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/buffer.c b/src/buffer.c index f1ce9f4ec47..afa7e915429 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1526,7 +1526,13 @@ with SIGHUP. */) 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) @@ -1566,7 +1572,6 @@ with SIGHUP. */) /* 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); @@ -1626,7 +1631,7 @@ with SIGHUP. */) /* 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); @@ -2480,7 +2485,7 @@ swap_out_buffer_local_variables (struct buffer *b) 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: @@ -4399,7 +4404,7 @@ static int mmap_fd_1; static int mmap_page_size; -/* 1 means mmap has been intialized. */ +/* 1 means mmap has been initialized. */ static int mmap_initialized_p; @@ -4438,7 +4443,7 @@ static int mmap_initialized_p; #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) |