vim-patch:8.2.1909: number of status line items is limited to 80

Problem:    Number of status line items is limited to 80.
Solution:   Dynamically allocate the arrays. (Rom Grk, closes vim/vim#7181)
8133cc6bf4

The members of stl_item_T have not been prefixed with stl_ contrary to
the vim patch because the amount of stl_ prefixes on single lines of
code in that region was hurtful to readability.
This commit is contained in:
Rom Grk
2020-10-26 18:48:39 -04:00
parent b6897ebc0c
commit 10bf69a43e
9 changed files with 180 additions and 159 deletions

View File

@@ -361,14 +361,36 @@ struct mapblock {
sctx_T m_script_ctx; // SCTX where map was defined
};
/*
* Used for highlighting in the status line.
*/
/// Used for highlighting in the status line.
typedef struct stl_hlrec stl_hlrec_t;
struct stl_hlrec {
char_u *start;
int userhl; // 0: no HL, 1-9: User HL, < 0 for syn ID
};
/// Used for building the status line.
typedef struct stl_item stl_item_t;
struct stl_item {
// Where the item starts in the status line output buffer
char_u *start;
// Function to run for ClickFunc items.
char *cmd;
// The minimum width of the item
int minwid;
// The maximum width of the item
int maxwid;
enum {
Normal,
Empty,
Group,
Separate,
Highlight,
TabPage,
ClickFunc,
Trunc
} type;
};
// values for b_syn_spell: what to do with toplevel text
#define SYNSPL_DEFAULT 0 // spell check if @Spell not defined
#define SYNSPL_TOP 1 // spell check toplevel text