You are here

function coder_replace_multiple_vars in Coder 5

Same name and namespace in other branches
  1. 5.2 scripts/coder_format/coder_format.inc \coder_replace_multiple_vars()
  2. 6.2 scripts/coder_format/coder_format.inc \coder_replace_multiple_vars()
  3. 6 scripts/coder_format/coder_format.inc \coder_replace_multiple_vars()

Related topics

1 string reference to 'coder_replace_multiple_vars'
coder_postprocessor_multiple_vars in scripts/coder_format/coder_format.inc

File

scripts/coder_format/coder_format.inc, line 901

Code

function coder_replace_multiple_vars($matches) {

  // Retrieve all variable name = variable value pairs
  preg_match_all('/^(\\s*)(\\$.+?) (.?)= (.+?$)/m', $matches[0], $vars, PREG_SET_ORDER);

  // Determine the longest variable name
  $maxlength = 0;
  foreach ($vars as $var) {
    if (strlen($var[2]) > $maxlength) {
      $maxlength = strlen($var[2] . $var[3]);
    }
  }

  // Realign variable values at the longest variable names
  $return = '';
  $extra_spaces = 0;
  for ($c = 0, $cc = count($vars); $c < $cc; ++$c) {
    if ($maxlength <= 20) {
      $extra_spaces = $maxlength - strlen($vars[$c][2] . $vars[$c][3]);
    }
    $return .= $vars[$c][1] . $vars[$c][2];
    $return .= str_repeat(' ', $extra_spaces) . ' ' . $vars[$c][3] . '= ';
    $return .= $vars[$c][4];
    if ($c < $cc - 1) {

      // Append a line break, but not to the last variable assignment
      $return .= "\n";
    }
  }
  return $return;
}