# fmt("text",width); #---------------------------------------------------------------------- # Wraps long lines to manageable size. If a word is too long, the line # length is temporarily raised until the word does fit. sub fmt { my $text=shift; # Input text my $width=shift; # Desired width $width=70 if(!$width); # Default to 70 if omitted my $rc=""; # Return value my $cll=$width; # Current line length my $cp=0; # Current position my $i; # Index to last space. my $lot=length($text); # Length of $text. $text=~s/\s+/ /g; # Reduce all series of whitespace to one while($cp+$cll < $lot) { print STDERR "cp=$cp cll=$cll\n"; while((($i=rindex($text," ",$cp+$cll))<=$cp) && $cp+$cll < $lot) { $cll+=$width; } if($i>$cp) { $rc=$rc.substr($text,$cp,$i-$cp)."\n"; $cp=$i+1; $cll=$width; } } $rc=$rc.substr($text,$cp)."\n"; return $rc; }