isWhite, isLower, isUpper, toLower, and toUpper now have Ascii in their
name, which matches what std.unit does with its versions of those
functions. Hopefully, it should also reduce bugs due to using the wrong
function between the ASCII and unicode versions by making the difference
more obvious.
There was no consenus in the newsgroup about what to do about renaming
toStringz to be properly camelcased. It was pretty much divided between
renaming it to toCString and leaving it exactly as-is. No one wanted it
to be toStringZ. So, given the lack of consensus, I'm just going to
leave it as toStringz.
capwords is now scheduled for deprecation with no replacement as opposed
to scheduled for deprecation with capWords replacing it. Discussion on
the newgroup made it clear that capitalize does get some use, but no one
on the list seems to use capwords (going by recent questions about it
and when std.string was discussed back in January). So, I'm setting it
on the path to removal as opposed to renaming. capitalize gives the key
building block necessary for creating such a function yourself, so the
loss of functionality is minimal.
I also replaced the std.string constants which have the same name as the
their std.ctype counterparts so that code doesn't break which imports
both std.string and std.ctype.
indexOf and lastIndexOf should not work properly with unicode for all
string types (unlike before). As part of that, I also ended up fixing a
bug in std.array.back for strings (wstrings in particular were broken).
I also improved various, related unit tests.
rjustify and ljustify were renamed, and all of the justification
functions were updated to take on the filling ability of zfill, so
zfill is now scheduled for deprecation.
1. startsWith and endsWith now have similar implementations.
2. They work with strings of different character sizes, whereas before
they treated strings as arrays regardless of whether they had the same
character size or not.
3. endsWith now actually works when mixing ranges and elements in the
endsWith portion like the documentation claims it does.