* libguile/backtrace.c (display_backtrace_file_and_line): Return absolute file name if not accessible from here. (display_backtrace_file): Use GNU-standard error message; remove "In "-prefix, add `:line:column' suffix. --- libguile/backtrace.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/libguile/backtrace.c b/libguile/backtrace.c index 0c0f110..3b004b6 100644 --- a/libguile/backtrace.c +++ b/libguile/backtrace.c @@ -319,16 +319,19 @@ display_backtrace_get_file_line (SCM frame, SCM *file, SCM *line) { /* (addr . (filename . (line . column))), from vm compilation */ *file = scm_cadr (source); + if (scm_is_false (scm_stat (*file, SCM_BOOL_F))) + { + SCM full = SCM_BOOL_F; + full = scm_sys_search_load_path (*file); + if (!scm_is_false (full)) + *file = full; + } *line = scm_caddr (source); } } static void -display_backtrace_file (frame, last_file, port, pstate) - SCM frame; - SCM *last_file; - SCM port; - scm_print_state *pstate; +display_backtrace_file (SCM frame, SCM *last_file, SCM port, scm_print_state *pstate) { SCM file, line; @@ -339,7 +342,6 @@ display_backtrace_file (frame, last_file, port, pstate) *last_file = file; - scm_puts_unlocked ("In ", port); if (scm_is_false (file)) if (scm_is_false (line)) scm_puts_unlocked ("unknown file", port); @@ -349,6 +351,8 @@ display_backtrace_file (frame, last_file, port, pstate) { pstate->writingp = 0; scm_iprin1 (file, port, pstate); + scm_puts_unlocked (":", port); + scm_intprint (scm_to_int (line) + 1, 10, port); pstate->writingp = 1; } scm_puts_unlocked (":\n", port); -- Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.nl