mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-03 08:30:09 +00:00
Changes to support ChangeLog.10+.
(main): Tidy up usage string. Fix "Use of uninitialized value" warning. Set version to 0.2. Parse the directory listing to get any ChangeLog.n file, not just 1..9. (header_match_p, entry_match_p, print_log, parse_changelog): Remove Perl prototypes (their purpose is to help the parser, which isn't needed here, not declare arguments). (parse_changelog): Make --reverse faster on big batches by not modifying the entries list.
This commit is contained in:
parent
2c8155f784
commit
bdfd0369ce
@ -1,3 +1,15 @@
|
||||
2004-03-09 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* grep-changelog: Changes to support ChangeLog.10+.
|
||||
(main): Tidy up usage string. Fix "Use of uninitialized value"
|
||||
warning. Set version to 0.2. Parse the directory listing to get
|
||||
any ChangeLog.n file, not just 1..9.
|
||||
(header_match_p, entry_match_p, print_log, parse_changelog):
|
||||
Remove Perl prototypes (their purpose is to help the parser, which
|
||||
isn't needed here, not declare arguments).
|
||||
(parse_changelog): Make --reverse faster on big batches by not
|
||||
modifying the entries list.
|
||||
|
||||
2004-03-01 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* makefile.w32-in (obj): Add fringe.c.
|
||||
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
#
|
||||
@ -56,34 +56,36 @@ $result = 0 if $to_date && $to_date !~ /^\d\d\d\d-\d\d-\d\d$/;
|
||||
|
||||
if ($result == 0 || $help) {
|
||||
print <<USAGE;
|
||||
Usage: $0 [options] [CHANGELOG...]
|
||||
Print entries in ChangeLogs matching various criteria. Valid options
|
||||
are
|
||||
|
||||
--author=AUTHOR match entries whose author line matches
|
||||
Usage: $0 [options] [CHANGELOG...]
|
||||
|
||||
Print entries in ChangeLogs matching various criteria.
|
||||
Valid options are:
|
||||
|
||||
--author=AUTHOR Match entries whose author line matches
|
||||
regular expression AUTHOR
|
||||
--text=TEXT match entries whose text matches regular
|
||||
expression TEXT.
|
||||
--exclude=TEXT exclude entries matching TEXT.
|
||||
--from-date=YYYY-MM-DD match entries not older than given date
|
||||
--to-date=YYYY-MM-DD match entries not younger than given date
|
||||
--rcs-log format output suitable for RCS log entries.
|
||||
--with-date print short date line in RCS log
|
||||
--reverse show entries in reverse (chronological) order
|
||||
--version print version info
|
||||
--help print this help
|
||||
--text=TEXT Match entries whose text matches regular
|
||||
expression TEXT
|
||||
--exclude=TEXT Exclude entries matching TEXT
|
||||
--from-date=YYYY-MM-DD Match entries not older than given date
|
||||
--to-date=YYYY-MM-DD Match entries not younger than given date
|
||||
--rcs-log Format output suitable for RCS log entries
|
||||
--with-date Print short date line in RCS log
|
||||
--reverse Show entries in reverse (chronological) order
|
||||
--version Print version info
|
||||
--help Print this help
|
||||
|
||||
If no CHANGELOG is specified scan the files "ChangeLog" and
|
||||
"ChangeLog.[9-1]" in the current directory. Old-style dates in ChangeLogs
|
||||
"ChangeLog.1+" in the current directory. Old-style dates in ChangeLogs
|
||||
are not recognized.
|
||||
USAGE
|
||||
exit $help ? 0 : 1;
|
||||
exit !$help;
|
||||
}
|
||||
|
||||
# Print version info and exit if `--version' was specified.
|
||||
|
||||
if ($version) {
|
||||
print "0.1\n";
|
||||
print "0.2\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
@ -92,7 +94,7 @@ if ($version) {
|
||||
# options specified, i.e. it matches $author, and its date is in
|
||||
# the range $from_date <= date <= $to_date.
|
||||
|
||||
sub header_match_p ($) {
|
||||
sub header_match_p {
|
||||
my $header = shift;
|
||||
|
||||
return 0 unless $header;
|
||||
@ -122,7 +124,7 @@ sub header_match_p ($) {
|
||||
# command line, i.e. it matches $regexp, and it doesn't match
|
||||
# $exclude.
|
||||
|
||||
sub entry_match_p ($) {
|
||||
sub entry_match_p {
|
||||
my $entry = shift;
|
||||
|
||||
return 0 unless $entry;
|
||||
@ -143,7 +145,7 @@ sub entry_match_p ($) {
|
||||
# lines are not printed, and leading spaces and file names are removed
|
||||
# from ChangeLog entries.
|
||||
|
||||
sub print_log ($$) {
|
||||
sub print_log {
|
||||
my ($header, $entry) = @_;
|
||||
my $output = '';
|
||||
|
||||
@ -172,7 +174,7 @@ sub print_log ($$) {
|
||||
|
||||
# Scan LOG for matching entries, and print them to standard output.
|
||||
|
||||
sub parse_changelog ($) {
|
||||
sub parse_changelog {
|
||||
my $log = shift;
|
||||
my $entry = undef;
|
||||
my $header = undef;
|
||||
@ -219,8 +221,8 @@ sub parse_changelog ($) {
|
||||
close IN;
|
||||
|
||||
if ($reverse) {
|
||||
while (defined (my $entry = pop @entries)) {
|
||||
print $entry;
|
||||
for (my $entry = @entries; $entry; $entry--) {
|
||||
print $entries[$entry-1];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -230,9 +232,19 @@ sub parse_changelog ($) {
|
||||
|
||||
# If files were specified on the command line, parse those files in the
|
||||
# order supplied by the user; otherwise parse default files ChangeLog and
|
||||
# ChangeLog.9...ChangeLog.1 according to $reverse.
|
||||
# ChangeLog.1+ according to $reverse.
|
||||
unless (@ARGV > 0) {
|
||||
@ARGV = ("ChangeLog", map {"ChangeLog.$_"} reverse 1..9);
|
||||
@ARGV = ("ChangeLog");
|
||||
|
||||
push @ARGV,
|
||||
map {"ChangeLog.$_"}
|
||||
sort {$b <=> $a}
|
||||
map {/\.(\d+)$/; $1}
|
||||
do {
|
||||
opendir D, '.';
|
||||
grep /^ChangeLog\.\d+$/, readdir D;
|
||||
};
|
||||
|
||||
@ARGV = reverse @ARGV if $reverse;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user