tabs and tab overview

This commit is contained in:
entailz 2026-05-12 23:33:02 -07:00
commit d07c2a5cc9
244 changed files with 72046 additions and 0 deletions

28
vt.h Normal file
View file

@ -0,0 +1,28 @@
#pragma once
#include <limits.h>
#include <stdint.h>
#include <stddef.h>
#include "terminal.h"
void vt_from_slave(struct terminal *term, const uint8_t *data, size_t len);
static inline int
vt_param_get(const struct terminal *term, size_t idx, int default_value)
{
/*
* We zero excess bits in parsed param values. In most cases this will
* effectively be a no-op; but it prevents negative returns for edge
* cases involving unusually large values.
*/
static_assert(INT_MAX >= 0x7fffffff, "POSIX requires INT_MAX >= 0x7fffffff");
const unsigned value_mask = 0x7fffffff;
if (term->vt.params.idx > idx) {
unsigned value = term->vt.params.v[idx].value & value_mask;
return value != 0 ? (int)value : default_value;
}
return default_value;
}