Fix up diagnostic.pm’s backtrace for multiline msgs
authorFather Chrysostomos <sprout@cpan.org>
Tue, 27 Dec 2011 06:26:20 +0000 (22:26 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 27 Dec 2011 06:26:20 +0000 (22:26 -0800)
commit245e6c67de2239ab5b5653b47bc17783b33d8265
treeb1755b57a05d8d6c64dcc5c8285c4bd3ab15a543
parent0a437bc972cff19c42a0efc0b585280e585f3058
Fix up diagnostic.pm’s backtrace for multiline msgs

I hope you agree this backtrace does not look very good:

$ ./perl -Ilib -Mdiagnostics -e '
  sub foo { bar () }
  sub bar { baz() }
  sub baz {
  die "Attempt to reload foo aborted.\nCompilation failed in require"} foo
'
Attempt to reload foo aborted (#1)
    (F) You tried to load a file with use or require that failed to
    compile once already.  Perl will not try to compile this file again
    unless you delete its entry from %INC.  See "require" in perlfunc and
    "%INC" in perlvar.

Compilation failed in require at -e line 1 (#2)
    (F) Perl could not compile a file specified in a require statement.
    Perl uses this generic message when none of the errors that it
    encountered were severe enough to halt compilation immediately.

Uncaught exception from user code:
Attempt to reload foo aborted.
Compilation failed in require at -e line 1.
main::baz() called at -e line 1
main::bar() called at -e line 1
main::foo() called at -e line 1
lib/diagnostics.pm
lib/diagnostics.t