vt: add vt_to_slave()

This commit is contained in:
Daniel Eklöf 2019-07-15 15:42:00 +02:00
parent 8bf0befe42
commit 2f6b8d232f
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 22 additions and 0 deletions

21
vt.c
View file

@ -2,6 +2,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h>
#include <assert.h> #include <assert.h>
#define LOG_MODULE "vt" #define LOG_MODULE "vt"
@ -973,3 +974,23 @@ vt_from_slave(struct terminal *term, const uint8_t *data, size_t len)
} }
} }
} }
bool
vt_to_slave(struct terminal *term, const void *_data, size_t len)
{
const uint8_t *data = _data;
size_t left = len;
while (left > 0) {
ssize_t ret = write(term->ptmx, data, left);
if (ret < 0) {
LOG_ERRNO("failed to write to client");
return false;
}
data += ret;
left -= ret;
}
return true;
}

1
vt.h
View file

@ -6,6 +6,7 @@
#include "terminal.h" #include "terminal.h"
void vt_from_slave(struct terminal *term, const uint8_t *data, size_t len); void vt_from_slave(struct terminal *term, const uint8_t *data, size_t len);
bool vt_to_slave(struct terminal *term, const void *data, size_t len);
static inline int static inline int
vt_param_get(const struct terminal *term, size_t idx, int default_value) vt_param_get(const struct terminal *term, size_t idx, int default_value)