summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--psycopg/adapter_datetime.c11
2 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 6497f4e..8b99c35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-07-26 Federico Di Gregorio <fog@initd.org>
+
+ * psycopg/adapter_datetime.c (pydatetime_str): fixed error
+ in conversion of microseconds for intervals and better algo
+ (thanks to Mario Frasca.)
+
2006-06-18 Federico Di Gregorio <fog@initd.org>
* psycopg/adapter_binary.c: same as below.
diff --git a/psycopg/adapter_datetime.c b/psycopg/adapter_datetime.c
index 5079638..6409cef 100644
--- a/psycopg/adapter_datetime.c
+++ b/psycopg/adapter_datetime.c
@@ -64,15 +64,14 @@ pydatetime_str(pydatetimeObject *self)
PyDateTime_Delta *obj = (PyDateTime_Delta*)self->wrapped;
char buffer[8];
- int i, j, x;
+ int i;
int a = obj->microseconds;
- for (i=1000000, j=0; i > 0 ; i /= 10) {
- x = a/i;
- a -= x*i;
- buffer[j++] = '0'+x;
+ for (i=0; i < 6 ; i++) {
+ buffer[5-i] = '0' + (a % 10);
+ a /= 10;
}
- buffer[j] = '\0';
+ buffer[6] = '\0';
return PyString_FromFormat("'%d days %d.%s seconds'",
obj->days, obj->seconds, buffer);