blob: abf812fad3e42748f42d42740885293c07aff4fe (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "nvim/api/private/defs.h"
/// structure used to store one block of the stuff/redo/recording buffers
typedef struct buffblock {
struct buffblock *b_next; ///< pointer to next buffblock
char b_str[1]; ///< contents (actually longer)
} buffblock_T;
/// header used for the stuff buffer and the redo buffer
typedef struct {
buffblock_T bh_first; ///< first (dummy) block of list
buffblock_T *bh_curr; ///< buffblock for appending
size_t bh_index; ///< index for reading
size_t bh_space; ///< space in bh_curr for appending
} buffheader_T;
typedef struct {
buffheader_T sr_redobuff;
buffheader_T sr_old_redobuff;
} save_redo_T;
/// Used for the typeahead buffer: typebuf.
typedef struct {
uint8_t *tb_buf; ///< buffer for typed characters
uint8_t *tb_noremap; ///< mapping flags for characters in tb_buf[]
int tb_buflen; ///< size of tb_buf[]
int tb_off; ///< current position in tb_buf[]
int tb_len; ///< number of valid bytes in tb_buf[]
int tb_maplen; ///< nr of mapped bytes in tb_buf[]
int tb_silent; ///< nr of silently mapped bytes in tb_buf[]
int tb_no_abbr_cnt; ///< nr of bytes without abbrev. in tb_buf[]
int tb_change_cnt; ///< nr of time tb_buf was changed; never zero
} typebuf_T;
/// Struct to hold the saved typeahead for save_typeahead().
typedef struct {
typebuf_T save_typebuf;
bool typebuf_valid; ///< true when save_typebuf valid
int old_char;
int old_mod_mask;
buffheader_T save_readbuf1;
buffheader_T save_readbuf2;
String save_inputbuf;
} tasave_T;
/// Values for "noremap" argument of ins_typebuf()
///
/// Also used for map->m_noremap and menu->noremap[].
enum RemapValues {
REMAP_YES = 0, ///< Allow remapping.
REMAP_NONE = -1, ///< No remapping.
REMAP_SCRIPT = -2, ///< Remap script-local mappings only.
REMAP_SKIP = -3, ///< No remapping for first char.
};
|