[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 0e1bfd3 6/7: Minor cleanup of save_excursion_restor
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master 0e1bfd3 6/7: Minor cleanup of save_excursion_restore |
Date: |
Thu, 7 Jun 2018 22:11:57 -0400 (EDT) |
branch: master
commit 0e1bfd3886bc8e95fc1b5b13aff565be6caa44e2
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Minor cleanup of save_excursion_restore
* src/editfns.c (save_excursion_restore): Use clearer names
for locals. Free earlier, removing the need for a label and goto.
---
src/editfns.c | 41 +++++++++++++++++------------------------
1 file changed, 17 insertions(+), 24 deletions(-)
diff --git a/src/editfns.c b/src/editfns.c
index 2377ceb..e672c0e 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1016,37 +1016,30 @@ save_excursion_save (void)
void
save_excursion_restore (Lisp_Object info)
{
- Lisp_Object tem, tem1;
-
- tem = Fmarker_buffer (XSAVE_OBJECT (info, 0));
+ Lisp_Object marker = XSAVE_OBJECT (info, 0);
+ Lisp_Object window = XSAVE_OBJECT (info, 2);
+ free_misc (info);
+ Lisp_Object buffer = Fmarker_buffer (marker);
/* If we're unwinding to top level, saved buffer may be deleted. This
- means that all of its markers are unchained and so tem is nil. */
- if (NILP (tem))
- goto out;
+ means that all of its markers are unchained and so BUFFER is nil. */
+ if (NILP (buffer))
+ return;
- Fset_buffer (tem);
+ Fset_buffer (buffer);
- /* Point marker. */
- tem = XSAVE_OBJECT (info, 0);
- Fgoto_char (tem);
- unchain_marker (XMARKER (tem));
+ Fgoto_char (marker);
+ unchain_marker (XMARKER (marker));
/* If buffer was visible in a window, and a different window was
selected, and the old selected window is still showing this
buffer, restore point in that window. */
- tem = XSAVE_OBJECT (info, 2);
- if (WINDOWP (tem)
- && !EQ (tem, selected_window)
- && (tem1 = XWINDOW (tem)->contents,
- (/* Window is live... */
- BUFFERP (tem1)
- /* ...and it shows the current buffer. */
- && XBUFFER (tem1) == current_buffer)))
- Fset_window_point (tem, make_number (PT));
-
- out:
-
- free_misc (info);
+ if (WINDOWP (window) && !EQ (window, selected_window))
+ {
+ /* Set window point if WINDOW is live and shows the current buffer. */
+ Lisp_Object contents = XWINDOW (window)->contents;
+ if (BUFFERP (contents) && XBUFFER (contents) == current_buffer)
+ Fset_window_point (window, make_number (PT));
+ }
}
DEFUN ("save-excursion", Fsave_excursion, Ssave_excursion, 0, UNEVALLED, 0,
- [Emacs-diffs] master updated (9966842 -> e2a9800), Paul Eggert, 2018/06/07
- [Emacs-diffs] master 4d176b7 3/7: Fix ftfont_open2 failure cleanup, Paul Eggert, 2018/06/07
- [Emacs-diffs] master 7c16392 1/7: Fix GC-related commentary, Paul Eggert, 2018/06/07
- [Emacs-diffs] master b76389f 2/7: Don’t over-align if WIDE_EMACS_INT, Paul Eggert, 2018/06/07
- [Emacs-diffs] master a064128 4/7: * src/.gdbinit: Omit soon-obsolete comment., Paul Eggert, 2018/06/07
- [Emacs-diffs] master e2a9800 7/7: Fit kill_buffer_xwidgets into 80, Paul Eggert, 2018/06/07
- [Emacs-diffs] master a0aa1d4 5/7: New function record_unwind_protect_excursion, Paul Eggert, 2018/06/07
- [Emacs-diffs] master 0e1bfd3 6/7: Minor cleanup of save_excursion_restore,
Paul Eggert <=