summaryrefslogtreecommitdiff
path: root/check-THANKS.pl
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2001-01-24 18:39:46 +0000
committerDarin Adler <darin@src.gnome.org>2001-01-24 18:39:46 +0000
commit78ca16a050ae7bcb9004d97aac02945d6267d8cd (patch)
tree46e9b720fd5c5b23ac68cb6e3c1490fe555685af /check-THANKS.pl
parentba5e67e4dd9c669e3381c2299048ce836b252015 (diff)
downloadnautilus-78ca16a050ae7bcb9004d97aac02945d6267d8cd.tar.gz
Updated based on recent check-ins and other contributions.
* AUTHORS: * THANKS: * src/nautilus-window-menus.c: (help_menu_about_nautilus_callback): Updated based on recent check-ins and other contributions. * check-THANKS.pl: Updated to check the about list against the AUTHORS file and to fix some other things. * libnautilus/nautilus-view-component.idl: Fix a comment and remove a stray empty line.
Diffstat (limited to 'check-THANKS.pl')
-rwxr-xr-xcheck-THANKS.pl243
1 files changed, 158 insertions, 85 deletions
diff --git a/check-THANKS.pl b/check-THANKS.pl
index 581e25125..39a9fe3ce 100755
--- a/check-THANKS.pl
+++ b/check-THANKS.pl
@@ -30,7 +30,6 @@
use diagnostics;
use strict;
-
# Map from alternate names of some users to canonical versions
my %name_map = ("Darin as Andy" => "Darin Adler",
@@ -38,10 +37,11 @@ my %name_map = ("Darin as Andy" => "Darin Adler",
"Shane Culpepper" => "J Shane Culpepper",
"Michael K. Fleming" => "Mike Fleming",
"Rebecka Schulman" => "Rebecca Schulman",
- "Mike Engber" => "Michael Engber",
+ "Michael Engber" => "Mike Engber",
"Pavel Cisler" => "Pavel Císler",
"Pavel" => "Pavel Císler",
"Eskil Olsen" => "Eskil Heyn Olsen",
+ "Szabolcs BAN" => "Szabolcs Ban",
"Robin Slomkowski" => "Robin * Slomkowski");
# Map from alternate email addresses of some users to canonical versions
@@ -49,10 +49,9 @@ my %name_map = ("Darin as Andy" => "Darin Adler",
my %email_map = ('at@ue-spacy.com' => 'tagoh@gnome.gr.jp',
'sopwith@eazel.com' => 'sopwith@redhat.com',
'chief_wanker@eazel.com' => 'eskil@eazel.com',
- 'eskil@eazel.om' => 'eskil@eazel.com',
- 'yakk@yakk.net' => 'yakk@yakk.net.au',
+ 'yakk@yakk.net' => 'ian@eazel.com',
+ 'yakk@yakk.net.au' => 'ian@eazel.com',
'linuxfan@ionet..net' => 'josh@eazel.com',
- 'rslokow@eazel.com' => 'rslomkow@eazel.com',
'snickell@stanford.edu' => 'seth@eazel.com',
'mathieu@gnome.org' => 'mathieu@eazel.com',
'hp@pobox.com' => 'hp@redhat.com',
@@ -60,6 +59,8 @@ my %email_map = ('at@ue-spacy.com' => 'tagoh@gnome.gr.jp',
'kmaraas@gnu.org' => 'kmaraas@gnome.org',
'raph@gimp.org' => 'raph@acm.org',
'baulig@suse.de' => 'martin@home-of-linux.org',
+ 'carlos@gnome-db.org' => 'carlos@hispalinux.es',
+ 'mawa@iname.com' => 'mawarkus@gnome.org',
'linuxfan@ionet.net' => 'josh@eazel.com');
@@ -70,137 +71,209 @@ my %no_credit = ('2000-09-08 Daniel Egger <egger@suse.de>' => 1,
'2000-09-06 Daniel Egger <egger@suse.de>' => 1);
-my @lines;
-my @sort_lines;
-my @changelog_people;
-my @thanks_people;
-my @uncredited;
-my @double_credited;
-
-
-
-open (CHANGELOGS,"cat `find . -name intl -prune -or -name 'ChangeLog*' -print`|");
-
-
-LOOP: while (<CHANGELOGS>) {
- my $name;
- my $email;
+open CHANGELOGS, "cat `find . -name intl -prune -or -name 'ChangeLog*' -and \! -name '*~' -print`|" or die;
+my @lines;
+LOOP: while (<CHANGELOGS>)
+ {
chomp;
-
- if (/@/) {
- if ($no_credit{$_}) {
+
+ if (/@/)
+ {
+ if ($no_credit{$_})
+ {
next LOOP;
- }
+ }
- if (/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/) {
+ if (/^\d\d\d\d-\d\d-\d\d/)
+ {
# Normal style ChangeLog comment
- s/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][ \t]*//;
-
- } elsif (/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun).*[0-9][0-9][0-9][0-9]/) {
+ s/^\d\d\d\d-\d\d-\d\d[ \t]*//;
+ }
+ elsif (/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun).*\d\d\d\d/)
+ {
# Old style ChangeLog comment
- s/^.*2000[ \t\n\r]*//;
-
- } else {
- # FIXME bugzilla.eazel.com 3452: we should try to extract names & addresses from
- # entry body text.
-
+ s/^.*20\d\d\s*//;
+ }
+ else
+ {
+ # FIXME bugzilla.eazel.com 3452: we should also try to extract
+ # names & addresses from entry body text.
next LOOP; # ignore unknown lines for now
- }
-
+ }
- $name = $_;
- $email = $_;
+ my $name = $_;
$name =~ s/[ \t]*<.*[\n\r]*$//;
-
- if ($name_map{$name}) {
- $name = $name_map{$name};
- }
-
+
+ $name = $name_map{$name} if $name_map{$name};
+
+ my $email = $_;
$email =~ s/^.*<//;
$email =~ s/>.*$//;
$email =~ s/[ \t\n\r]*$//;
+ $email =~ s/helixcode/ximian/;
- if ($email_map{$email}) {
- $email = $email_map{$email};
- }
+ $email = $email_map{$email} if $email_map{$email};
push @lines, "${name} <${email}>";
}
}
-close (CHANGELOGS);
-
-@sort_lines = sort @lines;
+close CHANGELOGS;
+my @changelog_people;
my $last_line = "";
-
-foreach my $line (@sort_lines) {
+foreach my $line (sort @lines)
+ {
push @changelog_people, $line unless $line eq $last_line;
$last_line = $line;
-}
-
+ }
-open (AUTHORS, "<AUTHORS");
+open AUTHORS, "AUTHORS" or die;
my @authors;
while (<AUTHORS>) {
chomp;
-
push @authors, $_;
}
-close (AUTHORS);
+close AUTHORS;
-open (THANKS, "<THANKS");
+open THANKS, "THANKS" or die;
+my @thanks_people;
while (<THANKS>) {
chomp;
-
s/ - .*$//;
-
push @thanks_people, $_;
}
-close (THANKS);
+close THANKS;
+open ABOUT, "src/nautilus-window-menus.c" or die;
-foreach my $person (@changelog_people) {
- if (! (grep {$_ eq $person} @thanks_people) &&
- ! (grep {$_ eq $person} @authors)) {
- push @uncredited, $person;
- }
-}
+my $found_about_authors = 0;
-if (@uncredited) {
- print "The following people are in the ChangeLog but not credited in THANKS or AUTHORS:\n\n";
+while (<ABOUT>)
+ {
+ if (/const char \*authors/)
+ {
+ $found_about_authors = 1;
+ last;
+ }
+ }
- foreach my $person (@uncredited) {
- print "${person}\n";
- }
- print "\n";
-}
+my @about_authors;
+if ($found_about_authors)
+ {
+ my $i = 0;
+ while (<ABOUT>)
+ {
+ last unless /^\s+\"(.*)\",\s*\n/;
+ push @about_authors, $1;
+ }
+ }
+close ABOUT;
-foreach my $person (@authors) {
- if (grep {$_ eq $person} @thanks_people) {
- push @double_credited, $person;
- }
-}
+my @uncredited;
+foreach my $person (@changelog_people)
+ {
+ if (! (grep {$_ eq $person} @thanks_people) &&
+ ! (grep {$_ eq $person} @authors))
+ {
+ push @uncredited, $person;
+ }
+ }
+
+my @double_credited;
+foreach my $person (@authors)
+ {
+ if (grep {$_ eq $person} @thanks_people)
+ {
+ push @double_credited, $person;
+ }
+ }
+
+my @author_names;
+foreach my $person (@authors)
+ {
+ $person =~ s/\s*<.*//;
+ push @author_names, $person;
+ }
+
+my @not_in_about;
+foreach my $person (@author_names)
+ {
+ push @not_in_about, $person unless grep {$_ eq $person} @about_authors;
+ }
+
+my @only_in_about;
+foreach my $person (@about_authors)
+ {
+ push @only_in_about, $person unless grep {$_ eq $person} @author_names;
+ }
+
+my $printed = 0;
+
+if (@uncredited)
+ {
+ print "\nThe following people are in the ChangeLog but not credited in THANKS or AUTHORS:\n\n";
+
+ foreach my $person (@uncredited)
+ {
+ print "${person}\n";
+ }
+
+ $printed = 1;
+ }
-if (@double_credited) {
- print "The following people are listed in both THANKS and AUTHORS:\n\n";
+if (@double_credited)
+ {
+ print "\nThe following people are listed in both THANKS and AUTHORS:\n\n";
+
+ foreach my $person (@double_credited)
+ {
+ print "${person}\n";
+ }
+
+ $printed = 1;
+ }
+
+if (!$found_about_authors)
+ {
+ print "\nDidn't find authors section in nautilus-window-menus.c\n";
+ $printed = 1;
+ }
+
+if (@not_in_about)
+ {
+ print "\nThe following people are in AUTHORS but not the about screen:\n\n";
+
+ foreach my $person (@not_in_about)
+ {
+ print "${person}\n";
+ }
+
+ $printed = 1;
+ }
- foreach my $person (@double_credited) {
+if (@only_in_about)
+ {
+ print "\nThe following people are in the about screen but not AUTHORS:\n\n";
+
+ foreach my $person (@only_in_about)
+ {
print "${person}\n";
- }
-}
+ }
+
+ $printed = 1;
+ }
-# FIXME bugzilla.eazel.com 3453: we should also make sure that AUTHORS matches the contents of
-# the About dialog.
+print "\n" if $printed;