branch: elpa/pacmacs
commit d980f5dbe239e7bcb86eb20cc101e078f973e52e
Author: rexim <[email protected]>
Commit: rexim <[email protected]>

    Introduce with-render-target macro (#203)
---
 pacmacs-render.el |  6 ++++++
 pacmacs.el        | 19 +++++++++----------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/pacmacs-render.el b/pacmacs-render.el
index 34943ee468..0e16f49dd9 100644
--- a/pacmacs-render.el
+++ b/pacmacs-render.el
@@ -38,6 +38,12 @@
 
 (defvar pacmacs--life-icon nil)
 
+(defmacro with-render-target (render-target-buffer &rest body)
+  (declare (indent 1) (debug (sexp &rest form)))
+  `(with-current-buffer ,render-target-buffer
+     (let ((inhibit-read-only t))
+       ,@body)))
+
 (defun pacmacs--render-empty-cell ()
   (pacmacs-insert-image (pacmacs--create-wall-tile
                          40 40
diff --git a/pacmacs.el b/pacmacs.el
index 3fa30d31d3..93ed5d1f4d 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -422,11 +422,10 @@
                                (pacmacs--switch-to-prepare-state)))))
 
   (when (not (equal pacmacs-game-state 'game-over))
-    (with-current-buffer pacmacs-buffer-name
-      (let ((inhibit-read-only t))
-        (erase-buffer)
-        (pacmacs--render-state)
-        (goto-char (point-min))))))
+    (with-render-target pacmacs-buffer-name
+      (erase-buffer)
+      (pacmacs--render-state)
+      (goto-char (point-min)))))
 
 (defun pacmacs--step-ghosts ()
   (dolist (ghost pacmacs--ghosts)
@@ -740,11 +739,11 @@
 
   (pacmacs--load-map-sign "scores")
 
-  (with-current-buffer pacmacs--score-buffer-name
-    (let ((inhibit-read-only t))
-      (erase-buffer)
-      (pacmacs--render-score-page (-partial #'pacmacs--render-object-board
-                                            pacmacs--object-board)))
+  (with-render-target pacmacs--score-buffer-name
+    (erase-buffer)
+    (pacmacs--render-score-page
+     (-partial #'pacmacs--render-object-board
+               pacmacs--object-board))
     (goto-char (point-min))))
 
 (defun pacmacs--wall-tile-at (row column)

Reply via email to