mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 05:58:33 +00:00
vim-patch:8.2.0674: some source files are too big (#19959)
Problem: Some source files are too big.
Solution: Move text formatting functions to a new file. (Yegappan
Lakshmanan, closes vim/vim#6021)
11abd09521
Cherry-pick set_can_cindent() from patch 8.1.2062.
Cherry-pick global old_indent from patch 8.2.2127.
This commit is contained in:
@@ -623,6 +623,34 @@ void stuffnumReadbuff(long n)
|
||||
add_num_buff(&readbuf1, n);
|
||||
}
|
||||
|
||||
/// Stuff a string into the typeahead buffer, such that edit() will insert it
|
||||
/// literally ("literally" true) or interpret is as typed characters.
|
||||
void stuffescaped(const char *arg, bool literally)
|
||||
{
|
||||
while (*arg != NUL) {
|
||||
// Stuff a sequence of normal ASCII characters, that's fast. Also
|
||||
// stuff K_SPECIAL to get the effect of a special key when "literally"
|
||||
// is true.
|
||||
const char *const start = arg;
|
||||
while ((*arg >= ' ' && *arg < DEL) || ((uint8_t)(*arg) == K_SPECIAL
|
||||
&& !literally)) {
|
||||
arg++;
|
||||
}
|
||||
if (arg > start) {
|
||||
stuffReadbuffLen(start, (arg - start));
|
||||
}
|
||||
|
||||
// stuff a single special character
|
||||
if (*arg != NUL) {
|
||||
const int c = mb_cptr2char_adv((const char_u **)&arg);
|
||||
if (literally && ((c < ' ' && c != TAB) || c == DEL)) {
|
||||
stuffcharReadbuff(Ctrl_V);
|
||||
}
|
||||
stuffcharReadbuff(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Read a character from the redo buffer. Translates K_SPECIAL and
|
||||
/// multibyte characters.
|
||||
/// The redo buffer is left as it is.
|
||||
|
Reference in New Issue
Block a user