snapkitty
compilers
c
python
nasm
File size: 925 Bytes
9abace2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef SOVEREIGN_BUFFER_H
#define SOVEREIGN_BUFFER_H

#include <stddef.h>
#include <stdbool.h>

typedef struct Buffer Buffer;

Buffer *buffer_create(const char *text, size_t len);
void    buffer_destroy(Buffer *b);
size_t  buffer_length(const Buffer *b);
size_t  buffer_line_count(const Buffer *b);
void    buffer_insert(Buffer *b, size_t offset, const char *text, size_t len);
void    buffer_delete(Buffer *b, size_t offset, size_t len);
size_t  buffer_read(const Buffer *b, size_t offset, char *out, size_t max_len);

void    buffer_undo(Buffer *b);
void    buffer_redo(Buffer *b);
bool    buffer_can_undo(const Buffer *b);
bool    buffer_can_redo(const Buffer *b);
bool    buffer_is_dirty(const Buffer *b);
void    buffer_mark_clean(Buffer *b);

size_t  buffer_line_start(const Buffer *b, size_t line);
size_t  buffer_line_length(const Buffer *b, size_t line);

#endif /* SOVEREIGN_BUFFER_H */