emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/pacmacs d980f5dbe2 454/472: Introduce with-render-target m


From: ELPA Syncer
Subject: [nongnu] elpa/pacmacs d980f5dbe2 454/472: Introduce with-render-target macro (#203)
Date: Thu, 6 Jan 2022 21:59:48 -0500 (EST)

branch: elpa/pacmacs
commit d980f5dbe239e7bcb86eb20cc101e078f973e52e
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>

    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

[Prev in Thread] Current Thread [Next in Thread]