Date: 2010-06-03 15:52:01 +0200 (Thu, 03 Jun 2010)
New Revision: 31082
[S32/Str] rethinking of tab characters
Also added a Str.indent(*) use case.
--- docs/Perl6/Spec/S32-setting-library/Str.pod 2010-06-03 13:35:39 UTC (rev
+++ docs/Perl6/Spec/S32-setting-library/Str.pod 2010-06-03 13:52:01 UTC (rev
@@ -594,9 +594,18 @@
If C<$steps> is negative, removes that many spaces instead. Should any line
contain too few leading spaces, only those are removed and a warning is issued.
-Only spaces are considered indentation; tabs or other Unicode whitespace
-characters are not considered.
+If C<$steps> is C<*>, removes exactly as many spaces as are needed to make at
+least one line have zero indentation.
+When removing indentation, the method will assume hard tabs to be
+C<< ($?TABSTOP // 8) >> spaces, and will treat other horizontal whitespace
+characters as synonymous to spaces. Characters not participating in the
+re-indenting will be left untouched, and those added in an indent call will
+be either (1) consistent with subsequent leading whitespace already on the
+line, if these are all the same, or (2) spaces. During an unindent, the
+trailing tab character in a chain of leading tab characters may explode
+into a number of space characters.