sub parse_format {
my $format = shift;
my $row = shift;
sub parse_format {
my $format = shift;
my $row = shift;
+ my $i = shift || 0; # isis repeatable number
my $out;
my $out_swish;
my $prefix = "";
if ($format =~ s/^([^\d]+)//) {
my $out;
my $out_swish;
my $prefix = "";
if ($format =~ s/^([^\d]+)//) {
}
my $display;
my $swish;
while ($format) {
}
my $display;
my $swish;
while ($format) {
-#print STDERR "#### $format\n";
+#print STDERR "\n#### $format";
if ($format =~ s/^(\d\d\d)(\w?)//) {
if ($format =~ s/^(\d\d\d)(\w?)//) {
- my $isis_tmp = isis_sf($row,$1,$2);
+ my $isis_tmp = isis_sf($row,$1,$2,$i);
if ($isis_tmp) {
$display .= $prefix . $isis_tmp;
$swish .= $isis_tmp." ";
if ($isis_tmp) {
$display .= $prefix . $isis_tmp;
$swish .= $isis_tmp." ";
+#print STDERR " == $isis_tmp";
}
$prefix = "";
# this might be our local scpeciality -- fields 10 and 11
# (as opposed to 010 and 011) so they are strictly listed
# here
} elsif ($format =~ s/^(1[01])//) {
}
$prefix = "";
# this might be our local scpeciality -- fields 10 and 11
# (as opposed to 010 and 011) so they are strictly listed
# here
} elsif ($format =~ s/^(1[01])//) {
- my $isis_tmp = isis_sf($row,$1,$2);
+ my $isis_tmp = isis_sf($row,$1,undef,$i);
if ($isis_tmp) {
$display .= $prefix . $isis_tmp;
$swish .= $isis_tmp." ";
}
$prefix = "";
if ($isis_tmp) {
$display .= $prefix . $isis_tmp;
$swish .= $isis_tmp." ";
}
$prefix = "";
+ } elsif ($format =~ s/^mfn//i) {
+ $display .= $prefix . $row->{mfn};
+ $prefix = "";
} elsif ($format =~ s/^([^\d]+)(\d{0,3})/$2/) {
} elsif ($format =~ s/^([^\d]+)(\d{0,3})/$2/) {
+ $prefix .= $1 if ($display);
} elsif ($format =~ s/^([^\d]+\d{0,2})//) {
} elsif ($format =~ s/^([^\d]+\d{0,2})//) {
+ $prefix .= $1 if ($display);
} elsif ($format =~ s/^(\d{1,2})//) {
} elsif ($format =~ s/^(\d{1,2})//) {
+ $prefix .= $1 if ($display);
} else {
print STDERR "unparsed format: $format\n";
$prefix .= $format;
} else {
print STDERR "unparsed format: $format\n";
$prefix .= $format;