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]