| File: | lib/CheckSpelling/CheckPattern.pm |
| Coverage: | 92.6% |
| line | stmt | bran | cond | sub | time | code |
|---|---|---|---|---|---|---|
| 1 | #! -*-perl-*- | |||||
| 2 | ||||||
| 3 | package CheckSpelling::CheckPattern; | |||||
| 4 | ||||||
| 5 | 2 2 2 | 112582 3 213 | use CheckSpelling::Util; | |||
| 6 | ||||||
| 7 | sub process_line { | |||||
| 8 | 3 | 673 | my ($line) = @_; | |||
| 9 | 3 | 4 | chomp $line; | |||
| 10 | 3 | 5 | return ($line, '') if $line =~ /^#/; | |||
| 11 | 3 | 5 | return ($line, '') unless $line =~ /./; | |||
| 12 | 3 3 | 3 22 | if (eval {qr/$line/}) { | |||
| 13 | 2 | 4 | return ($line, '') | |||
| 14 | } | |||||
| 15 | 1 | 3 | $@ =~ s/(.*?)\n.*/$1/m; | |||
| 16 | 1 | 0 | my $err = $@; | |||
| 17 | 1 | 1 | chomp $err; | |||
| 18 | 1 | 3 | $err =~ s{^(.*?) in regex; marked by <-- HERE in m/(.*) <-- HERE.*$}{$2}; | |||
| 19 | 1 | 0 | my $code = $1; | |||
| 20 | 1 | 2 | my $start = $+[2] - $-[2]; | |||
| 21 | 1 | 1 | my $end = $start + 1; | |||
| 22 | 1 | 1 | my $wrapped = CheckSpelling::Util::wrap_in_backticks($err); | |||
| 23 | 1 | 2 | return ("^\$\n", "$start ... $end, Warning - $code: $wrapped. (bad-regex)\n"); | |||
| 24 | } | |||||
| 25 | ||||||
| 26 | 1; | |||||