70 lines
1.6 KiB
C
70 lines
1.6 KiB
C
/**
|
|
* @file buffer.h
|
|
* @brief Buffer management for handling multiple open files
|
|
*/
|
|
|
|
#ifndef BUFFER_H_
|
|
#define BUFFER_H_
|
|
|
|
#include "data.h"
|
|
|
|
/**
|
|
* @brief Creates a new buffer for a file
|
|
* @param filename Path to the file
|
|
* @return Buffer ID on success, -1 on failure
|
|
*/
|
|
int bufferCreate(const char *path, enum bufferStatus_e state);
|
|
|
|
/**
|
|
* @brief Switches to a specific buffer by ID
|
|
* @param buffer_id The buffer ID to switch to
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int bufferSwitch(int buffer_id);
|
|
|
|
struct buffer_t *bufferFindById(int buffer_id);
|
|
|
|
/**
|
|
* @brief Closes a buffer by ID
|
|
* @param buffer_id The buffer ID to close
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int bufferClose(int buffer_id);
|
|
|
|
/**
|
|
* @brief Gets the current active buffer
|
|
* @return Pointer to current buffer_t, NULL if none
|
|
*/
|
|
struct buffer_t *bufferGetCurrent(void);
|
|
|
|
/**
|
|
* @brief Lists all open buffers
|
|
* @return Number of open buffers
|
|
*/
|
|
int bufferListAll(void);
|
|
|
|
/**
|
|
* @brief Saves current buffer to disk
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int bufferSave(void);
|
|
|
|
/**
|
|
* @brief Saves all buffers to disk
|
|
* @return 0 on success, -1 on failure
|
|
*/
|
|
int bufferSaveAll(void);
|
|
|
|
void bufferFind(struct buffer_t *buf);
|
|
void bufferFindReverse(struct buffer_t* buf);
|
|
void bufferInsertNewLine();
|
|
void bufferInsertBytes(const char *src, int n);
|
|
void bufferDelBytes();
|
|
void bufferRowInsertBytes(struct buffer_t *buffer, row_t *row, int at, const char *src, int n);
|
|
void bufferRowDelByte(struct buffer_t *buffer, row_t *row, int at, int n);
|
|
void bufferInsertRow(struct buffer_t *buffer, int at, char *s, size_t len);
|
|
void bufferFreeRow(row_t *row);
|
|
|
|
|
|
#endif
|