Commit a2d546e3 authored by drumm's avatar drumm

#82524 by Heine and AjK. Remove use of array_walk(), which was causing segfaults in this case.

parent 160b2e55
......@@ -633,31 +633,25 @@ function t($string, $args = 0) {
}
else {
// Transform arguments before inserting them
array_walk($args, '_t');
foreach($args as $key => $value) {
switch ($key[0]) {
// Escaped only
case '@':
$args[$key] = check_plain($value);
break;
// Escaped and placeholder
case '%':
default:
$args[$key] = theme('placeholder', $value);
break;
// Pass-through
case '!':
}
}
return strtr($string, $args);
}
}
/**
* Helper function: apply the appropriate transformation to st() and t()
* placeholders.
*/
function _t(&$value, $key) {
switch ($key[0]) {
// Escaped only
case '@':
$value = check_plain($value);
return;
// Escaped and placeholder
case '%':
default:
$value = theme('placeholder', $value);
return;
// Pass-through
case '!':
}
}
/**
* @defgroup validation Input validation
* @{
......
......@@ -579,30 +579,24 @@ function st($string, $args = array()) {
require_once './includes/theme.inc';
$GLOBALS['theme'] = 'theme';
// Transform arguments before inserting them
array_walk($args, '_st');
return strtr((!empty($locale_strings[$string]) ? $locale_strings[$string] : $string), $args);
}
/**
* Helper function: apply the appropriate transformation to st() and t() placeholders.
*/
function _st(&$value, $key) {
switch ($key[0]) {
// Escaped only
case '@':
$value = check_plain($value);
return;
// Escaped and placeholder
case '%':
default:
$value = '<em>'. check_plain($value) .'</em>';
return;
// Pass-through
case '!':
foreach($args as $key => $value) {
switch ($key[0]) {
// Escaped only
case '@':
$args[$key] = check_plain($value);
break;
// Escaped and placeholder
case '%':
default:
$args[$key] = '<em>'. check_plain($value) .'</em>';
break;
// Pass-through
case '!':
}
}
return strtr((!empty($locale_strings[$string]) ? $locale_strings[$string] : $string), $args);
}
/**
* Check a profile's requirements.
*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment