Update of /usr/cvs/Public/pygresql/module
In directory druid.net:/tmp/cvs-serv27675/module

Modified Files:
        pgmodule.c 
Log Message:
Allow set_decimal(None) instead of set_decimal(float).
To see the diffs for this commit:
   
http://www.druid.net/pygresql/viewcvs.cgi/cvs/pygresql/module/pgmodule.c.diff?r1=1.78&r2=1.79

Index: pgmodule.c
===================================================================
RCS file: /usr/cvs/Public/pygresql/module/pgmodule.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -r1.78 -r1.79
--- pgmodule.c  16 Sep 2008 22:29:48 -0000      1.78
+++ pgmodule.c  17 Sep 2008 09:00:08 -0000      1.79
@@ -1,5 +1,5 @@
 /*
- * $Id: pgmodule.c,v 1.78 2008/09/16 22:29:48 cito Exp $
+ * $Id: pgmodule.c,v 1.79 2008/09/17 09:00:08 cito Exp $
  * PyGres, version 2.2 A Python interface for PostgreSQL database. Written by
  * D'Arcy J.M. Cain, ([EMAIL PROTECTED]).  Based heavily on code written by
  * Pascal Andre, [EMAIL PROTECTED] Copyright (c) 1995, Pascal Andre
@@ -3077,25 +3077,30 @@
 
 /* set decimal */
 static char set_decimal__doc__[] =
-"set_decimal(class) -- set a decimal type to be used for numeric values.";
+"set_decimal(cls) -- set a decimal type to be used for numeric values.";
 
 static PyObject *
-set_decimal(PyObject *dummy, PyObject *args)
+set_decimal(PyObject * self, PyObject * args)
 {
-       PyObject *result = NULL;
-       PyObject *temp;
+       PyObject *ret = NULL;
+       PyObject *cls;
 
-       if (PyArg_ParseTuple(args, "O:set_decimal", &temp))
+       if (PyArg_ParseTuple(args, "O", &cls))
        {
-               if (!PyCallable_Check(temp))
+               if (cls == Py_None)
                {
-                       PyErr_SetString(PyExc_TypeError, "parameter must be 
callable");
-                       return NULL;
+                       Py_XDECREF(decimal); decimal = NULL;
+                       Py_INCREF(Py_None); ret = Py_None;
+               }
+               else if (PyCallable_Check(cls))
+               {
+                       Py_XINCREF(cls); Py_XDECREF(decimal); decimal = cls;
+                       Py_INCREF(Py_None); ret = Py_None;
                }
-               Py_XINCREF(temp); Py_XDECREF(decimal); decimal = temp;
-               Py_INCREF(Py_None); result = Py_None;
+               else
+                       PyErr_SetString(PyExc_TypeError, "decimal type must be 
None or callable");
        }
-       return result;
+       return ret;
 }
 
 #ifdef DEFAULT_VARS

_______________________________________________
PyGreSQL mailing list
[email protected]
http://mailman.vex.net/mailman/listinfo/pygresql

Reply via email to