cvsuser     06/02/24 11:45:34

  Modified:    App-Context/lib App.pm
  Log:
  made trace behave better with newlines. added trace_justify.
  
  Revision  Changes    Path
  1.19      +19 -5     p5ee/App-Context/lib/App.pm
  
  Index: App.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/App-Context/lib/App.pm,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- App.pm    20 Oct 2005 19:40:39 -0000      1.18
  +++ App.pm    24 Feb 2006 19:45:34 -0000      1.19
  @@ -296,6 +296,7 @@
           $scope .= $trace;
       }
       $App::trace_width = (defined $App::options{trace_width}) ? 
$App::options{trace_width} : 1024;
  +    $App::trace_justify = (defined $App::options{trace_justify}) ? 
$App::options{trace_justify} : 0;
   
       my $debug = $App::options{debug};
       if ($debug) {
  @@ -824,10 +825,22 @@
           #$trailer .= " [package=$package sub=$sub subroutine=$subroutine 
class=$class method=$method]";
           $text .= ")";
           my $trailer_len = length($trailer);
  -        if ($App::trace_width && length($text) + $trailer_len > 
$App::trace_width) {
  -            my $len = $App::trace_width - $trailer_len;
  -            $len = 1 if ($len < 1);
  -            print substr($text, 0, $len), $trailer, "\n";
  +        $text =~ s/\n/\\n/g;
  +        my $text_len = length($text);
  +        if ($App::trace_width) {
  +            if ($text_len + $trailer_len > $App::trace_width) {
  +                my $len = $App::trace_width - $trailer_len;
  +                $len = 1 if ($len < 1);
  +                print substr($text, 0, $len), $trailer, "\n";
  +            }
  +            elsif ($App::trace_justify) {
  +                my $len = $App::trace_width - $trailer_len - $text_len;
  +                $len = 0 if ($len < 0);  # should never happen
  +                print $text, ("." x $len), $trailer, "\n";
  +            }
  +            else {
  +                print $text, $trailer, "\n";
  +            }
           }
           else {
               print $text, $trailer, "\n";
  @@ -889,6 +902,7 @@
                   $text .= $arg;
               }
           }
  +        $text =~ s/\n/\\n/g;
           if ($App::trace_width && length($text) > $App::trace_width) {
               print substr($text, 0, $App::trace_width), "\n";
           }
  
  
  

Reply via email to