diff options
Diffstat (limited to 'Master/tlpkg/TeXLive')
-rw-r--r-- | Master/tlpkg/TeXLive/TeXCatalogue.pm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Master/tlpkg/TeXLive/TeXCatalogue.pm b/Master/tlpkg/TeXLive/TeXCatalogue.pm index 34f7a7f512b..575242d19a6 100644 --- a/Master/tlpkg/TeXLive/TeXCatalogue.pm +++ b/Master/tlpkg/TeXLive/TeXCatalogue.pm @@ -187,7 +187,15 @@ sub initialize { # parse all the files foreach (glob("?/*.xml")) { open(my $io,"<$_") or die "Cannot read $_: $!"; - my $tce = TeXLive::TeXCatalogue::Entry->new( 'ioref' => $io ); + our $tce; + # the XML parser die's on malformed xml entries, so we catch + # that and continue, simply skipping the entry + eval { $tce = TeXLive::TeXCatalogue::Entry->new( 'ioref' => $io ); }; + if ($@) { + printf STDERR "TeX Catalogue: cannot read $_, skipping it!\n"; + close($io); + next; + } close($io); $self->{'entries'}{lc($tce->{'entry'}{'id'})} = $tce; } |