Changing "hanging comma" index entries to omit the comma, and to

unify with a previous baseword entry if one is present.
This commit is contained in:
H. Peter Anvin 2002-05-16 18:08:15 +00:00
parent 23ae7026a8
commit 5cea9565e0

View file

@ -173,13 +173,17 @@ while ( defined($line = <PARAS>) ) {
$ixterms{$ixentry} = [split(/\037/, $data)];
# Look for commas. This is easier done on the string
# representation, so do it now.
if ( $data =~ /^(.*\,)\037sp\037/ ) {
if ( $data =~ /^(.*)\,\037sp\037/ ) {
$ixprefix = $1;
$ixprefix =~ s/\037n $//; # Discard possible font change at end
$ixhasprefix{$ixentry} = $ixprefix;
if ( !$ixprefixes{$ixprefix} ) {
$ixcommafirst{$ixentry}++;
}
$ixprefixes{$ixprefix}++;
} else {
# A complete term can also be used as a prefix
$ixprefixes{$data}++;
}
} else {
push(@ptypes, $line);
@ -860,7 +864,16 @@ foreach $k ( @ixentries ) {
if ( $ixcommafirst{$k} ) {
# This is the first entry; generate the
# "hanging comma" entry
push(@ixparas, [splice(@ixpara,0,$commapos+1),[-6,undef]]);
my @precomma = splice(@ixpara,0,$commapos);
if ( $ixpara[0]->[1] eq ',' ) {
shift(@ixpara); # Discard lone comma
} else {
# Discard attached comma
$ixpara[0]->[1] =~ s/\,$//;
push(@precomma,shift(@ixpara));
}
push(@precomma, [-6,undef]);
push(@ixparas, [@precomma]);
push(@ixptypes, $ixptype);
shift(@ixpara); # Remove space
} else {