Skip to content

Commit 5de0455

Browse files
drgrice1Alex-Jordan
authored andcommitted
make the regex pattern for email subject lines better
1 parent 655833f commit 5de0455

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

lib/WeBWorK/Utils.pm

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -400,11 +400,9 @@ sub formatEmailSubject ($formatString, $courseID, $userID, $setID, $problemID, $
400400
if (@braces) {
401401
# for each brace pair, do substitutions, but leave %c etc when variable is empty
402402
my %braces = map { $_ => $_ =~ s/%([$chars])/$subject_map{$1} ne '' ? $subject_map{$1} : "%$1"/egr } @braces;
403-
# if there is an instance of %c, etc, nullify the whole thing
404-
%braces = map { $_ => $braces{$_} =~ /%[$chars]/ ? '' : $braces{$_} } keys %braces;
405-
# remove outer braces
406-
%braces = map { $_ => $braces{$_} =~ s/\{(.*)\}/$1/egr } keys %braces;
407-
my $regex = join('|', keys %braces);
403+
# If there is an instance of %c, etc, nullify the whole thing. Remove outer braces.
404+
%braces = map { $_ => $braces{$_} =~ /%[$chars]/ ? '' : substr($braces{$_}, 1, -1) } keys %braces;
405+
my $regex = join('|', map {"\Q$_\E"} keys %braces);
408406
$regex = qr/$regex/;
409407
$subject =~ s/($regex)/$braces{$1}/g;
410408
}

0 commit comments

Comments
 (0)