+void buffer_compact(buffer_t *buffer, int maxsize) {
+ if(buffer->len >= maxsize || buffer->offset / 7 > buffer->len / 8) {
+ memmove(buffer->data, buffer->data + buffer->offset, buffer->len - buffer->offset);
+ buffer->len -= buffer->offset;
+ buffer->offset = 0;
+ }
+}
+