use full unicode mappings for upper/lower/title case (#12736)
Also broaden the category of characters that count as lowercase/uppercase.
diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst
index 37e08d6..a74a73d 100644
--- a/Doc/c-api/unicode.rst
+++ b/Doc/c-api/unicode.rst
@@ -318,16 +318,25 @@
Return the character *ch* converted to lower case.
+ .. deprecated:: 3.3
+ This function uses simple case mappings.
+
.. c:function:: Py_UNICODE Py_UNICODE_TOUPPER(Py_UNICODE ch)
Return the character *ch* converted to upper case.
+ .. deprecated:: 3.3
+ This function uses simple case mappings.
+
.. c:function:: Py_UNICODE Py_UNICODE_TOTITLE(Py_UNICODE ch)
Return the character *ch* converted to title case.
+ .. deprecated:: 3.3
+ This function uses simple case mappings.
+
.. c:function:: int Py_UNICODE_TODECIMAL(Py_UNICODE ch)
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 49222f5..bfeaab9 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1360,7 +1360,8 @@
.. method:: str.swapcase()
Return a copy of the string with uppercase characters converted to lowercase and
- vice versa.
+ vice versa. Note that it is not necessarily true that
+ ``s.swapcase().swapcase() == s``.
.. method:: str.title()