From 73c8e10e31336b2d1232d833a96b45d1e21c2324 Mon Sep 17 00:00:00 2001
From: Jose Antonio Ortega Ruiz <jao@gnu.org>
Date: Thu, 2 Sep 2010 06:17:08 +0200
Subject: Racket: better stack traces using errortrace

---
 elisp/geiser-racket.el | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'elisp')

diff --git a/elisp/geiser-racket.el b/elisp/geiser-racket.el
index dcff4cc..d876714 100644
--- a/elisp/geiser-racket.el
+++ b/elisp/geiser-racket.el
@@ -158,6 +158,14 @@ This function uses `geiser-racket-init-file' if it exists."
     "path:\"?\\([^>\"\n]+\\)\"?>"
     "module: \"\\([^>\"\n]+\\)\""))
 
+(defconst geiser-racket--geiser-file-rx
+  "^/[^:\n\"]*/geiser/[^:\n\"]*:")
+
+(defun geiser-racket--purge-trace ()
+  (save-excursion
+    (while (re-search-forward geiser-racket--geiser-file-rx nil t)
+      (kill-whole-line))))
+
 (defun geiser-racket--find-files (rx)
   (save-excursion
     (while (re-search-forward rx nil t)
@@ -179,6 +187,7 @@ This function uses `geiser-racket-init-file' if it exists."
       (when key
         (let ((end (point)))
         (goto-char p)
+        (geiser-racket--purge-trace)
         (mapc 'geiser-racket--find-files geiser-racket--file-rxs)
         (goto-char end)
         (newline)))))
-- 
cgit v1.2.3