From: <jgr...@us...> - 2003-05-14 09:12:50
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv17805/UI Modified Files: HTML.pm Log Message: Implemented magnet paging Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.152 retrieving revision 1.153 diff -C2 -d -r1.152 -r1.153 *** HTML.pm 7 May 2003 22:21:02 -0000 1.152 --- HTML.pm 14 May 2003 09:12:13 -0000 1.153 *************** *** 540,544 **** # update check ! $result .= "<table align=\"center\" summary=\"\">\n<tr>\n<td class=\"logo2menuSpace\">$update_check</td></tr></table>\n"; # menu start --- 540,548 ---- # update check ! if ( $update_check ne '' ) { ! $result .= "<table align=\"center\" summary=\"\">\n<tr>\n<td class=\"logo2menuSpace\">$update_check</td></tr></table>\n"; ! } else { ! $result .= "<p>"; ! } # menu start *************** *** 563,567 **** # Magnets menu item $result .= "<td class=\"$tab[4]\" align=\"center\">\n"; ! $result .= "<a class=\"menuLink\" href=\"/magnets?session=$self->{session_key__}\">"; $result .= "\n$self->{language__}{Header_Magnets}</a>\n"; $result .= "</td>\n<td class=\"menuSpacer\"></td>\n"; --- 567,571 ---- # Magnets menu item $result .= "<td class=\"$tab[4]\" align=\"center\">\n"; ! $result .= "<a class=\"menuLink\" href=\"/magnets?session=$self->{session_key__}&start_magnet=0\">"; $result .= "\n$self->{language__}{Header_Magnets}</a>\n"; $result .= "</td>\n<td class=\"menuSpacer\"></td>\n"; *************** *** 625,630 **** my $result = "<table class=\"footer\" summary=\"\">\n<tr>\n"; ! $result .= "<td class=\"footerBody\">\n"; ! $result .= "POPFile $self->{version_} - \n"; $result .= "<a class=\"bottomLink\" href=\""; --- 629,634 ---- my $result = "<table class=\"footer\" summary=\"\">\n<tr>\n"; ! $result .= "<td class=\"footerBody\">"; ! $result .= "<a class=\"bottomLink\" href=\"http://popfile.sourceforge.net/\">$self->{language__}{Footer_HomePage}</a><br>\n"; $result .= "<a class=\"bottomLink\" href=\""; *************** *** 640,651 **** $result .= "/manual.html\">\n"; ! $result .= "$self->{language__}{Footer_Manual}</a> - \n"; ! $result .= "<a class=\"bottomLink\" href=\"http://sourceforge.net/docman/display_doc.php?docid=14421&group_id=63137\">FAQ</a> - \n"; ! $result .= "<a class=\"bottomLink\" href=\"http://popfile.sourceforge.net/\">$self->{language__}{Footer_HomePage}</a> - \n"; ! $result .= "<a class=\"bottomLink\" href=\"http://sourceforge.net/forum/forum.php?forum_id=213876\">$self->{language__}{Footer_FeedMe}</a> - \n"; ! $result .= "<a class=\"bottomLink\" href=\"http://sourceforge.net/tracker/index.php?group_id=63137&atid=502959\">$self->{language__}{Footer_RequestFeature}</a> - \n"; ! $result .= "<a class=\"bottomLink\" href=\"http://lists.sourceforge.net/lists/listinfo/popfile-announce\">$self->{language__}{Footer_MailingList}</a> - \n"; ! $result .= "($time)\n"; # comment out these next 3 lines prior to shipping code --- 644,656 ---- $result .= "/manual.html\">\n"; ! $result .= "$self->{language__}{Footer_Manual}</a><br>\n"; ! $result .= "<a class=\"bottomLink\" href=\"http://sourceforge.net/docman/display_doc.php?docid=14421&group_id=63137\">FAQ</a><br>\n"; ! ! $result .= "</td><td class=\"footerBody\">\n<a class=\"bottomLink\" href=\"http://popfile.sourceforge.net/\"><img src=\"otto.gif\" border=\"0\"></a><br>$self->{version_}<br>($time)</td>\n"; ! ! $result .= "<td class=\"footerBody\"><a class=\"bottomLink\" href=\"http://sourceforge.net/tracker/index.php?group_id=63137&atid=502959\">$self->{language__}{Footer_RequestFeature}</a><br>\n"; ! $result .= "<a class=\"bottomLink\" href=\"http://lists.sourceforge.net/lists/listinfo/popfile-announce\">$self->{language__}{Footer_MailingList}</a><br>\n"; ! $result .= "<a class=\"bottomLink\" href=\"http://sourceforge.net/forum/forum.php?forum_id=213876\">$self->{language__}{Footer_FeedMe}</a>\n"; # comment out these next 3 lines prior to shipping code *************** *** 801,808 **** --- 806,815 ---- # History View panel + $body .= "<td class=\"settingsPanel\" width=\"33%\" valign=\"top\">\n"; $body .= "<h2 class=\"configuration\">$self->{language__}{Configuration_HistoryView}</h2>\n"; # Emails per Page widget + $body .= "<form action=\"/configuration\">\n"; $body .= "<label class=\"configurationLabel\" for=\"configPageSize\">$self->{language__}{Configuration_History}:</label><br />\n"; *************** *** 813,816 **** --- 820,824 ---- # Days of History to Keep widget + $body .= "\n<form action=\"/configuration\">\n"; $body .= "<label class=\"configurationLabel\" for=\"configHistoryDays\">$self->{language__}{Configuration_Days}:</label> <br />\n"; *************** *** 822,829 **** --- 830,839 ---- # Classification Insertion panel + $body .= "</td>\n<td class=\"settingsPanel\" width=\"33%\" valign=\"top\">\n"; $body .= "<h2 class=\"configuration\">$self->{language__}{Configuration_ClassificationInsertion}</h2>\n"; # Subject line modification widget + $body .= "<table width=\"100%\" summary=\"$self->{language__}{Configuration_InsertionTableSummary}\">\n<tr>\n"; $body .= "<th valign=\"baseline\" scope=\"row\">\n<span class=\"configurationLabel\">$self->{language__}{Configuration_SubjectLine}:</span>\n</th>\n"; *************** *** 845,848 **** --- 855,859 ---- # X-Text-Classification insertion widget + $body .= "</tr>\n<tr>\n<th valign=\"baseline\" scope=\"row\">\n<span class=\"configurationLabel\">$self->{language__}{Configuration_XTCInsertion}:</span></th>\n"; if ( $self->global_config_( 'xtc' ) == 1 ) { *************** *** 863,866 **** --- 874,878 ---- # X-POPFile-Link insertion widget + $body .= "</tr>\n<tr>\n<th valign=\"baseline\" scope=\"row\">\n<span class=\"configurationLabel\">$self->{language__}{Configuration_XPLInsertion}:</span></th>\n"; if ( $self->global_config_( 'xpl' ) == 1 ) { *************** *** 882,885 **** --- 894,898 ---- # Listen Ports panel + $body .= "</td>\n</tr>\n<tr>\n<td class=\"settingsPanel\" width=\"33%\" valign=\"top\">\n"; $body .= "<h2 class=\"configuration\">$self->{language__}{Configuration_ListenPorts}</h2>\n"; *************** *** 895,898 **** --- 908,912 ---- # User Interface Port widget + $body .= "\n<form action=\"/configuration\">\n"; $body .= "<label class=\"configurationLabel\" for=\"configUIPort\">$self->{language__}{Configuration_UI}:</label><br />\n"; *************** *** 904,911 **** --- 918,927 ---- # TCP Connection Timeout panel + $body .= "<td class=\"settingsPanel\" width=\"33%\" valign=\"top\">\n"; $body .= "<h2 class=\"configuration\">$self->{language__}{Configuration_TCPTimeout}</h2>\n"; # TCP Conn TO widget + $body .= "<form action=\"/configuration\">\n"; $body .= "<label class=\"configurationLabel\" for=\"configTCPTimeout\">$self->{language__}{Configuration_TCPTimeoutSecs}:</label><br />\n"; *************** *** 917,920 **** --- 933,937 ---- # Logging panel + $body .= "<td class=\"settingsPanel\" width=\"33%\" valign=\"top\">\n"; $body .= "<h2 class=\"configuration\">$self->{language__}{Configuration_Logging}</h2>\n"; *************** *** 1216,1219 **** --- 1233,1243 ---- } + sub max + { + my ( $a, $b ) = @_; + + return ( $a > $b )?$a:$b; + } + # --------------------------------------------------------------------------------------------- # *************** *** 1242,1247 **** if ( defined( $self->{form_}{count} ) && ( defined( $self->{form_}{update} ) || defined( $self->{form_}{create} ) ) ) { - $self->{classifier__}->clear_magnets() if ( defined( $self->{form_}{update} ) ); - for my $i ( 1 .. $self->{form_}{count} ) { my $mtype = $self->{form_}{"type$i"}; --- 1266,1269 ---- *************** *** 1249,1252 **** --- 1271,1282 ---- my $mbucket = $self->{form_}{"bucket$i"}; + if ( defined( $self->{form_}{update} ) ) { + my $otype = $self->{form_}{"otype$i"}; + my $otext = $self->{form_}{"otext$i"}; + my $obucket = $self->{form_}{"obucket$i"}; + + $self->{classifier__}->delete_magnet( $obucket, $otype, $otext ); + } + if ( ( defined($mbucket) ) && ( $mbucket ne '' ) && ( $mtext ne '' ) ) { my $found = 0; *************** *** 1289,1293 **** $self->{classifier__}->create_magnet( $mbucket, $mtype, $mtext ); ! $magnet_message .= "<blockquote>" . sprintf( $self->{language__}{Magnet_Error3}, "$mtype: $mtext", $mbucket ) . "</blockquote>"; } } --- 1319,1325 ---- $self->{classifier__}->create_magnet( $mbucket, $mtype, $mtext ); ! if ( !defined( $self->{form_}{update} ) ) { ! $magnet_message .= "<blockquote>" . sprintf( $self->{language__}{Magnet_Error3}, "$mtype: $mtext", $mbucket ) . "</blockquote>"; ! } } } *************** *** 1296,1302 **** --- 1328,1355 ---- # Current Magnets panel + my $body = "<h2 class=\"magnets\">$self->{language__}{Magnet_CurrentMagnets}</h2>\n"; + my $start_magnet = $self->{form_}{start_magnet}; + my $stop_magnet = $self->{form_}{stop_magnet}; + my $magnet_count = $self->{classifier__}->magnet_count(); + my $navigator = ''; + + if ( !defined( $start_magnet ) ) { + $start_magnet = 0; + } + + if ( !defined( $stop_magnet ) ) { + $stop_magnet = $start_magnet + $self->config_( 'page_size' ) - 1; + } + + if ( $self->config_( 'page_size' ) < $magnet_count ) { + $navigator = $self->get_magnet_navigator( $start_magnet, $stop_magnet, $magnet_count ); + } + + $body .= $navigator; + # magnet listing headings + $body .= "<form action=\"/magnets\">\n"; $body .= "<table width=\"75%\" class=\"magnetsTable\" summary=\"$self->{language__}{Magnet_MainTableSummary}\">\n"; *************** *** 1308,1317 **** --- 1361,1378 ---- my %magnet_types = $self->{classifier__}->get_magnet_types(); my $i = 0; + my $count = -1; # magnet listing + my $stripe = 0; + for my $bucket ($self->{classifier__}->get_buckets_with_magnets()) { for my $type ($self->{classifier__}->get_magnet_types_in_bucket($bucket)) { for my $magnet ($self->{classifier__}->get_magnets( $bucket, $type)) { + $count += 1; + if ( ( $count < $start_magnet ) || ( $count > $stop_magnet ) ) { + next; + } + $i += 1; $body .= "<tr "; *************** *** 1325,1338 **** # another todo: Move this stuff into a function to make text # safe for inclusion in a form field my $validatingMagnet = $magnet; $validatingMagnet =~ s/&/&/g; $validatingMagnet =~ s/</</g; $validatingMagnet =~ s/>/>/g; ! # escape quotation characters to avoid orphan data within tags # todo: function to make arbitrary data safe for inclusion within # a html tag attribute (inside double-quotes) ! ! $validatingMagnet =~ s/\"/\"\;/g; $body .= ">\n<td><select name=\"type$i\" id=\"magnetsAddType\">\n"; --- 1386,1401 ---- # another todo: Move this stuff into a function to make text # safe for inclusion in a form field + my $validatingMagnet = $magnet; $validatingMagnet =~ s/&/&/g; $validatingMagnet =~ s/</</g; $validatingMagnet =~ s/>/>/g; ! # escape quotation characters to avoid orphan data within tags # todo: function to make arbitrary data safe for inclusion within # a html tag attribute (inside double-quotes) ! ! $validatingMagnet =~ s/\"/\"\;/g; ! $body .= ">\n<td><select name=\"type$i\" id=\"magnetsAddType\">\n"; *************** *** 1341,1345 **** $body .= "<option value=\"$mtype\" $selected>\n$self->{language__}{$magnet_types{$mtype}}</option>\n"; } ! $body .= "</select>: <input type=\"text\" name=\"text$i\" value=\"$validatingMagnet\" size=\"" . length($magnet) . "\" /></td>\n"; $body .= "<td><select name=\"bucket$i\" id=\"magnetsAddBucket\">\n"; --- 1404,1408 ---- $body .= "<option value=\"$mtype\" $selected>\n$self->{language__}{$magnet_types{$mtype}}</option>\n"; } ! $body .= "</select>: <input type=\"text\" name=\"text$i\" value=\"$validatingMagnet\" size=\"" . max(length($magnet),50) . "\" /></td>\n"; $body .= "<td><select name=\"bucket$i\" id=\"magnetsAddBucket\">\n"; *************** *** 1353,1356 **** --- 1416,1424 ---- $body .= "<td>\n"; $body .= "<input type=\"checkbox\" class=\"deleteButton\" name=\"remove$i\" />$self->{language__}{Remove}\n"; + + $body .= "<input name=\"otype$i\" type=\"hidden\" value=\"$type\" />"; + $body .= "<input name=\"otext$i\" type=\"hidden\" value=\"$validatingMagnet\" />"; + $body .= "<input name=\"obucket$i\" type=\"hidden\" value=\"$bucket\" />"; + $body .= "</td>\n"; $body .= "</tr>"; *************** *** 1361,1369 **** $body .= "<tr><td></td><td><input type=\"submit\" class=\"deleteButton\" name=\"update\" value=\"$self->{language__}{Update}\" /></td><td><input type=\"submit\" class=\"deleteButton\" name=\"delete\" value=\"$self->{language__}{Remove}\" /></td></tr></table>"; ! $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n<br /><br />\n"; ! $body .= "<input type=\"hidden\" name=\"count\" value=\"$i\" />\n</form>\n<br /><br />\n<hr />\n"; # Create New Magnet panel ! $body .= "<h2 class=\"magnets\">$self->{language__}{Magnet_CreateNew}</h2>\n"; $body .= "<table cellspacing=\"0\" summary=\"\">\n<tr>\n<td>\n"; $body .= "<b>$self->{language__}{Magnet_Explanation}\n"; --- 1429,1441 ---- $body .= "<tr><td></td><td><input type=\"submit\" class=\"deleteButton\" name=\"update\" value=\"$self->{language__}{Update}\" /></td><td><input type=\"submit\" class=\"deleteButton\" name=\"delete\" value=\"$self->{language__}{Remove}\" /></td></tr></table>"; ! $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n"; ! $body .= "<input type=\"hidden\" name=\"start_magnet\" value=\"$start_magnet\" />\n"; ! $body .= "<input type=\"hidden\" name=\"count\" value=\"$i\" />\n</form>\n<br /><br />\n"; ! ! $body .= $navigator; # Create New Magnet panel ! ! $body .= "<hr />\n<h2 class=\"magnets\">$self->{language__}{Magnet_CreateNew}</h2>\n"; $body .= "<table cellspacing=\"0\" summary=\"\">\n<tr>\n<td>\n"; $body .= "<b>$self->{language__}{Magnet_Explanation}\n"; *************** *** 1371,1380 **** --- 1443,1455 ---- # optional widget placement + $body .= "<div class=\"magnetsNewWidget\">\n"; # New Magnets form + $body .= "<form action=\"/magnets\">\n"; # Magnet Type widget + $body .= "<label class=\"magnetsLabel\" for=\"magnetsAddType\">$self->{language__}{Magnet_MagnetType}:</label><br />\n"; $body .= "<select name=\"type1\" id=\"magnetsAddType\">\n"; *************** *** 1399,1402 **** --- 1474,1478 ---- } $body .= "</select>\n<input type=\"submit\" class=\"submit\" name=\"create\" value=\"$self->{language__}{Create}\" />\n"; + $body .= "<input type=\"hidden\" name=\"start_magnet\" value=\"$start_magnet\" />\n"; $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n</form>\n$magnet_message\n"; $body .="<br />\n"; *************** *** 2340,2343 **** --- 2416,2467 ---- } + $body .= " (<a class=\"history\" href=\"/history?session=$self->{session_key__}&setfilter=\">$self->{language__}{Refresh}</a>)\n"; + + return $body; + } + + # --------------------------------------------------------------------------------------------- + # + # get_magnet_navigator + # + # Return the HTML for the Next, Previous and page numbers for magnet navigation + # + # $start_magnet - The number of the first magnet + # $stop_magnet - The number of the last magnet + # $magnet_count - Total number of magnets + # + # --------------------------------------------------------------------------------------------- + sub get_magnet_navigator + { + my ( $self, $start_magnet, $stop_magnet, $magnet_count ) = @_; + + my $body = "$self->{language__}{Magnet_Jump}: "; + + if ( $start_magnet != 0 ) { + $body .= "[<a href=\"/magnets?start_magnet="; + $body .= $start_magnet - $self->config_( 'page_size' ); + $body .= $self->print_form_fields_(0,1,('session')) . "\">< $self->{language__}{Previous}</a>] "; + } + my $i = 0; + my $count = 0; + while ( $i < $magnet_count ) { + $count += 1; + if ( $i == $start_magnet ) { + $body .= "<b>"; + $body .= $count . "</b>"; + } else { + $body .= "[<a href=\"/magnets?start_magnet=$i" . $self->print_form_fields_(0,1,('session')). "\">"; + $body .= $count . "</a>]"; + } + + $body .= " "; + $i += $self->config_( 'page_size' ); + } + if ( $start_magnet < ( $magnet_count - $self->config_( 'page_size' ) ) ) { + $body .= "[<a href=\"/magnets?start_magnet="; + $body .= $start_magnet + $self->config_( 'page_size' ); + $body .= $self->print_form_fields_(0,1,('session')) . "\">$self->{language__}{Next} ></a>]"; + } + return $body; } *************** *** 2743,2747 **** } ! my $body = ''; if ( !$self->history_cache_empty() ) { --- 2867,2871 ---- } ! my $body = ''; if ( !$self->history_cache_empty() ) { *************** *** 2968,2972 **** $body .= "<a href=\"/view?view=" . $self->{history_keys__}[ $index - 1 ]; $body .= "&start_message=". ((( $index - 1 ) >= $start_message )?$start_message:($start_message - $self->config_( 'page_size' ))); ! $body .= $self->print_form_fields_(0,1,('filter','session','search','sort')) . "\"><<"; $body .= $self->{language__}{Previous}; $body .= "</a> "; --- 3092,3096 ---- $body .= "<a href=\"/view?view=" . $self->{history_keys__}[ $index - 1 ]; $body .= "&start_message=". ((( $index - 1 ) >= $start_message )?$start_message:($start_message - $self->config_( 'page_size' ))); ! $body .= $self->print_form_fields_(0,1,('filter','session','search','sort')) . "\">< "; $body .= $self->{language__}{Previous}; $body .= "</a> "; *************** *** 2978,2982 **** $body .= $self->print_form_fields_(0,1,('filter','session','search','sort')) . "\"> "; $body .= $self->{language__}{Next}; ! $body .= ">></a>"; } --- 3102,3106 ---- $body .= $self->print_form_fields_(0,1,('filter','session','search','sort')) . "\"> "; $body .= $self->{language__}{Next}; ! $body .= " ></a>"; } *************** *** 3039,3043 **** my $text = $2; $body .= "<tt>"; ! open MESSAGE, '<' . $self->global_config_( 'msgdir' ) . $mail_file; my $line; --- 3163,3167 ---- my $text = $2; $body .= "<tt>"; ! open MESSAGE, '<' . $self->global_config_( 'msgdir' ) . $mail_file; my $line; *************** *** 3046,3063 **** $line =~ s/</</g; $line =~ s/>/>/g; ! $line =~ s/([^\r\n]{100,150} )/$1<br \/>/g; $line =~ s/([^ \r\n]{150})/$1<br \/>/g; $line =~ s/[\r\n]+/<br \/>/g; ! if ( $line =~ /^([A-Za-z-]+): ?([^\n\r]*)/ ) { my $head = $1; my $arg = $2; ! if ( $head =~ /\Q$header\E/i ) { ! $text =~ s/</</g; $text =~ s/>/>/g; ! if ( $arg =~ /\Q$text\E/i ) { my $new_color = $self->{classifier__}->get_bucket_color($bucket); --- 3170,3187 ---- $line =~ s/</</g; $line =~ s/>/>/g; ! $line =~ s/([^\r\n]{100,150} )/$1<br \/>/g; $line =~ s/([^ \r\n]{150})/$1<br \/>/g; $line =~ s/[\r\n]+/<br \/>/g; ! if ( $line =~ /^([A-Za-z-]+): ?([^\n\r]*)/ ) { my $head = $1; my $arg = $2; ! if ( $head =~ /\Q$header\E/i ) { ! $text =~ s/</</g; $text =~ s/>/>/g; ! if ( $arg =~ /\Q$text\E/i ) { my $new_color = $self->{classifier__}->get_bucket_color($bucket); *************** *** 3066,3070 **** } } ! $body .= $line; } --- 3190,3194 ---- } } ! $body .= $line; } *************** *** 3076,3096 **** $body .= "<tr><td class=\"top20\" valign=\"top\">\n"; ! if ($self->{history__}{$mail_file}{magnet} eq '') { ! # Enable saving of word-scores ! $self->{classifier__}->wordscores( 1 ); ! # Build the scores by classifying the message ! $self->{classifier__}->classify_file($self->global_config_( 'msgdir' ) . $mail_file, $self); ! # Disable, print, and clear saved word-scores ! $self->{classifier__}->wordscores( 0 ); $body .= $self->{classifier__}->scores(); $self->{classifier__}->scores(''); - } else { $body .= sprintf( $self->{language__}{History_MagnetBecause}, --- 3200,3219 ---- $body .= "<tr><td class=\"top20\" valign=\"top\">\n"; ! if ($self->{history__}{$mail_file}{magnet} eq '') { ! # Enable saving of word-scores ! $self->{classifier__}->wordscores( 1 ); ! # Build the scores by classifying the message ! $self->{classifier__}->classify_file($self->global_config_( 'msgdir' ) . $mail_file, $self); ! # Disable, print, and clear saved word-scores ! $self->{classifier__}->wordscores( 0 ); $body .= $self->{classifier__}->scores(); $self->{classifier__}->scores(''); } else { $body .= sprintf( $self->{language__}{History_MagnetBecause}, *************** *** 3098,3102 **** Classifier::MailParse::splitline($self->{history__}{$mail_file}{magnet},0) ); ! } # Close button --- 3221,3225 ---- Classifier::MailParse::splitline($self->{history__}{$mail_file}{magnet},0) ); ! } # Close button *************** *** 3400,3404 **** $formstring .= "$field=$self->{form_}{$field}"; $count++; ! } } --- 3523,3527 ---- $formstring .= "$field=$self->{form_}{$field}"; $count++; ! } } *************** *** 3407,3411 **** } - # --------------------------------------------------------------------------------------------- # register_configuration_item --- 3530,3533 ---- *************** *** 3483,3488 **** { my ($line, $encoding) = @_; $line =~ s/([^\r\n]{100,120} )/$1\r\n/g; ! $line =~ s/([^ \r\n]{120})/$1\r\n/g; $line =~ s/</</g; --- 3605,3611 ---- { my ($line, $encoding) = @_; + $line =~ s/([^\r\n]{100,120} )/$1\r\n/g; ! $line =~ s/([^ \r\n]{120})/$1\r\n/g; $line =~ s/</</g; *************** *** 3495,3500 **** $line =~ s/\t/ /g; ! ! return $line; } --- 3618,3623 ---- $line =~ s/\t/ /g; ! ! return $line; } |