+ editor removes per-buffer fields. + switching from internal use of 'int' to 'size_t'. + deleting old code + double checking relevancy of comments. A lot has changed in 5 years, even more so in the past week. + fixing a few vestigal memory errors from the overhaul. + fixing search behavior
50 lines
1.1 KiB
C
50 lines
1.1 KiB
C
#ifndef KE_BUFFER_H
|
|
#define KE_BUFFER_H
|
|
|
|
#include "abuf.h"
|
|
|
|
|
|
typedef struct buffer {
|
|
size_t curx, cury;
|
|
size_t rx;
|
|
size_t nrows;
|
|
size_t rowoffs, coloffs;
|
|
abuf *row;
|
|
char *filename;
|
|
int dirty;
|
|
int mark_set;
|
|
size_t mark_curx, mark_cury;
|
|
} buffer;
|
|
|
|
/* Access current buffer and convenient aliases for file-specific fields */
|
|
buffer *buffer_current(void);
|
|
|
|
#define CURBUF (buffer_current())
|
|
#define EROW (CURBUF->row)
|
|
#define ENROWS (CURBUF->nrows)
|
|
#define ECURX (CURBUF->curx)
|
|
#define ECURY (CURBUF->cury)
|
|
#define ERX (CURBUF->rx)
|
|
#define EROWOFFS (CURBUF->rowoffs)
|
|
#define ECOLOFFS (CURBUF->coloffs)
|
|
#define EFILENAME (CURBUF->filename)
|
|
#define EDIRTY (CURBUF->dirty)
|
|
#define EMARK_SET (CURBUF->mark_set)
|
|
#define EMARK_CURX (CURBUF->mark_curx)
|
|
#define EMARK_CURY (CURBUF->mark_cury)
|
|
|
|
|
|
void buffers_init(void);
|
|
int buffer_add_empty(void);
|
|
void buffer_save_current(void);
|
|
void buffer_switch(int idx);
|
|
void buffer_next(void);
|
|
void buffer_prev(void);
|
|
void buffer_switch_by_name(void);
|
|
void buffer_close_current(void);
|
|
const char *buffer_name(buffer *b);
|
|
int buffer_is_unnamed_and_empty(const buffer *b);
|
|
|
|
|
|
#endif
|