Documentation for PyObject_GetIter(), contributed by Greg Chapman
(with only minor changes by Fred).
This closes SF bug #498607.
diff --git a/Doc/api/abstract.tex b/Doc/api/abstract.tex
index af49611..4d92268 100644
--- a/Doc/api/abstract.tex
+++ b/Doc/api/abstract.tex
@@ -307,6 +307,14 @@
   return false.
 \end{cfuncdesc}
 
+\begin{cfuncdesc}{PyObject*}{PyObject_GetIter}{PyObject *o}
+  This is equivalent to the Python expression \samp{iter(\var{o})}.
+  It returns a new iterator for the object argument, or the object 
+  itself if the object is already an iterator.  Raises
+  \exception{TypeError} and returns \NULL{} if the object cannot be
+  iterated.
+\end{cfuncdesc}
+
 
 \section{Number Protocol \label{number}}
 
@@ -855,17 +863,24 @@
 look something like this:
 
 \begin{verbatim}
-PyObject *iterator = ...;
+PyObject *iterator = PyObject_GetIter(obj);
 PyObject *item;
 
-while (item = PyIter_Next(iter)) {
+if (iterator == NULL) {
+    /* propagate error */
+}
+
+while (item = PyIter_Next(iterator)) {
     /* do something with item */
     ...
     /* release reference when done */
     Py_DECREF(item);
 }
+
+Py_DECREF(iterator);
+
 if (PyErr_Occurred()) {
-    /* propogate error */
+    /* propagate error */
 }
 else {
     /* continue doing useful work */