[Po4a-commits] "po4a/lib/Locale/Po4a Xml.pm,1.105,1.106"
Nicolas FRANCOIS
nekral-guest at alioth.debian.org
Sun Apr 5 10:06:21 UTC 2009
Update of /cvsroot/po4a/po4a/lib/Locale/Po4a
In directory alioth:/tmp/cvs-serv29811/lib/Locale/Po4a
Modified Files:
Xml.pm
Log Message:
* lib/Locale/Po4a/Xml.pm: Do not include commented out entities.
Index: Xml.pm
===================================================================
RCS file: /cvsroot/po4a/po4a/lib/Locale/Po4a/Xml.pm,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -d -r1.105 -r1.106
--- Xml.pm 15 Mar 2009 23:48:29 -0000 1.105
+++ Xml.pm 5 Apr 2009 10:06:19 -0000 1.106
@@ -69,18 +69,42 @@
my @comments;
+my $_shiftline_in_comment = 0;
sub shiftline {
my $self = shift;
# call Transtractor's shiftline
my ($line,$ref) = $self->SUPER::shiftline();
return ($line,$ref) if (not defined $line);
+ if ($self->{options}{'includeexternal'}) {
+ my $tmp;
+
for my $k (keys %entities) {
if ($line =~ m/^(.*?)&$k;(.*)$/s) {
my ($before, $after) = ($1, $2);
my $linenum=0;
my @textentries;
+ $tmp = $before;
+ my $tmp_in_comment = 0;
+ if ($_shiftline_in_comment) {
+ if ($before =~ m/^.*?-->(.*)$/s) {
+ $tmp = $1;
+ $tmp_in_comment = 0;
+ } else {
+ $tmp_in_comment = 1;
+ }
+ }
+ if ($tmp_in_comment == 0) {
+ while ($tmp =~ m/^.*?<!--.*?-->(.*)$/s) {
+ $tmp = $1;
+ }
+ if ($tmp =~ m/<!--/s) {
+ $tmp_in_comment = 1;
+ }
+ }
+ next if ($tmp_in_comment);
+
open (my $in, $entities{$k})
or croak wrap_mod("po4a::xml",
dgettext("po4a", "Can't read from %s: %s"),
@@ -102,6 +126,25 @@
}
}
+ $tmp = $line;
+ if ($_shiftline_in_comment) {
+ if ($line =~ m/^.*?-->(.*)$/s) {
+ $tmp = $1;
+ $_shiftline_in_comment = 0;
+ } else {
+ $_shiftline_in_comment = 1;
+ }
+ }
+ if ($_shiftline_in_comment == 0) {
+ while ($tmp =~ m/^.*?<!--.*?-->(.*)$/s) {
+ $tmp = $1;
+ }
+ if ($tmp =~ m/<!--/s) {
+ $_shiftline_in_comment = 1;
+ }
+ }
+ }
+
return ($line,$ref);
}
More information about the Po4a-commits
mailing list