[Lxr-commits] CVS: lxr Local.pm,1.17,1.18
Brought to you by:
ajlittoz
From: Dave B. <bro...@us...> - 2004-07-14 14:42:37
|
Update of /cvsroot/lxr/lxr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12764 Modified Files: Local.pm Log Message: better choice of which javadoc comment to use Index: Local.pm =================================================================== RCS file: /cvsroot/lxr/lxr/Local.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- Local.pm 30 Jun 2004 19:19:45 -0000 1.17 +++ Local.pm 14 Jul 2004 14:42:28 -0000 1.18 @@ -108,12 +108,30 @@ return("\ \;"); } + # if a java file, only consider class-level javadoc comments if ($filename =~ /\.java$/) { - # first /** ... */ before 'public class' or 'public interface' - # (it'd be better to match the last /** ... */ before the declaration, but i can't get that to work - $desc =~ m#/\*\*(.*?)\*/.*public\s((abstract|static|final|strictfp)\s)*(class|interface)#s; - $desc = $1; + # last /** ... */ before 'public class' or 'public interface' + + # find declaration + $desc =~ m/public\s((abstract|static|final|strictfp)\s)*(class|interface)/g; + $declPos = pos $desc; + return "\ \;" if ! $declPos; + + # last comment start before declaration + pos $desc = 0; + $commentStart = -1; + while ($desc =~ m#/\*\*#g) { + last if $declPos < pos $desc; + $commentStart = pos $desc; + } + return "\ \;" if $commentStart == -1; + + # find comment end, and extract + pos $desc = $commentStart; + $desc =~ m#\*/#g; + $commentEnd = pos $desc; + $desc = substr($desc,$commentStart+3, $commentEnd-$commentStart - 5); return "\ \;" if ! $desc; |