@@ -2039,65 +2039,6 @@ sub gc_directory {
2039
2039
}
2040
2040
}
2041
2041
2042
-
2043
- package Git::SVN::GlobSpec ;
2044
- use strict;
2045
- use warnings;
2046
-
2047
- sub new {
2048
- my ($class , $glob , $pattern_ok ) = @_ ;
2049
- my $re = $glob ;
2050
- $re =~ s ! /+$!! g ; # no need for trailing slashes
2051
- my (@left , @right , @patterns );
2052
- my $state = " left" ;
2053
- my $die_msg = " Only one set of wildcard directories " .
2054
- " (e.g. '*' or '*/*/*') is supported: '$glob '\n " ;
2055
- for my $part (split (m | /| , $glob )) {
2056
- if ($part =~ / \* / && $part ne " *" ) {
2057
- die " Invalid pattern in '$glob ': $part \n " ;
2058
- } elsif ($pattern_ok && $part =~ / [{}]/ &&
2059
- $part !~ / ^\{ [^{}]+\} / ) {
2060
- die " Invalid pattern in '$glob ': $part \n " ;
2061
- }
2062
- if ($part eq " *" ) {
2063
- die $die_msg if $state eq " right" ;
2064
- $state = " pattern" ;
2065
- push (@patterns , " [^/]*" );
2066
- } elsif ($pattern_ok && $part =~ / ^\{ (.*)\} $ / ) {
2067
- die $die_msg if $state eq " right" ;
2068
- $state = " pattern" ;
2069
- my $p = quotemeta ($1 );
2070
- $p =~ s /\\ ,/ |/ g ;
2071
- push (@patterns , " (?:$p )" );
2072
- } else {
2073
- if ($state eq " left" ) {
2074
- push (@left , $part );
2075
- } else {
2076
- push (@right , $part );
2077
- $state = " right" ;
2078
- }
2079
- }
2080
- }
2081
- my $depth = @patterns ;
2082
- if ($depth == 0) {
2083
- die " One '*' is needed in glob: '$glob '\n " ;
2084
- }
2085
- my $left = join (' /' , @left );
2086
- my $right = join (' /' , @right );
2087
- $re = join (' /' , @patterns );
2088
- $re = join (' \/' ,
2089
- grep (length , quotemeta ($left ), " ($re )" , quotemeta ($right )));
2090
- my $left_re = qr / ^\/\Q $left \E (\/ |$ )/ ;
2091
- bless { left => $left , right => $right , left_regex => $left_re ,
2092
- regex => qr /$re / , glob => $glob , depth => $depth }, $class ;
2093
- }
2094
-
2095
- sub full_path {
2096
- my ($self , $path ) = @_ ;
2097
- return (length $self -> {left } ? " $self ->{left}/" : ' ' ) .
2098
- $path . (length $self -> {right } ? " /$self ->{right}" : ' ' );
2099
- }
2100
-
2101
2042
__END__
2102
2043
2103
2044
Data structures:
0 commit comments