guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] GNU Guile branch, master, updated. release_1-9-15-28-gcd


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. release_1-9-15-28-gcd4f274
Date: Wed, 09 Feb 2011 22:31:19 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=cd4f274c622511ac9b45cd16d6e6a542bd07464c

The branch, master has been updated
       via  cd4f274c622511ac9b45cd16d6e6a542bd07464c (commit)
      from  eaf2d3f25323a55153abd1d44f6943249de2d2a9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit cd4f274c622511ac9b45cd16d6e6a542bd07464c
Author: Andy Wingo <address@hidden>
Date:   Wed Feb 9 23:34:36 2011 +0100

    more robust fallback error printer
    
    * libguile/throw.c (pre_init_throw): Deal with errors printing the
      exception.

-----------------------------------------------------------------------

Summary of changes:
 libguile/throw.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/libguile/throw.c b/libguile/throw.c
index 486228e..b5931fb 100644
--- a/libguile/throw.c
+++ b/libguile/throw.c
@@ -566,8 +566,28 @@ pre_init_throw (SCM k, SCM args)
     return scm_at_abort (sym_pre_init_catch_tag, scm_cons (k, args));
   else
     { 
-      fprintf (stderr, "Throw without catch before boot:\n");
-      scm_handle_by_message_noexit (NULL, k, args);
+      static int error_printing_error = 0;
+      static int error_printing_fallback = 0;
+      
+      if (error_printing_fallback)
+        fprintf (stderr, "\nFailed to print exception.\n");
+      else if (error_printing_error)
+        {
+          fprintf (stderr, "\nError while printing exception:\n");
+          error_printing_fallback = 1;
+          fprintf (stderr, "Key: ");
+          scm_write (k, scm_current_error_port ());
+          fprintf (stderr, ", args: ");
+          scm_write (args, scm_current_error_port ());
+          scm_newline (scm_current_error_port ());
+        }
+      else
+        {
+          fprintf (stderr, "Throw without catch before boot:\n");
+          error_printing_error = 1;
+          scm_handle_by_message_noexit (NULL, k, args);
+        }
+
       fprintf (stderr, "Aborting.\n");
       abort ();
       return SCM_BOOL_F; /* not reached */


hooks/post-receive
-- 
GNU Guile



reply via email to

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