From 518c6ffa1c75fe083c6b014817e29923ae36a851 Mon Sep 17 00:00:00 2001 From: "mkanat%kerio.com" <> Date: Sun, 27 Feb 2005 09:14:05 +0000 Subject: Bug 282349: Comments are forced to being left-justified Patch By Max Kanat-Alexander r=myk, r=gerv, a=justdave --- Bugzilla/Util.pm | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'Bugzilla/Util.pm') diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 7481c18c3..8fcb900df 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -43,28 +43,7 @@ use Bugzilla::Error; use Bugzilla::Constants; use Date::Parse; use Date::Format; -use Text::Autoformat qw(autoformat break_wrap); - -our $autoformat_options = { - # Reformat all paragraphs, not just the first one. - all => 1, - # Break only on spaces, and let long lines overflow. - break => break_wrap, - # Columns are COMMENT_COLS wide. - right => COMMENT_COLS, - # Don't reformat into perfect paragraphs, just wrap. - fill => 0, - # Don't compress whitespace. - squeeze => 0, - # Lines starting with ">" are not wrapped. - ignore => qr/^>/, - # Don't re-arrange numbered lists. - renumber => 0, - # Keep short lines at the end of paragraphs as-is. - widow => 0, - # Even if a paragraph looks centered, don't "auto-center" it. - autocentre => 0, -}; +use Text::Wrap; # This is from the perlsec page, slightly modifed to remove a warning # From that page: @@ -218,7 +197,26 @@ sub diff_strings { sub wrap_comment ($) { my ($comment) = @_; - return autoformat($comment, $autoformat_options); + my $wrappedcomment = ""; + + # Use 'local', as recommended by Text::Wrap's perldoc. + local $Text::Wrap::columns = COMMENT_COLS; + # Make words that are longer than COMMENT_COLS not wrap. + local $Text::Wrap::huge = 'overflow'; + # Don't mess with tabs. + local $Text::Wrap::unexpand = 0; + + # If the line starts with ">", don't wrap it. Otherwise, wrap. + foreach my $line (split(/\r\n|\r|\n/, $comment)) { + if ($line =~ qr/^>/) { + $wrappedcomment .= ($line . "\n"); + } + else { + $wrappedcomment .= (wrap('', '', $line) . "\n"); + } + } + + return $wrappedcomment; } sub format_time { -- cgit v1.2.3-24-g4f1b