use ssize_t for signed index types. Win has no ssize_t, use ptrdiff_t instead.
use P instead of S as shortcut for PRINTF_SIZE_T_PREFIX because some OK already use S.
This commit is contained in:
@ -30,17 +30,17 @@
|
|||||||
#define vsnprintf epicsVsnprintf
|
#define vsnprintf epicsVsnprintf
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define S PRINTF_SIZE_T_PREFIX
|
#define P PRINTF_SIZE_T_PREFIX
|
||||||
|
|
||||||
void StreamBuffer::
|
void StreamBuffer::
|
||||||
init(const void* s, size_t minsize)
|
init(const void* s, ssize_t minsize)
|
||||||
{
|
{
|
||||||
len = 0;
|
len = 0;
|
||||||
offs = 0;
|
offs = 0;
|
||||||
buffer = local;
|
buffer = local;
|
||||||
cap = sizeof(local);
|
cap = sizeof(local);
|
||||||
if (minsize < 0) minsize = 0;
|
if (minsize < 0) minsize = 0;
|
||||||
if (minsize >= cap)
|
if ((size_t)minsize >= cap)
|
||||||
{
|
{
|
||||||
// use allocated buffer
|
// use allocated buffer
|
||||||
grow(minsize);
|
grow(minsize);
|
||||||
@ -57,7 +57,7 @@ init(const void* s, size_t minsize)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// How the buffer looks like:
|
// How the buffer looks like:
|
||||||
// |----free-----|####used####|-------free-------|
|
// |----free-----|####used####|--------00--------|
|
||||||
///|<--- offs -->|<-- len --->|<- cap-offs-len ->|
|
///|<--- offs -->|<-- len --->|<- cap-offs-len ->|
|
||||||
// 0 offs offs+len cap
|
// 0 offs offs+len cap
|
||||||
// |<-------------- minsize --------------->
|
// |<-------------- minsize --------------->
|
||||||
@ -124,7 +124,7 @@ append(const void* s, ssize_t size)
|
|||||||
if (size <= 0)
|
if (size <= 0)
|
||||||
{
|
{
|
||||||
// append negative number of bytes? let's delete some
|
// append negative number of bytes? let's delete some
|
||||||
if ((size_t)-size > len) size = -len;
|
if (size < -(ssize_t)len) size = -(ssize_t)len;
|
||||||
memset (buffer+offs+len+size, 0, -size);
|
memset (buffer+offs+len+size, 0, -size);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -136,7 +136,7 @@ append(const void* s, ssize_t size)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
long int StreamBuffer::
|
ssize_t StreamBuffer::
|
||||||
find(const void* m, size_t size, ssize_t start) const
|
find(const void* m, size_t size, ssize_t start) const
|
||||||
{
|
{
|
||||||
if (start < 0)
|
if (start < 0)
|
||||||
@ -314,7 +314,7 @@ dump() const
|
|||||||
StreamBuffer result(256+cap*5);
|
StreamBuffer result(256+cap*5);
|
||||||
result.append("\033[0m");
|
result.append("\033[0m");
|
||||||
size_t i;
|
size_t i;
|
||||||
result.print("%"S"d,%"S"d,%"S"d:\033[37m", offs, len, cap);
|
result.print("%"P"d,%"P"d,%"P"d:\033[37m", offs, len, cap);
|
||||||
for (i = 0; i < cap; i++)
|
for (i = 0; i < cap; i++)
|
||||||
{
|
{
|
||||||
if (i == offs) result.append("\033[34m[\033[0m");
|
if (i == offs) result.append("\033[34m[\033[0m");
|
||||||
|
Reference in New Issue
Block a user