Files
neovim/src/nvim/terminal.h
zeertzjq 7d6b6b2d14 fix(terminal): don't poll for output during scrollback refresh (#38365)
Problem:
If buffer update callbacks poll for uv events during terminal scrollback
refresh, new output from PTY process may lead to incorrect scrollback.

Solution:
Don't poll for output to the same terminal as the one being refreshed.
2026-03-19 18:16:57 +08:00

28 lines
824 B
C

#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "nvim/api/private/defs.h" // IWYU pragma: keep
#include "nvim/types_defs.h" // IWYU pragma: keep
typedef void (*terminal_read_pause_cb)(bool pause, void *data);
typedef void (*terminal_write_cb)(const char *buffer, size_t size, void *data);
typedef void (*terminal_resize_cb)(uint16_t width, uint16_t height, void *data);
typedef void (*terminal_resume_cb)(void *data);
typedef void (*terminal_close_cb)(void *data);
typedef struct {
void *data; // PTY process channel
uint16_t width, height;
terminal_read_pause_cb read_pause_cb;
terminal_write_cb write_cb;
terminal_resize_cb resize_cb;
terminal_resume_cb resume_cb;
terminal_close_cb close_cb;
bool force_crlf;
} TerminalOptions;
#include "terminal.h.generated.h"