Author: guido.van.rossum
Date: Wed Oct 10 20:53:36 2007
New Revision: 58410

Modified:
   python/branches/py3k/Python/errors.c
Log:
Minor cleanup of the comment for PyErr_ProgramText() and a tweak to the code
to guarantee the claim that it doesn't set an exception.


Modified: python/branches/py3k/Python/errors.c
==============================================================================
--- python/branches/py3k/Python/errors.c        (original)
+++ python/branches/py3k/Python/errors.c        Wed Oct 10 20:53:36 2007
@@ -800,13 +800,11 @@
        PyErr_Restore(exc, v, tb);
 }
 
-/* com_fetch_program_text will attempt to load the line of text that
-   the exception refers to.  If it fails, it will return NULL but will
-   not set an exception.
+/* Attempt to load the line of text that the exception refers to.  If it
+   fails, it will return NULL but will not set an exception.
 
    XXX The functionality of this function is quite similar to the
-   functionality in tb_displayline() in traceback.c.
-*/
+   functionality in tb_displayline() in traceback.c. */
 
 PyObject *
 PyErr_ProgramText(const char *filename, int lineno)
@@ -824,7 +822,8 @@
                char *pLastChar = &linebuf[sizeof(linebuf) - 2];
                do {
                        *pLastChar = '\0';
-                       if (Py_UniversalNewlineFgets(linebuf, sizeof linebuf, 
fp, NULL) == NULL)
+                       if (Py_UniversalNewlineFgets(linebuf, sizeof linebuf,
+                                                    fp, NULL) == NULL)
                                break;
                        /* fgets read *something*; if it didn't get as
                           far as pLastChar, it must have found a newline
@@ -836,9 +835,13 @@
        fclose(fp);
        if (i == lineno) {
                char *p = linebuf;
+                PyObject *res;
                while (*p == ' ' || *p == '\t' || *p == '\014')
                        p++;
-               return PyUnicode_FromString(p);
+               res = PyUnicode_FromString(p);
+                if (res == NULL)
+                       PyErr_Clear();
+               return res;
        }
        return NULL;
 }
_______________________________________________
Python-3000-checkins mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000-checkins

Reply via email to