update to new C roles and directives
diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst
index 82cf912..62bb504 100644
--- a/Doc/library/codecs.rst
+++ b/Doc/library/codecs.rst
@@ -759,9 +759,9 @@
 ---------------------
 
 Unicode strings are stored internally as sequences of codepoints (to be precise
-as :ctype:`Py_UNICODE` arrays). Depending on the way Python is compiled (either
+as :c:type:`Py_UNICODE` arrays). Depending on the way Python is compiled (either
 via ``--enable-unicode=ucs2`` or ``--enable-unicode=ucs4``, with the
-former being the default) :ctype:`Py_UNICODE` is either a 16-bit or 32-bit data
+former being the default) :c:type:`Py_UNICODE` is either a 16-bit or 32-bit data
 type. Once a Unicode object is used outside of CPU and memory, CPU endianness
 and how these arrays are stored as bytes become an issue.  Transforming a
 unicode object into a sequence of bytes is called encoding and recreating the