mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
fix(helptags): make multibyte help tags work properly (#23975)
This commit is contained in:
parent
2237b384e4
commit
4229bbe514
@ -458,7 +458,7 @@ int find_help_tags(const char *arg, int *num_matches, char ***matches, bool keep
|
||||
// Replace "^x" by "CTRL-X". Don't do this for "^_" to make
|
||||
// ":help i_^_CTRL-D" work.
|
||||
// Insert '-' before and after "CTRL-X" when applicable.
|
||||
if (*s < ' '
|
||||
if ((uint8_t)(*s) < ' '
|
||||
|| (*s == '^' && s[1]
|
||||
&& (ASCII_ISALPHA(s[1]) || vim_strchr("?@[\\]^", (uint8_t)s[1]) != NULL))) {
|
||||
if (d > IObuff && d[-1] != '_' && d[-1] != '\\') {
|
||||
|
@ -1762,7 +1762,7 @@ static tagmatch_status_T findtags_parse_line(findtags_state_T *st, tagptrs_T *ta
|
||||
if (st->state == TS_BINARY) {
|
||||
int tagcmp;
|
||||
// Simplistic check for unsorted tags file.
|
||||
int i = (int)tagpp->tagname[0];
|
||||
int i = (uint8_t)tagpp->tagname[0];
|
||||
if (margs->sortic) {
|
||||
i = TOUPPER_ASC(tagpp->tagname[0]);
|
||||
}
|
||||
|
@ -4,6 +4,10 @@ local clear = helpers.clear
|
||||
local command = helpers.command
|
||||
local eq = helpers.eq
|
||||
local funcs = helpers.funcs
|
||||
local meths = helpers.meths
|
||||
local mkdir = helpers.mkdir
|
||||
local rmdir = helpers.rmdir
|
||||
local write_file = helpers.write_file
|
||||
|
||||
describe(':help', function()
|
||||
before_each(clear)
|
||||
@ -25,4 +29,17 @@ describe(':help', function()
|
||||
-- Before #9773, Nvim would crash on quitting the help window.
|
||||
eq(1002, funcs.win_getid())
|
||||
end)
|
||||
|
||||
it('multibyte help tags work #23978', function()
|
||||
mkdir('Xhelptags')
|
||||
finally(function()
|
||||
rmdir('Xhelptags')
|
||||
end)
|
||||
mkdir('Xhelptags/doc')
|
||||
write_file('Xhelptags/doc/Xhelptags.txt', '*…*')
|
||||
command('helptags Xhelptags/doc')
|
||||
command('set rtp+=Xhelptags')
|
||||
command('help …')
|
||||
eq('*…*', meths.get_current_line())
|
||||
end)
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user