started implementing scrollback buffer

This commit is contained in:
Michael Krayer 2023-10-13 09:09:59 +02:00
parent e7cab4e330
commit cc315c0987
2 changed files with 22 additions and 0 deletions

View File

@ -98,6 +98,20 @@ static bool server_write_pty(Packet *pkt) {
return false;
}
static bool server_write_scrollback(Packet *pkt) {
print_packet("server-write-scrollback:", pkt);
size_t size = pkt->len;
uint32_t ii;
for (ii=0;ii<size;ii++) {
scrollback.buffer[scrollback.position++] = pkt->u.msg[ii];
if (scrollback.position>SCROLLBACK_SIZE) {
scrollback.position = 0;
scrollback.wrap = true;
}
}
return true;
}
static bool server_recv_packet(Client *c, Packet *pkt) {
if (recv_packet(c->socket, pkt)) {
print_packet("server-recv:", pkt);

View File

@ -125,8 +125,16 @@ typedef struct {
char next_session[2];
} Server;
#define SCROLLBACK_SIZE 8192
typedef struct {
char buffer[SCROLLBACK_SIZE];
uint32_t position;
bool wrap;
} Scrollback;
static Server server = { .running = true, .exit_status = -1, .host = "@localhost" , .next_session = { '\0', '\0' } };
static Client client;
static Scrollback scrollback = { .buffer = {}, .position = 0, .wrap = false };
static struct termios orig_term, cur_term;
static bool has_term, alternate_buffer, quiet;