update to new C roles and directives
diff --git a/Doc/c-api/weakref.rst b/Doc/c-api/weakref.rst
index 226ec38..243cfd1 100644
--- a/Doc/c-api/weakref.rst
+++ b/Doc/c-api/weakref.rst
@@ -11,28 +11,28 @@
 as much as it can.
 
 
-.. cfunction:: int PyWeakref_Check(ob)
+.. c:function:: int PyWeakref_Check(ob)
 
    Return true if *ob* is either a reference or proxy object.
 
    .. versionadded:: 2.2
 
 
-.. cfunction:: int PyWeakref_CheckRef(ob)
+.. c:function:: int PyWeakref_CheckRef(ob)
 
    Return true if *ob* is a reference object.
 
    .. versionadded:: 2.2
 
 
-.. cfunction:: int PyWeakref_CheckProxy(ob)
+.. c:function:: int PyWeakref_CheckProxy(ob)
 
    Return true if *ob* is a proxy object.
 
    .. versionadded:: 2.2
 
 
-.. cfunction:: PyObject* PyWeakref_NewRef(PyObject *ob, PyObject *callback)
+.. c:function:: PyObject* PyWeakref_NewRef(PyObject *ob, PyObject *callback)
 
    Return a weak reference object for the object *ob*.  This will always return
    a new reference, but is not guaranteed to create a new object; an existing
@@ -46,7 +46,7 @@
    .. versionadded:: 2.2
 
 
-.. cfunction:: PyObject* PyWeakref_NewProxy(PyObject *ob, PyObject *callback)
+.. c:function:: PyObject* PyWeakref_NewProxy(PyObject *ob, PyObject *callback)
 
    Return a weak reference proxy object for the object *ob*.  This will always
    return a new reference, but is not guaranteed to create a new object; an
@@ -60,7 +60,7 @@
    .. versionadded:: 2.2
 
 
-.. cfunction:: PyObject* PyWeakref_GetObject(PyObject *ref)
+.. c:function:: PyObject* PyWeakref_GetObject(PyObject *ref)
 
    Return the referenced object from a weak reference, *ref*.  If the referent is
    no longer live, returns :const:`Py_None`.
@@ -70,14 +70,14 @@
    .. warning::
 
       This function returns a **borrowed reference** to the referenced object.
-      This means that you should always call :cfunc:`Py_INCREF` on the object
+      This means that you should always call :c:func:`Py_INCREF` on the object
       except if you know that it cannot be destroyed while you are still
       using it.
 
 
-.. cfunction:: PyObject* PyWeakref_GET_OBJECT(PyObject *ref)
+.. c:function:: PyObject* PyWeakref_GET_OBJECT(PyObject *ref)
 
-   Similar to :cfunc:`PyWeakref_GetObject`, but implemented as a macro that does no
+   Similar to :c:func:`PyWeakref_GetObject`, but implemented as a macro that does no
    error checking.
 
    .. versionadded:: 2.2