update to new C roles and directives
diff --git a/Doc/c-api/slice.rst b/Doc/c-api/slice.rst
index 14c1d49..f74230a 100644
--- a/Doc/c-api/slice.rst
+++ b/Doc/c-api/slice.rst
@@ -6,7 +6,7 @@
 -------------
 
 
-.. cvar:: PyTypeObject PySlice_Type
+.. c:var:: PyTypeObject PySlice_Type
 
    .. index:: single: SliceType (in module types)
 
@@ -14,12 +14,12 @@
    ``types.SliceType``.
 
 
-.. cfunction:: int PySlice_Check(PyObject *ob)
+.. c:function:: int PySlice_Check(PyObject *ob)
 
    Return true if *ob* is a slice object; *ob* must not be *NULL*.
 
 
-.. cfunction:: PyObject* PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
+.. c:function:: PyObject* PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
 
    Return a new slice object with the given values.  The *start*, *stop*, and
    *step* parameters are used as the values of the slice object attributes of
@@ -28,7 +28,7 @@
    the new object could not be allocated.
 
 
-.. cfunction:: int PySlice_GetIndices(PySliceObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)
+.. c:function:: int PySlice_GetIndices(PySliceObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)
 
    Retrieve the start, stop and step indices from the slice object *slice*,
    assuming a sequence of length *length*. Treats indices greater than
@@ -40,18 +40,18 @@
 
    You probably do not want to use this function.  If you want to use slice
    objects in versions of Python prior to 2.3, you would probably do well to
-   incorporate the source of :cfunc:`PySlice_GetIndicesEx`, suitably renamed,
+   incorporate the source of :c:func:`PySlice_GetIndicesEx`, suitably renamed,
    in the source of your extension.
 
    .. versionchanged:: 2.5
-      This function used an :ctype:`int` type for *length* and an
-      :ctype:`int *` type for *start*, *stop*, and *step*. This might require
+      This function used an :c:type:`int` type for *length* and an
+      :c:type:`int *` type for *start*, *stop*, and *step*. This might require
       changes in your code for properly supporting 64-bit systems.
 
 
-.. cfunction:: int PySlice_GetIndicesEx(PySliceObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)
+.. c:function:: int PySlice_GetIndicesEx(PySliceObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)
 
-   Usable replacement for :cfunc:`PySlice_GetIndices`.  Retrieve the start,
+   Usable replacement for :c:func:`PySlice_GetIndices`.  Retrieve the start,
    stop, and step indices from the slice object *slice* assuming a sequence of
    length *length*, and store the length of the slice in *slicelength*.  Out
    of bounds indices are clipped in a manner consistent with the handling of
@@ -62,7 +62,7 @@
    .. versionadded:: 2.3
 
    .. versionchanged:: 2.5
-      This function used an :ctype:`int` type for *length* and an
-      :ctype:`int *` type for *start*, *stop*, *step*, and *slicelength*. This
+      This function used an :c:type:`int` type for *length* and an
+      :c:type:`int *` type for *start*, *stop*, *step*, and *slicelength*. This
       might require changes in your code for properly supporting 64-bit
       systems.