blair@tigris.org wrote:
>Author: blair
>Date: Tue, 02 Jul 2002 01:14:53 -0500
>New Revision: 2390
>
>Modified:
> trunk/tools/hook-scripts/commit-email.pl
>Log:
>* tools/hook-scripts/commit-email.pl:
>
[snip]
>+# Use the reference to the first project to populate.
>+my $current_project = $project_settings_list[0];
>+
>+while (@ARGV) {
>+ my $arg = shift @ARGV;
>+ if (my ($opt) = $arg =~ /^-([hlmrs])/) {
>+ unless (@ARGV) {
>+ die "$0: command line option `$arg' is missing a value.\n";
>+ }
>+ my $value = shift @ARGV;
>+ SWITCH: {
>+ $current_project->{hostname} = $value, last SWITCH if $opt eq 'h';
>+ $current_project->{log_file} = $value, last SWITCH if $opt eq 'l';
>+ $current_project->{reply_to} = $value, last SWITCH if $opt eq 'r';
>+ $current_project->{subject_prefix} = $value, last SWITCH if $opt eq 's';
>+
>+ # Here handle -match.
>+ unless ($opt eq 'm') {
>+ die "$0: internal error: should only handle -m here.\n";
>+ }
>+ $current_project = dclone($blank_settings);
>+ $current_project->{match_regex} = $value;
>+ push(@project_settings_list, $current_project);
>
I think there's a bug here. If $current_project->{email_addresses} is
empty, this'll push a useless entry on the @project_settings_list. And
this will always happen if you start with an -m option, because you
initialized the list with emtpy email_addresses.
I think the logic should be different: create a new list entry when
_any_ option is seen, if the current entries email_addresses list is not
empty:
if (my ($opt) = $arg =~ /^-([hlmrs])/) {
unless (@ARGV) {
die "$0: command line option `$arg' is missing a value.\n";
}
if (scalar $current_project->{email_addresses}) {
$current_project = dclone($blank_settings);
push(@project_settings_list, $current_project);
}
my $value = shift @ARGV;
SWITCH: {
$current_project->{hostname} = $value, last SWITCH if $opt eq 'h';
$current_project->{log_file} = $value, last SWITCH if $opt eq 'l';
$current_project->{reply_to} = $value, last SWITCH if $opt eq 'r';
$current_project->{subject_prefix} = $value, last SWITCH if $opt eq 's';
$current_project->{match_regex} = $value, last SWITCH if $opt eq 'm';
die "$0: internal error: don't know how to handle -$opt here.\n";
}
--
Brane Čibej <brane_at_xbc.nu> http://www.xbc.nu/brane/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Jul 2 11:46:54 2002