[Python-checkins] python/dist/src/Modules datetimemodule.c,1.3,1.4
tim_one@users.sourceforge.net
tim_one@users.sourceforge.net
Wed, 18 Dec 2002 12:19:24 -0800
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv12799/python/Modules
Modified Files:
datetimemodule.c
Log Message:
delta_str(): Purged last uses of sprintf (in favor of PyOS_snprintf).
Index: datetimemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/datetimemodule.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** datetimemodule.c 17 Dec 2002 20:57:24 -0000 1.3
--- datetimemodule.c 18 Dec 2002 20:19:21 -0000 1.4
***************
*** 1806,1811 ****
int hours;
int minutes;
! char buf[500];
! int i = 0;
minutes = divmod(seconds, 60, &seconds);
--- 1806,1813 ----
int hours;
int minutes;
! char buf[100];
! char *pbuf = buf;
! size_t buflen = sizeof(buf);
! int n;
minutes = divmod(seconds, 60, &seconds);
***************
*** 1813,1830 ****
if (days) {
! i += sprintf(buf + i, "%d day%s, ", days,
! (days == 1 || days == -1) ? "" : "s");
! assert(i < sizeof(buf));
}
! i += sprintf(buf + i, "%d:%02d:%02d", hours, minutes, seconds);
! assert(i < sizeof(buf));
if (us) {
! i += sprintf(buf + i, ".%06d", us);
! assert(i < sizeof(buf));
}
! return PyString_FromStringAndSize(buf, i);
}
--- 1815,1845 ----
if (days) {
! n = PyOS_snprintf(pbuf, buflen, "%d day%s, ", days,
! (days == 1 || days == -1) ? "" : "s");
! if (n < 0 || (size_t)n >= buflen)
! goto Fail;
! pbuf += n;
! buflen -= (size_t)n;
}
! n = PyOS_snprintf(pbuf, buflen, "%d:%02d:%02d",
! hours, minutes, seconds);
! if (n < 0 || (size_t)n >= buflen)
! goto Fail;
! pbuf += n;
! buflen -= (size_t)n;
if (us) {
! n = PyOS_snprintf(pbuf, buflen, ".%06d", us);
! if (n < 0 || (size_t)n >= buflen)
! goto Fail;
! pbuf += n;
}
! return PyString_FromStringAndSize(buf, pbuf - buf);
!
! Fail:
! PyErr_SetString(PyExc_SystemError, "goofy result from PyOS_snprintf");
! return NULL;
}