summaryrefslogtreecommitdiff
path: root/bin/cvslog
diff options
context:
space:
mode:
Diffstat (limited to 'bin/cvslog')
-rwxr-xr-xbin/cvslog169
1 files changed, 0 insertions, 169 deletions
diff --git a/bin/cvslog b/bin/cvslog
deleted file mode 100755
index 1330db622f8..00000000000
--- a/bin/cvslog
+++ /dev/null
@@ -1,169 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Wraps cvs log, and substitutes messages of form "ChangeLogTag"
-# with their corresponding ChangeLog entries.
-#
-# Authors: Luther J. Baker and David L. Levine
-
-####
-#### global
-####
-use strict;
-my $dir_sep = $^O eq 'MSWin32' ? '\\' : '/';
-my $cvs_log_options = '';
-my @changelogs = ();
-my %changelog_hash = ();
-
-
-####
-#### main (I do this for reading clarity)
-####
-{
- ####
- #### Save any command line options (beginning with -), to pass to cvs log.
- ####
- while ($#ARGV >= $[ && $ARGV[0] =~ /^-/) {
- $cvs_log_options .= $cvs_log_options ? " " . shift : shift;
- }
-
- ####
- #### Build up the array of ChangeLog files to search,
- ####
- &find_changelogs($ARGV[0]);
-
- ####
- #### Build the hash table of key=tags value=entry
- ####
- &build_changelog_hash();
-
-
- ####
- #### Print the cvs log for each filename argument.
- #### Inserting expanded entries after ChangeLog tags
- ####
- foreach my $arg (@ARGV) {
- &print_log ($arg);
- }
-}
-
-
-####
-#### Function surrounding cvs log
-####
-sub print_log () {
- my $file = shift;
-
- open (CVSLOG, "cvs log $cvs_log_options $file |") ||
- die "$0: unable to open cvs log\n";
-
- while (<CVSLOG>) {
-
- if (/ChangeLog(Tag)?: *(.*)/i ||
- /ChangeLog( *Entry)?: *(.*)/i) {
-
- chomp;
- print "$_:\n";
-
- # An array reference HAS to be defined, the following will NOT work
- # print "$changelog_hash{$2})" || "ChangeLogTag NOT FOUND!!!!\n";
-
- if (defined $changelog_hash{$2}) {
- print "@{$changelog_hash{$2}}";
- } else {
- print "\n\tChangeLogTag \"$2\" NOT FOUND!!!!\n\n";
- }
-
- } else {
- print;
- }
- }
-
- close CVSLOG;
-}
-
-
-####
-#### Build the hash
-####
-sub build_changelog_hash () {
- my $key = 0;
- my @entry = ();
-
- foreach my $changelog_file (@changelogs) {
-
- open (CHANGELOG, $changelog_file) ||
- die "$0: unable to open '$changelog_file'\n";
-
- while (<CHANGELOG>) {
- if (/^\w/) {
- if ($key) {
- if (defined $changelog_hash{$key}) {
- #### Deal with multiple identical ChangeLogTags.
- push @{$changelog_hash{$key}}, @entry;
- } else {
- $changelog_hash{$key} = [ @entry ];
- }
- }
- @entry = ();
- chomp;
- $key = $_;
- }
- else {
- push @entry, $_;
- }
- }
-
- close CHANGELOG;
- }
-}
-
-
-####
-#### Find the ChangeLog(s) associated with the file.
-####
-sub find_changelogs () {
- my $file = shift;
-
- if ($#changelogs >= 0) {
- @changelogs;
- } else {
- my $pwd = &basename ($file) || '.';
-
- #### The [C] ensures that the glob will actually look for the file.
- while (! (@changelogs =
- glob ("$pwd/[C]hangeLog " .
- "$pwd/[C]hangeLog-97 " . #### ACE_wrappers/TAO
- "$pwd/[C]hangeLog-97b " . #### ACE_wrappers
- "$pwd/ChangeLog-9[89]* " .
- "$pwd/ChangeLog-0*"))) {
- if ($pwd !~ m%^${dir_sep}%) {
- #### We're starting with a relative path. Get the
- #### absolute path.
- chomp ($pwd = `pwd`);
- $pwd .= "/$file";
- }
-
- $pwd = &basename ($pwd);
-
- if ($pwd eq '') {
- warn "$0: ChangeLog NOT FOUND for '$file'!!!!\n";
- return ();
- }
- }
- }
-}
-
-
-####
-#### Return directory component of a filename, without trailing $dir_sep.
-#### Return '' if there is no directory component.
-####
-sub basename () {
- my $filename = shift;
-
- $filename =~ s%[${dir_sep}][^${dir_sep}]+$%% ? $filename : '';
-}