Use Perl's format() to flow the help text.
authorSean O'Rourke <seano@cpan.org>
Sat, 12 May 2012 13:39:51 +0000 (12 07:39 -0600)
committerSean O'Rourke <seano@cpan.org>
Sat, 12 May 2012 13:39:51 +0000 (12 07:39 -0600)
lib/Sepia.pm

index d03bedb..8f3113c 100644 (file)
@@ -878,11 +878,11 @@ sub Dump
 
 sub flow
 {
-    my $n = shift()-1;
-    my $n1 = $n-8;              # XXX: arbitrary number
-    local $_ = shift;
-    s/(.{$n1,$n}) +/$1\n/g;
-    $_
+    my $width = shift()-1;
+    my $format = "^" . ('<' x $width) . "~~\n";
+    local $^A = '';
+    formline($format, @_);
+    $^A;
 }
 
 =back
@@ -1211,6 +1211,7 @@ sub repl_help
         if ($full) {
             my $short = $REPL_SHORT{$full};
             my $flow = flow($width - length $short - 4, $REPL_DOC{$full});
+            chomp $flow;
             $flow =~ s/(.)\n/"$1\n".(' 'x (4 + length $short))/eg;
             print "$short    $flow\n";
         } else {
@@ -1222,6 +1223,7 @@ sub repl_help
 
         for (sort keys %REPL) {
             my $flow = flow($width - $left, $REPL_DOC{$_});
+            chomp $flow;
             $flow =~ s/(.)\n/"$1\n".(' ' x $left)/eg;
             printf "%-${left}s%s\n", $REPL_SHORT{$_}, $flow;
         }