* eval.c (RETURN): Wrap in do{}while(0) in order to make it
[bpt/guile.git] / libguile / pairs.c
index 48db366..88ce017 100644 (file)
@@ -39,8 +39,6 @@
  * whether to permit this exception to apply to your modifications.
  * If you do not wish that, delete this exception notice.  */
 
-/* Software engineering face-lift by Greg J. Badros, 11-Dec-1999,
-   gjb@cs.washington.edu, http://www.cs.washington.edu/homes/gjb */
 
 \f
 
 
 void scm_error_pair_access (SCM non_pair)
 {
+  static unsigned int running = 0;
   SCM message = scm_makfrom0str ("Non-pair accessed with SCM_C[AD]R: `~S´\n");
-  scm_simple_format (scm_current_error_port (), message, SCM_LIST1 (non_pair));
-  abort ();
+
+  if (!running)
+    {
+      running = 1;
+      scm_simple_format (scm_current_error_port (),
+                        message, scm_list_1 (non_pair));
+      abort ();
+    }
 }
 
 #endif