38 lines
956 B
C
38 lines
956 B
C
#ifndef BUFFER_H
|
|
#define BUFFER_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
|
|
#include "utils.h"
|
|
|
|
struct erow {
|
|
char *chars;
|
|
int n_chars;
|
|
|
|
char *rchars;
|
|
int n_rchars;
|
|
};
|
|
|
|
struct buffer {
|
|
char *filename;
|
|
struct erow *rows;
|
|
int n_rows;
|
|
bool modified;
|
|
};
|
|
|
|
struct buffer *buffer_create(void);
|
|
void buffer_read_file(struct buffer *buffer, const char *filename);
|
|
void buffer_insert_row(struct buffer *buffer, const char *chars, int n_chars, int at);
|
|
void buffer_delete_row(struct buffer *buffer, int at);
|
|
ERRCODE buffer_write_file(struct buffer *buffer);
|
|
|
|
void erow_update_rendering(struct erow *erow);
|
|
void erow_append_string(struct erow *erow, const char *s, size_t s_len);
|
|
void erow_insert_char(struct erow *erow, int at, char c);
|
|
void erow_delete_char(struct erow *erow, int at);
|
|
int erow_cx_to_rx(struct erow *erow, int cx);
|
|
int erow_rx_to_cx(struct erow *erow, int rx);
|
|
void erow_free(struct erow *erow);
|
|
|
|
#endif // BUFFER_H
|