From b47ddefe02945f8746c642219450245cf83ed130 Mon Sep 17 00:00:00 2001 From: Marcus Griep Date: Fri, 8 Aug 2008 01:41:56 -0700 Subject: Fix multi-glob assertion in git-svn Fixes bad regex match check for multiple globs (would always return one glob regardless of actual number). [ew: fixed a bashism in the test and some minor line-wrapping] Signed-off-by: Marcus Griep Acked-by: Eric Wong Signed-off-by: Junio C Hamano --- git-svn.perl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'git-svn.perl') diff --git a/git-svn.perl b/git-svn.perl index 06a82c80ce..503a7c900a 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -4915,14 +4915,15 @@ sub new { my ($class, $glob) = @_; my $re = $glob; $re =~ s!/+$!!g; # no need for trailing slashes - my $nr = ($re =~ s!^(.*)\*(.*)$!\(\[^/\]+\)!g); - my ($left, $right) = ($1, $2); + my $nr = $re =~ tr/*/*/; if ($nr > 1) { die "Only one '*' wildcard expansion ", "is supported (got $nr): '$glob'\n"; } elsif ($nr == 0) { die "One '*' is needed for glob: '$glob'\n"; } + $re =~ s!^(.*)\*(.*)$!\(\[^/\]+\)!g; + my ($left, $right) = ($1, $2); $re = quotemeta($left) . $re . quotemeta($right); if (length $left && !($left =~ s!/+$!!g)) { die "Missing trailing '/' on left side of: '$glob' ($left)\n"; -- cgit v1.2.1