forked from Mirrorlandia_minetest/minetest
chat.cpp fix wchar_t isspace -> iswspace & wrong isspace on an index (#5783)
This commit is contained in:
parent
7779bac3a5
commit
8797a0aa4b
18
src/chat.cpp
18
src/chat.cpp
@ -488,9 +488,9 @@ void ChatPrompt::nickCompletion(const std::list<std::string>& names, bool backwa
|
|||||||
{
|
{
|
||||||
// no previous nick completion is active
|
// no previous nick completion is active
|
||||||
prefix_start = prefix_end = m_cursor;
|
prefix_start = prefix_end = m_cursor;
|
||||||
while (prefix_start > 0 && !isspace(m_line[prefix_start-1]))
|
while (prefix_start > 0 && !iswspace(m_line[prefix_start-1]))
|
||||||
--prefix_start;
|
--prefix_start;
|
||||||
while (prefix_end < m_line.size() && !isspace(m_line[prefix_end]))
|
while (prefix_end < m_line.size() && !iswspace(m_line[prefix_end]))
|
||||||
++prefix_end;
|
++prefix_end;
|
||||||
if (prefix_start == prefix_end)
|
if (prefix_start == prefix_end)
|
||||||
return;
|
return;
|
||||||
@ -519,7 +519,7 @@ void ChatPrompt::nickCompletion(const std::list<std::string>& names, bool backwa
|
|||||||
u32 replacement_index = 0;
|
u32 replacement_index = 0;
|
||||||
if (!initial)
|
if (!initial)
|
||||||
{
|
{
|
||||||
while (word_end < m_line.size() && !isspace(m_line[word_end]))
|
while (word_end < m_line.size() && !iswspace(m_line[word_end]))
|
||||||
++word_end;
|
++word_end;
|
||||||
std::wstring word = m_line.substr(prefix_start, word_end - prefix_start);
|
std::wstring word = m_line.substr(prefix_start, word_end - prefix_start);
|
||||||
|
|
||||||
@ -538,7 +538,7 @@ void ChatPrompt::nickCompletion(const std::list<std::string>& names, bool backwa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::wstring replacement = completions[replacement_index];
|
std::wstring replacement = completions[replacement_index];
|
||||||
if (word_end < m_line.size() && isspace(word_end))
|
if (word_end < m_line.size() && iswspace(m_line[word_end]))
|
||||||
++word_end;
|
++word_end;
|
||||||
|
|
||||||
// replace existing word with replacement word,
|
// replace existing word with replacement word,
|
||||||
@ -593,17 +593,17 @@ void ChatPrompt::cursorOperation(CursorOp op, CursorOpDir dir, CursorOpScope sco
|
|||||||
case CURSOROP_SCOPE_WORD:
|
case CURSOROP_SCOPE_WORD:
|
||||||
if (dir == CURSOROP_DIR_RIGHT) {
|
if (dir == CURSOROP_DIR_RIGHT) {
|
||||||
// skip one word to the right
|
// skip one word to the right
|
||||||
while (new_cursor < length && isspace(m_line[new_cursor]))
|
while (new_cursor < length && iswspace(m_line[new_cursor]))
|
||||||
new_cursor++;
|
new_cursor++;
|
||||||
while (new_cursor < length && !isspace(m_line[new_cursor]))
|
while (new_cursor < length && !iswspace(m_line[new_cursor]))
|
||||||
new_cursor++;
|
new_cursor++;
|
||||||
while (new_cursor < length && isspace(m_line[new_cursor]))
|
while (new_cursor < length && iswspace(m_line[new_cursor]))
|
||||||
new_cursor++;
|
new_cursor++;
|
||||||
} else {
|
} else {
|
||||||
// skip one word to the left
|
// skip one word to the left
|
||||||
while (new_cursor >= 1 && isspace(m_line[new_cursor - 1]))
|
while (new_cursor >= 1 && iswspace(m_line[new_cursor - 1]))
|
||||||
new_cursor--;
|
new_cursor--;
|
||||||
while (new_cursor >= 1 && !isspace(m_line[new_cursor - 1]))
|
while (new_cursor >= 1 && !iswspace(m_line[new_cursor - 1]))
|
||||||
new_cursor--;
|
new_cursor--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user