branch: elpa/parseedn
commit b399b72a8ea0d7698aaaff80c8a43eda943c49fb
Author: tmpUser2022 <98637343+tmpuser2...@users.noreply.github.com>
Commit: GitHub <nore...@github.com>

    Iterative parseedn-print-seq
    
    Avoid C stack overflows, `(error "Variable binding depth exceeds 
max-specpdl-size")` and `(error "Lisp nesting exceeds ‘max-lisp-eval-depth’")` 
when working with large sequences.
---
 parseedn.el | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/parseedn.el b/parseedn.el
index 1e06e54218..5422b25f06 100644
--- a/parseedn.el
+++ b/parseedn.el
@@ -156,12 +156,12 @@ TAG-READERS is an optional association list.  For more 
information, see
 
 (defun parseedn-print-seq (coll)
   "Insert sequence COLL as EDN into the current buffer."
-  (unless (seq-empty-p coll)
-    (parseedn-print (elt coll 0)))
-  (let ((next (seq-drop coll 1)))
-    (when (not (seq-empty-p next))
+  (when (not (seq-empty-p coll))
+    (while (not (seq-empty-p coll))
+      (parseedn-print (elt coll 0))
       (insert " ")
-      (parseedn-print-seq next))))
+      (setq coll (seq-drop coll 1)))
+    (delete-char -1)))
 
 (defun parseedn-print-hash-or-alist (map &optional ks)
   "Insert hash table MAP or elisp alist as an EDN map into the current buffer."

Reply via email to