diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 8d2555da1..cec0dda84 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,8 @@ +2007-01-18 Han-Wen Nienhuys + + * throw.c (scm_ithrow): more refined error message: print symbols + too. + 2007-01-16 Kevin Ryde * feature.c, feature.h (scm_set_program_arguments_scm): New function, diff --git a/libguile/throw.c b/libguile/throw.c index 86e4d1fa7..9bffda770 100644 --- a/libguile/throw.c +++ b/libguile/throw.c @@ -711,9 +711,16 @@ scm_ithrow (SCM key, SCM args, int noreturn SCM_UNUSED) for (; scm_is_pair (s); s = scm_cdr (s), i++) - if (scm_is_string (scm_car (s))) - fprintf (stderr, "argument %d: %s\n", i, scm_i_string_chars (scm_car (s))); - + { + char const *str = NULL; + if (scm_is_string (scm_car (s))) + str = scm_i_string_chars (scm_car (s)); + else if (scm_is_symbol (scm_car (s))) + str = scm_i_symbol_chars (scm_car (s)); + + if (str != NULL) + fprintf (stderr, "argument %d: %s\n", i, str); + } abort (); }