diff options
author | Norbert Preining <preining@logic.at> | 2008-11-14 15:35:27 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-11-14 15:35:27 +0000 |
commit | 9ef5ebfbefd14e51bb12d257e2ab013781a77b9f (patch) | |
tree | 89303bc25477d8421cbbe79f4dab179d7df0300b /Master/tlpkg/TeXLive/TLPOBJ.pm | |
parent | 5fab70b00334fbb7e8958cee1d4971d09223c65e (diff) |
further speed up tlpdb reading
git-svn-id: svn://tug.org/texlive/trunk@11298 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/TeXLive/TLPOBJ.pm')
-rw-r--r-- | Master/tlpkg/TeXLive/TLPOBJ.pm | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm index 17dd6a408a2..381e4ae5e03 100644 --- a/Master/tlpkg/TeXLive/TLPOBJ.pm +++ b/Master/tlpkg/TeXLive/TLPOBJ.pm @@ -77,7 +77,7 @@ sub from_fh { 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. - ddebug("reading line: >>>$line<<<\n"); + ddebug("reading line: >>>$line<<<\n") if ($::opt_verbosity >= 2); $line =~ /^\s*#/ && next; # skip comment lines if ($line =~ /^\s*$/o) { if (!$started) { next; } @@ -113,10 +113,13 @@ sub from_fh { push @{$self->{$1."files"}}, "$2"; next; } elsif ($line =~ /^docfilescontinued\s+(.*)\s*/o) { - # docfiles can have tags - my @words = &TeXLive::TLUtils::quotewords('\s+', 0, "$1"); - # the first entry is the file - my $f = shift @words; + # docfiles can have tags, but the quotewords function is so + # time intense that we try to call it only when necessary + my ($f, $rest) = split(' ', "$1", 2); + my @words; + if (defined $rest) { + @words = &TeXLive::TLUtils::quotewords('\s+', 0, "$rest"); + } push @{$self->{'docfiles'}}, $f; while (@words) { $_ = shift @words; |