:) Thanks for letting know this! Thanks, Alex Orlov. Intel Middleware Products Division
On 4/7/06, Tim Ellison <[EMAIL PROTECTED]> wrote: > Thanks Alex, > > We already have a keyword scanner[1] so we should ensure your dictionary > words are in there. > > I'd rather add the scan to the automated build rather than rely upon the > committers to remember to run it (at least one of the committers is lazy > like that ;-) ) > > [1] > http://svn.apache.org/viewcvs.cgi/incubator/harmony/standard/tools/keywordscan > > Regards, > Tim > > Alex Orlov wrote: > > On 4/7/06, Chris Gray <[EMAIL PROTECTED]> wrote: > >> On Thursday 06 April 2006 23:59, Tim Ellison wrote: > >>> You can run the Eclipse IDE on Classpath or Harmony(*) class libraries, > >>> both are sufficiently well advanced to run it. > >>> > >>> (*) you need to use the regex code from regex-beans-math which hasn't > >>> been merged into the build process yet > >> I knew eclipse ran on Classpath (e.g. gcj), wasn't sure about Harmony. > >> That's > >> good to hear. > >> > >> IMO Harmony developers should be encouraged to use a Sun-free workstation > >> whenever possible, to avoid this kind of slip-up. There should also be > >> automatic detectors for references to sun.* or com.sun.* classes. > > > > Hi folks, > > > > BTW we use simple script to check if the sources contain the words we > > would like to avoid. You can find it attached. The usage is pretty > > straightforward: > > > > perl check_bad_words.pl <dictionary> <directory or file> > > > > Also attached is dictionary file that contains "Sun" and "GPL" as two > > sample words. You can turn on your imagination and enhance the > > dictionary significantly. :) > > > > May we propose the committers to run it before committing anyuthing to SVN? > > > > Thanks, > > Alex Orlov. > > Intel Middleware Products Division > > > > > >> Regards, > >> > >> Chris > >> > >> -- > >> Chris Gray /k/ Embedded Java Solutions BE0503765045 > >> Embedded & Mobile Java, OSGi http://www.k-embedded-java.com/ > >> [EMAIL PROTECTED] +32 3 216 0369 > >> > >> > >> --------------------------------------------------------------------- > >> Terms of use : http://incubator.apache.org/harmony/mailing.html > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > >> ------------------------------------------------------------------------ > >> > >> #!/usr/bin/perl > >> > >> use File::Spec; > >> use strict; > >> > >> my $ext_src = "java|c|h|cpp|hpp|j|jfl|ccode"; > >> my $ext_sup = "xml|txt|pl|sh|bat|cmd"; > >> my $ext = "(" . $ext_src . "|" . $ext_sup . ")"; > >> my $filename = "copyright|license|notice|readme"; > >> my %bad_words = (); > >> > >> sub readDictionary { > >> my ($dic) = @_; > >> if (-f $dic) { > >> open (FD_DIC, "< $dic") or die "Can't open dictionary file: > >> $dic\n"; > >> while (<FD_DIC>) { > >> unless (/^#/ || /^\s+$/) { > >> my ($word, $area) = split(" ; "); > >> chomp $area; > >> my @areas = split(":", $area); > >> push @{$bad_words{$word}}, @areas; > >> } > >> } > >> close(FD_DIC); > >> } else { > >> die "Invalid dictionary file: $dic\n"; > >> } > >> } > >> > >> sub readDir { > >> my ($file) = @_; > >> if (-d $file) { > >> if (opendir(FD_DIR, $file)) { > >> chdir ($file); > >> foreach my $item (readdir(FD_DIR)) { > >> if ($item ne '.' && $item ne '..') { > >> readDir($item); > >> } > >> } > >> chdir (".."); > >> closedir (FD_DIR); > >> } else { > >> print "Can't open dir $file\n"; > >> } > >> } elsif (-f $file) { > >> if ($file =~ /\.$ext$/ || $file =~ /^$filename/i) { > >> &searchBadWords(&readFile($file), $file); > >> } > >> } else { > >> print "File or directory doesn't exist: $file\n"; > >> } > >> } > >> > >> sub searchBadWords($$) { > >> my ($content, $file) = @_; > >> my ($prev, $after, $match, $area); > >> my $abs_fname = File::Spec->rel2abs($file); > >> foreach my $word (sort keys %bad_words) { > >> my $checkable = 0; # false > >> foreach $area (@{$bad_words{$word}}) { > >> if (($area eq "all") or (index($abs_fname, $area) ne > >> -1)) { > >> $checkable = 1; # true > >> } > >> } > >> if ($checkable) { > >> if ($content =~ m/$word/i) { > >> $match = $&; > >> chomp($match); > >> $prev = $`; > >> $after = $'; > >> print "File: $abs_fname\n"; > >> print "Bad word: $match\n"; > >> print "Line #" . &getLineNumber($prev) . "\n"; > >> print "String: " . &getString($prev, $after, > >> $match) . "\n"; > >> print > >> "------------------------------------\n"; > >> } > >> } > >> } > >> if ($file =~ /^*\.($ext_src)/) { > >> if ($content =~ /[\s_]bug[\s_]*(#*)(\d+)/) { > >> $match = $&; > >> chomp($match); > >> $prev = $`; > >> $after = $'; > >> print "File: $abs_fname\n"; > >> print "Bug mentioning: $match\n"; > >> print "Line #" . &getLineNumber($prev) . "\n"; > >> print "String: " . &getString($prev, $after, $match) . "\n"; > >> print "------------------------------------\n"; > >> } > >> } > >> } > >> > >> sub readFile($) { > >> my($file_name) = @_; > >> my $content = ""; > >> if (open(FH, "< " . $file_name)) { > >> while (<FH>) { > >> $content .= $_; > >> } > >> close FH; > >> } else { > >> printf STDERR "Can't open file $file_name\n"; > >> } > >> $content; > >> } > >> > >> sub getString($$$) { > >> my($prev, $after, $match) = @_; > >> my $last_p = rindex($prev, "\n"); > >> my $first_a = index($after, "\n"); > >> substr($prev, $last_p + 1, length($prev) - $last_p) . $match . > >> substr($after, 0, $first_a); > >> } > >> > >> sub getLineNumber($) { > >> my($string) = @_; > >> my $lnum = 1; > >> while ($string =~ m/\n/g) { > >> $lnum++; > >> } > >> $lnum; > >> } > >> > >> if (scalar(@ARGV) < 2) { > >> print "Usage: perl check_bad_words.pl <dictionary> <directory or > >> file>"; > >> exit; > >> } > >> > >> &readDictionary($ARGV[0]); > >> &readDir($ARGV[1]); > >> > >> > >> ------------------------------------------------------------------------ > >> > >> --------------------------------------------------------------------- > >> Terms of use : http://incubator.apache.org/harmony/mailing.html > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > > -- > > Tim Ellison ([EMAIL PROTECTED]) > IBM Java technology centre, UK. > > --------------------------------------------------------------------- > Terms of use : http://incubator.apache.org/harmony/mailing.html > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
