When debugging some code, I learned that if you call pop-to-buffer and pop-to-buffer-same-window inside save-excursion or save-current-buffer, the original buffer will not be restored at the end of the save-. You can get around this by using save-window-excursion; however, I still feel like save-excursion ought to work. Does anyone know why it doesn’t?
(You can check this by eval-ing the following in any buffer other than *Messages*: (save-excursion (pop-to-buffer-same-window "*Messages*")).
This is 100% expected behaviour.
save-excursionhas nothing to do with windows.Perhaps you are confused about the phrase “…and the current buffer [is] restored”. The “current buffer” is independent of the buffer in the selected window, and moreover need not be displayed at all. The current buffer is simply the buffer which is being acted on at the time.
This is 100% expected behaviour.
save-excursionhas nothing to do with windows.Perhaps you are confused about the phrase “…and the current buffer [is] restored”. The “current buffer” is independent of the buffer in the selected window, and moreover need not be displayed at all. The current buffer is simply the buffer which is being acted on at the time.
See (elisp) Excursions

