--- trunk/parse_format.pm 2003/11/23 15:42:16 170 +++ trunk/parse_format.pm 2003/11/29 18:58:34 187 @@ -80,18 +80,31 @@ # this might be our local scpeciality -- fields 10 and 11 # (as opposed to 010 and 011) so they are strictly listed # here - } elsif ($f =~ s/^(1[01])//) { + } elsif ($f =~ s/^(1[01]\w?)//) { push @fmt,$1; push @fmt,undef; } elsif ($f =~ s/^mfn//i) { push @fmt,'mfn'; push @fmt,''; } elsif ($f =~ s/^([^\d]+)(\d{0,3})/$2/) { - push @fmt,$1; + # still prefix? + if ($#fmt == 0) { + $fmt[0] .= $1; + } else { + push @fmt,$1; + } } elsif ($f =~ s/^([^\d]+\d{0,2})//) { - push @fmt,$1; + if ($#fmt == 0) { + $fmt[0] .= $1; + } else { + push @fmt,$1; + } } elsif ($f =~ s/^(\d{1,2})//) { - push @fmt,$1; + if ($#fmt == 0) { + $fmt[0] .= $1; + } else { + push @fmt,$1; + } } else { print STDERR "unparsed format: $f\n"; $f = ""; @@ -140,7 +153,9 @@ $display = $prefix.$display.$sufix if ($display); print STDERR "format left unused: [",join("|",@fmt),"]\n" if (@fmt); -# print STDERR "display: $display swish: $swish\n"; + print STDERR "format: [",join("|",@{$tmp}),"]\n" if (@fmt); + +# print STDERR "format: {",$format || '',"} display: {",$display || '',"} swish: {",$swish || '',"}\n"; return ($swish,$display); }