You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
14 lines
485 B
C
14 lines
485 B
C
#include "parse.h"
|
|
|
|
// This function asserts that the caller wants to read n bytes from the stream.
|
|
// If there is less space available, set the stream to error state.
|
|
int bs_capacityassert(struct bytestream* bs,size_t capacity) {
|
|
if (bs->cur>=bs->max || // if EOF or error, return 0
|
|
bs->max - bs->cur < capacity) { // not EOF but less than that many bytes left
|
|
bs->cur = 1; // set stream to error state
|
|
bs->max = 0;
|
|
return 0; // return failure
|
|
}
|
|
return 1;
|
|
}
|