diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 2006aafb0..25cd0c040 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -12,6 +12,11 @@
Partial puts are not supported. An attempt to put more bytes than currently free will be rejected.
+ +The IOC now provides support for strings longer than 40 characters through diff --git a/src/libCom/ring/epicsRingBytes.c b/src/libCom/ring/epicsRingBytes.c index 57b37ebff..4ab883fd7 100644 --- a/src/libCom/ring/epicsRingBytes.c +++ b/src/libCom/ring/epicsRingBytes.c @@ -105,7 +105,7 @@ epicsShareFunc int epicsShareAPI epicsRingBytesPut( if (nextPut < nextGet) { freeCount = nextGet - nextPut - SLOP; if (nbytes > freeCount) - nbytes = freeCount; + return 0; if (nbytes) memcpy ((void *)&pring->buffer[nextPut], value, nbytes); nextPut += nbytes; @@ -113,7 +113,7 @@ epicsShareFunc int epicsShareAPI epicsRingBytesPut( else { freeCount = size - nextPut + nextGet - SLOP; if (nbytes > freeCount) - nbytes = freeCount; + return 0; topCount = size - nextPut; copyCount = (nbytes > topCount) ? topCount : nbytes; if (copyCount) @@ -134,8 +134,7 @@ epicsShareFunc void epicsShareAPI epicsRingBytesFlush(epicsRingBytesId id) { ringPvt *pring = (ringPvt *)id; - pring->nextGet = 0; - pring->nextPut = 0; + pring->nextGet = pring->nextPut; } epicsShareFunc int epicsShareAPI epicsRingBytesFreeBytes(epicsRingBytesId id)