From 417e91d078352571aefe2bffd3cc2c1e5cc08f60 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 16 May 2011 18:27:55 +0000 Subject: TLPOBJ.pm (from_fh): do not remove trailing whitespace; turns out this takes consequential time, and the creation programs should not ever produce it. Also added trailing-whitespace check to cron job for master tlpdb creation. With this change, tlpdb-read-test time is reduced from ~2.4sec to ~1.2sec. TeXCatalogue.pm (beautify): remove trailing whitespace. Looks like this can matter in s which we turn into shortdescs, but nowhere else. dev/tlpdb-read-test: trivial test script to read tlpdb and nothing else. git-svn-id: svn://tug.org/texlive/trunk@22498 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/TeXLive/TLPOBJ.pm | 7 +++++-- Master/tlpkg/TeXLive/TeXCatalogue.pm | 17 ++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) (limited to 'Master/tlpkg/TeXLive') diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm index b73ee0e3cff..9713c87b90a 100644 --- a/Master/tlpkg/TeXLive/TLPOBJ.pm +++ b/Master/tlpkg/TeXLive/TLPOBJ.pm @@ -83,7 +83,11 @@ sub from_fh { my $size; while (my $line = <$fh>) { + # we do not worry about whitespace at the end of a line; + # that would be a bug in the db creation, and it takes some + # noticeable time to get rid of it. So just chomp. chomp($line); + # we call tllog only when something will be logged, to speed things up. # this is the inner loop bounding the time to read tlpdb. dddebug("reading line: >>>$line<<<\n") if ($::opt_verbosity >= 3); @@ -111,8 +115,7 @@ sub from_fh { die("Continuation of $lastcmd not allowed, please fix tlpobj: line = $line!\n"); } } - # remove white space at the end of a line - $line =~ s/\s*$//; + if ($line =~ /^name\s*([-.\w]+)/o) { $name = "$1"; $lastcmd = "name"; diff --git a/Master/tlpkg/TeXLive/TeXCatalogue.pm b/Master/tlpkg/TeXLive/TeXCatalogue.pm index 95ba60442a1..34f7a7f512b 100644 --- a/Master/tlpkg/TeXLive/TeXCatalogue.pm +++ b/Master/tlpkg/TeXLive/TeXCatalogue.pm @@ -1,6 +1,6 @@ # $Id$ # TeXLive::TeXCatalogue - module for accessing the TeX Catalogue -# Copyright 2007, 2008, 2009, 2010 Norbert Preining +# Copyright 2007, 2008, 2009, 2010, 2011 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. # @@ -88,15 +88,15 @@ sub initialize { } } -sub beautify -{ +sub beautify { my ($txt) = @_; - $txt =~ s/\n/ /g; - $txt =~ s/^[[:space:]]*//g; - $txt =~ s/[[:space:]][[:space:]]*/ /g; + $txt =~ s/\n/ /g; # make one line + $txt =~ s/^\s+//g; # rm leading whitespace + $txt =~ s/\s+$//g; # rm trailing whitespace + $txt =~ s/\s\s+/ /g; # multiple spaces to one # transliterate to ascii: it allows the final tlpdb to be pure ascii, # avoiding problems since we don't control the user's terminal encoding - return(Text::Unidecode::unidecode($txt)); + return Text::Unidecode::unidecode($txt); } sub name { @@ -197,8 +197,7 @@ sub initialize { # Copy every catalogue $entry under the name $entry->{'texlive'} # if it makes sense. # -sub quest4texlive -{ +sub quest4texlive { my $self = shift; # The catalogue has a partial mapping from catalogue entries to -- cgit v1.2.3