gcc 15 and C23 force some union trickery on buffer.h :-(

add a few buffer_init*_forread variants to pretend we have type safety
  make sure buffer_init_staticcontents handles flushing attempts
This commit is contained in:
leitner
2025-04-22 09:32:03 +00:00
parent 9bf6db9a02
commit b7b8a0efc1
37 changed files with 325 additions and 64 deletions

View File

@@ -2,7 +2,10 @@
#include "array.h"
#include "buffer.h"
static ssize_t fail() {
static ssize_t fail(int fd,void* buf,size_t l) {
(void)fd;
(void)buf;
(void)l;
errno=EINVAL;
return -1;
}
@@ -10,7 +13,7 @@ static ssize_t fail() {
void buffer_fromarray(buffer* b,array* a) {
if (array_failed(a)) {
memset(b,0,sizeof *b);
b->op=fail;
b->op.rop=fail;
} else
buffer_frombuf(b,array_start(a),a->initialized);
}