The pragmas have not been as effective as we might have liked, since
they only work with templates and can't tell you where in your code you
need to make changes, and they seemed to have been more annoying to
programmers than helpful, so we're going to discontinue them. We'll
leave them in for stuff that's actually been deprecated until deprecated
has been improved enough to take a message, but we'll leave "scheduled
for deprecation" messages to the documentation and changelog.
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.