--- lib/Biber/Input/file/bibtex.pm.orig 2015-05-14 15:06:25 UTC +++ lib/Biber/Input/file/bibtex.pm @@ -759,7 +759,7 @@ sub _name { # Check for malformed names in names which aren't completely escaped # Too many commas - unless ($name =~ m/\A{\X+}\z/xms) { # Ignore these tests for escaped names + unless ($name =~ m/\A\{\X+\}\z/xms) { # Ignore these tests for escaped names my @commas = $name =~ m/,/g; if ($#commas > 1) { biber_warn("Name \"$name\" has too many commas: skipping name", $bibentry); --- lib/Biber/LaTeX/Recode.pm.orig 2015-05-14 15:06:25 UTC +++ lib/Biber/LaTeX/Recode.pm @@ -236,7 +236,7 @@ sub latex_decode { $text =~ s/\\textsuperscript{\\($re)}/$map->{$1}/ge; } elsif ($type eq 'dings') { - $text =~ s/\\ding{([2-9AF][0-9A-F])}/$map->{$1}/ge; + $text =~ s/\\ding\{([2-9AF][0-9A-F])\}/$map->{$1}/ge; } elsif ($type eq 'letters') { $text =~ s/\\($re)(?:\{\}|\s+|\b)/$map->{$1}/ge; @@ -293,7 +293,7 @@ sub latex_decode { # Workaround perl's lack of variable-width negative look-behind - # Reverse string (and therefore some of the Re) and use variable width negative look-ahead $text = reverse $text; - $text =~ s/}(\pM+\pL){(?!\pL+\\)/$1/g; + $text =~ s/\}(\pM+\pL)\{(?!\pL+\\)/$1/g; $text = reverse $text; $logger->trace("String in latex_decode() now -> '$text'");