summaryrefslogtreecommitdiffstats
path: root/Python/mysnprintf.c
Commit message (Collapse)AuthorAgeFilesLines
* PyOS_vsnprintf(): Change PyMem_Malloc() call to PyMem_MALLOC() macro,Barry Warsaw2001-12-211-2/+2
| | | | | | | (ditto for PyMem_Free() -> PyMem_FREE()) to fix and close SF bug #495875 on systems that HAVE_SNPRINTF=0. Check in on both release-22 branch and trunk.
* mysnprintf.c: Massive rewrite of PyOS_snprintf and PyOS_vsnprintf, toTim Peters2001-12-031-78/+74
| | | | | | | | | | | | | | | use wrappers on all platforms, to make this as consistent as possible x- platform (in particular, make sure there's at least one \0 byte in the output buffer). Also document more of the truth about what these do. getargs.c, seterror(): Three computations of remaining buffer size were backwards, thus telling PyOS_snprintf the buffer is larger than it actually is. This matters a lot now that PyOS_snprintf ensures there's a trailing \0 byte (because it didn't get the truth about the buffer size, it was storing \0 beyond the true end of the buffer). sysmodule.c, mywrite(): Simplify, now that PyOS_vsnprintf guarantees to produce a \0 byte.
* When the number of bytes written to the malloc'ed buffer is largerGuido van Rossum2001-12-011-5/+5
| | | | | | than the argument string size, copy as many bytes as will fit (including a terminating '\0'), rather than not copying anything. This to make it satisfy the C99 spec.
* Add mysnprintf.c to Windows build, + squash compiler wngs in mysnprintf.c.Tim Peters2001-07-311-2/+3
|
* This patch turns the Python API mismatch notice into a standardMarc-André Lemburg2001-07-311-0/+96
Python warning which can be catched by means of the Python warning framework. It also adds two new APIs which hopefully make it easier for Python to switch to buffer overflow safe [v]snprintf() APIs for error reporting et al. The two new APIs are PyOS_snprintf() and PyOS_vsnprintf() and work just like the standard ones in many C libs. On platforms which have snprintf(), the native APIs are used, on all other an emulation with snprintf() tries to do its best.