[Python-checkins] python/nondist/sandbox/csv _csv.c,1.27,1.28
andrewmcnamara@users.sourceforge.net
andrewmcnamara@users.sourceforge.net
Mon, 10 Feb 2003 02:41:11 -0800
Update of /cvsroot/python/python/nondist/sandbox/csv
In directory sc8-pr-cvs1:/tmp/cvs-serv20704
Modified Files:
_csv.c
Log Message:
Picked up a couple of module bugs while using test coverage tools, improved
test coverage slightly.
Index: _csv.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/csv/_csv.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** _csv.c 10 Feb 2003 09:41:28 -0000 1.27
--- _csv.c 10 Feb 2003 10:41:08 -0000 1.28
***************
*** 117,120 ****
--- 117,131 ----
}
+ static int
+ check_delattr(PyObject *v)
+ {
+ if (v == NULL) {
+ PyErr_SetString(PyExc_TypeError,
+ "Cannot delete attribute");
+ return -1;
+ }
+ return 0;
+ }
+
static PyObject *
get_string(PyObject *str)
***************
*** 127,135 ****
set_string(PyObject **str, PyObject *v)
{
! if (v == NULL) {
! PyErr_SetString(PyExc_AttributeError,
! "Cannot delete attribute");
! return -1;
! }
if (!PyString_Check(v) && !PyUnicode_Check(v)) {
PyErr_BadArgument();
--- 138,143 ----
set_string(PyObject **str, PyObject *v)
{
! if (check_delattr(v) < 0)
! return -1;
if (!PyString_Check(v) && !PyUnicode_Check(v)) {
PyErr_BadArgument();
***************
*** 156,164 ****
set_None_as_nullchar(char * addr, PyObject *v)
{
! if (v == NULL) {
! PyErr_SetString(PyExc_AttributeError,
! "Cannot delete attribute");
! return -1;
! }
if (v == Py_None)
*addr = '\0';
--- 164,169 ----
set_None_as_nullchar(char * addr, PyObject *v)
{
! if (check_delattr(v) < 0)
! return -1;
if (v == Py_None)
*addr = '\0';
***************
*** 208,211 ****
--- 213,218 ----
StyleDesc *qs = quote_styles;
+ if (check_delattr(v) < 0)
+ return -1;
if (!PyInt_Check(v)) {
PyErr_BadArgument();
***************
*** 1182,1186 ****
if (!PyArg_ParseTuple(args, "OO", &name_obj, &dialect_obj))
return NULL;
! if (!PyString_Check(name_obj) && PyUnicode_Check(name_obj)) {
PyErr_SetString(PyExc_TypeError,
"dialect name must be a string or unicode");
--- 1189,1193 ----
if (!PyArg_ParseTuple(args, "OO", &name_obj, &dialect_obj))
return NULL;
! if (!PyString_Check(name_obj) && !PyUnicode_Check(name_obj)) {
PyErr_SetString(PyExc_TypeError,
"dialect name must be a string or unicode");