From 5cea9565e0a5b0f40e49470a20a8d4803155244d Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 16 May 2002 18:08:15 +0000 Subject: [PATCH] Changing "hanging comma" index entries to omit the comma, and to unify with a previous baseword entry if one is present. --- doc/genps.pl | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/doc/genps.pl b/doc/genps.pl index b079ac5f..912c18d0 100755 --- a/doc/genps.pl +++ b/doc/genps.pl @@ -173,13 +173,17 @@ while ( defined($line = ) ) { $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 {