From c39c09f1cbea5b19fea3b49adbe9b6dc311a1057 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Fri, 5 Sep 2014 12:03:46 -0400 Subject: [PATCH] enc_htmlbrtab: convert tabs too (not just spaces) --- encode.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/encode.php b/encode.php index e79dae2..f5c1e24 100644 --- a/encode.php +++ b/encode.php @@ -69,13 +69,13 @@ function enc_htmlbr($str) { } # Encode for output in html. Preserves newlines and indentation by converting -# newlines to
and spaces at the begining of lines to    +# newlines to
and spaces/tabs at the begining of lines to  s # # Example:

~foo htmlbrtab~

function enc_htmlbrtab($str) { $str = enc_htmlbr($str); - $space_to_nbsp = create_function('$matches', 'return str_repeat(\' \', strlen($matches[0]) * 2);'); - $str = preg_replace_callback("|^ *|m", $space_to_nbsp, $str); + $whitespace_to_nbsp = create_function('$matches', '$count = 0; $chars = str_split($matches[0]); foreach ($chars as $c) { if ($c == " ") { $count += 2; } else if ($c == "\t") { $count += 8; } } return str_repeat(" ", $count);'); + $str = preg_replace_callback("|^[ \t]+|m", $whitespace_to_nbsp, $str); return $str; } -- 1.7.10.4