[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;
  }