mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Remove PyOS_vsnprintf as it is broken on windows
This commit is contained in:
parent
efac50df46
commit
f280dd4de7
@ -31,17 +31,21 @@ class OutputDevice : public PdfOutputDevice {
|
|||||||
size_t GetLength() const { return written; }
|
size_t GetLength() const { return written; }
|
||||||
|
|
||||||
long PrintVLen(const char* pszFormat, va_list args) {
|
long PrintVLen(const char* pszFormat, va_list args) {
|
||||||
char buf[10];
|
|
||||||
int res;
|
|
||||||
|
|
||||||
if( !pszFormat ) { PODOFO_RAISE_ERROR( ePdfError_InvalidHandle ); }
|
if( !pszFormat ) { PODOFO_RAISE_ERROR( ePdfError_InvalidHandle ); }
|
||||||
|
|
||||||
res = PyOS_vsnprintf(buf, 1, pszFormat, args);
|
#ifdef _MSC_VER
|
||||||
|
return _vscprintf(pszFormat, args);
|
||||||
|
#else
|
||||||
|
char buf[10];
|
||||||
|
int res;
|
||||||
|
res = vsnprintf(buf, 1, pszFormat, args);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
PyErr_SetString(PyExc_Exception, "Something bad happend while calling PyOS_vsnprintf");
|
PyErr_SetString(PyExc_Exception, "Something bad happened while calling vsnprintf to get buffer length");
|
||||||
throw pyerr();
|
throw pyerr();
|
||||||
}
|
}
|
||||||
return static_cast<long>(res+1);
|
return static_cast<long>(res+1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintV( const char* pszFormat, long lBytes, va_list args ) {
|
void PrintV( const char* pszFormat, long lBytes, va_list args ) {
|
||||||
@ -53,10 +57,11 @@ class OutputDevice : public PdfOutputDevice {
|
|||||||
buf = new (std::nothrow) char[lBytes+1];
|
buf = new (std::nothrow) char[lBytes+1];
|
||||||
if (buf == NULL) { PyErr_NoMemory(); throw pyerr(); }
|
if (buf == NULL) { PyErr_NoMemory(); throw pyerr(); }
|
||||||
|
|
||||||
res = PyOS_vsnprintf(buf, lBytes, pszFormat, args);
|
// Note: PyOS_vsnprintf produces broken output on windows
|
||||||
|
res = vsnprintf(buf, lBytes, pszFormat, args);
|
||||||
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
PyErr_SetString(PyExc_Exception, "Something bad happend while calling PyOS_vsnprintf");
|
PyErr_SetString(PyExc_Exception, "Something bad happened while calling vsnprintf");
|
||||||
delete[] buf;
|
delete[] buf;
|
||||||
throw pyerr();
|
throw pyerr();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user