branch: externals/compat
commit 08c77ed267c8f0ded5c214d0b3ff76c6d1729987
Author: Philip Kaludercic <phil...@posteo.net>
Commit: Philip Kaludercic <phil...@posteo.net>

    Declare variable for gensym
    
    Older versions of Emacs do not handle the let-over-lambda as should be
    expected, so an explicit variable has to be declared.
---
 compat-26.1.el | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/compat-26.1.el b/compat-26.1.el
index 90e07bf..b85d6ac 100644
--- a/compat-26.1.el
+++ b/compat-26.1.el
@@ -250,13 +250,16 @@ TRIM-LEFT and TRIM-RIGHT default to \"[ \\t\\n\\r]+\"."
   (declare (pure t))
   (cdr (cdr (cdr (cdr x)))))
 
-(let ((counter 0))
-  (compat-defun gensym (&optional prefix)
-    "Return a new uninterned symbol.
+(defvar compat--gensym-counter 0)
+
+(compat-defun gensym (&optional prefix)
+  "Return a new uninterned symbol.
 The name is made by appending `gensym-counter' to PREFIX.
 PREFIX is a string, and defaults to \"g\"."
-    (let ((num (prog1 counter (setq counter (1+ counter)))))
-      (make-symbol (format "%s%d" (or prefix "g") num)))))
+  (let ((num (prog1 compat--gensym-counter
+               (setq compat--gensym-counter
+                     (1+ compat--gensym-counter)))))
+    (make-symbol (format "%s%d" (or prefix "g") num))))
 
 ;;;; Defined in files.el
 

Reply via email to