diff --git a/includes/unicode.inc b/includes/unicode.inc index f54ce1f1f50e8d10b32cf6b69edba0fed0c4a5bd..2912cde9776d2b662d3308c8fba776b137725b5a 100644 --- a/includes/unicode.inc +++ b/includes/unicode.inc @@ -335,7 +335,10 @@ function decode_entities($text, $exclude = array()) { } $newtable = array_diff($table, $exclude); - // Use a regexp to select all entities in one pass, to avoid decoding double-escaped entities twice. + // Use a regexp to select all entities in one pass, to avoid decoding + // double-escaped entities twice. The PREG_REPLACE_EVAL modifier 'e' is + // being used to allow for a callback (see + // http://php.net/manual/en/reference.pcre.pattern.modifiers). return preg_replace('/&(#x?)?([A-Za-z0-9]+);/e', '_decode_entities("$1", "$2", "$0", $newtable, $exclude)', $text); }