private function boxify($text, $chars) { /*{{{*/ $chars = explode(",", $chars); $num_chars = count($chars); if ($num_chars == 2) { $n = $s = $chars[0]; $e = $w = $nw = $ne = $se = $sw = $chars[1]; } else { if ($num_chars == 3) { $nw = $ne = $se = $sw = $chars[0]; $n = $s = $chars[1]; $e = $w = $chars[2]; } else { throw new \InvalidArgumentException("Invalid format for box characters"); } } $width = Text\MultiByte::text_width($text, $this->charset); $output = $nw . str_repeat($n, $width + 2) . $ne . "\n"; foreach (explode("\n", $text) as $line) { $output .= $w . ' ' . Text\MultiByte::str_pad($line, $width) . ' ' . $e . "\n"; } $output .= $sw . str_repeat($s, $width + 2) . $se . "\n"; return $output; }