Remove buffer module as it is no longer needed

This commit is contained in:
2026-04-24 14:30:25 +02:00
parent b6aaa0c08f
commit 2d1ccd52e6
2 changed files with 0 additions and 113 deletions
-63
View File
@@ -1,63 +0,0 @@
#include "buffer.h"
#include <stdlib.h>
#include <stdio.h>
typedef enum {
BUFFER_FILE,
BUFFER_STRING
} BufferType;
struct Buffer {
BufferType type;
union {
FILE* file;
struct {
const char* data;
size_t pos;
} string;
} source;
};
Buffer* buffer_open_file(const char* path) {
FILE* f = fopen(path, "r");
if (f == NULL)
return NULL;
Buffer* buf = malloc(sizeof(Buffer));
if (buf == NULL) {
fclose(f);
return NULL;
}
buf->type = BUFFER_FILE;
buf->source.file = f;
return buf;
}
Buffer* buffer_open_string(const char* string) {
Buffer* buf = malloc(sizeof(Buffer));
if (buf == NULL)
return NULL;
buf->type = BUFFER_STRING;
buf->source.string.data = string;
buf->source.string.pos = 0;
return buf;
}
void buffer_close(Buffer* buffer) {
if (buffer->type == BUFFER_FILE)
fclose(buffer->source.file);
free(buffer);
}
char buffer_read(Buffer* buffer) {
if (buffer->type == BUFFER_FILE) {
int c = fgetc(buffer->source.file);
return c == EOF ? (char)-1 : (char)c;
} else {
char c = buffer->source.string.data[buffer->source.string.pos];
if (c == '\0')
return (char)-1;
buffer->source.string.pos++;
return c;
}
}
-50
View File
@@ -1,50 +0,0 @@
/**
* An interface that wraps files and strings.
* Allows streamlike reading from it.
*/
#ifndef BUFFER_H
#define BUFFER_H
/**
* An interface to a source of textual data.
*/
typedef struct Buffer Buffer;
/**
* Opens a file.
*
* @param path The path to the file.
* @returns The newlyopened buffer.
*/
Buffer* buffer_open_file(const char* path);
/**
* Opens a string.
*
* The string is not copied, and must not be free'd until the
* buffer itself has been closed.
*
* @param string The contents stored in the buffer.
* @returns A newlyopened buffer that reads from the string.
*/
Buffer* buffer_open_string(const char* string);
/**
* Closes the buffer.
*
* @param buffer The buffer to close.
*/
void buffer_close(Buffer* buffer);
/**
* Reads a single character from the buffer.
*
* If there are no more characters in the buffer,
* this returns `-1`.
*
* @param buffer The buffer to read from.
* @returns the next character in the buffer.
*/
char buffer_read(Buffer* buffer);
#endif