From 7a192c47323c7dc6910cb43e783c60158cb5849b Mon Sep 17 00:00:00 2001 From: Mercier Pierre-Olivier Date: Mon, 30 Sep 2013 13:08:33 +0200 Subject: [PATCH] Globbing in grading is not critical --- ACU/Grading.pm | 20 +++++++++++++------- ACU/Tinyglob.pm | 5 +++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ACU/Grading.pm b/ACU/Grading.pm index dd1d64f..6eae26c 100644 --- a/ACU/Grading.pm +++ b/ACU/Grading.pm @@ -344,14 +344,20 @@ sub compute ($$$;$$$) if (defined $ref) { - my $glob = Tinyglob::tinyglob($ref); - if ($glob ne $ref) - { - my $value = 0; - for my $r (grep { /^$glob$/ } keys %$ids) { - $value += $ids->{ $r }; + eval { + my $glob = Tinyglob::tinyglob($ref); + if ($glob ne $ref) + { + my $value = 0; + for my $r (grep { /^$glob$/ } keys %$ids) { + $value += $ids->{ $r }; + } + $ids->{ $ref } = $value; } - $ids->{ $ref } = $value; + }; + if ($@) { + my $err = $@; + log ERROR, $@; } } diff --git a/ACU/Tinyglob.pm b/ACU/Tinyglob.pm index 3c19a5a..6fc9ed8 100644 --- a/ACU/Tinyglob.pm +++ b/ACU/Tinyglob.pm @@ -12,7 +12,8 @@ our @EXPORT = qw(tinyglob); sub tinyglob { - my @str = split("", quotemeta(shift)); + my $orig = shift; + my @str = split("", quotemeta($orig)); my $res = ""; my $metaescape = 0; @@ -38,7 +39,7 @@ sub tinyglob $res .= '.*'; } else { - croak "Invalid number of \\"; + croak "Invalid number of \\ in '$orig'"; } } else {