Use FuncRequest::getArg instead of splitting the argument

ourselves.
This commit is contained in:
Richard Heck 2018-04-16 22:32:04 -04:00
parent d8a1132e34
commit f7d502d024
2 changed files with 15 additions and 8 deletions

View File

@ -1699,12 +1699,14 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
case LFUN_UNICODE_INSERT: {
if (cmd.argument().empty())
break;
// splits on whitespace
vector<docstring> args =
getVectorFromString(cmd.argument(), from_ascii(" "), false, true);
for (auto const & arg : args) {
int i = 0;
while (true) {
docstring const arg = from_utf8(cmd.getArg(i));
if (arg.empty())
break;
if (!isHex(arg)) {
LYXERR0("Not a hexstring: " << arg);
++i;
continue;
}
char_type c = hexToInt(arg);
@ -1712,6 +1714,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
LYXERR(Debug::KEY, "Inserting c: " << c);
lyx::dispatch(FuncRequest(LFUN_SELF_INSERT, docstring(1, c)));
}
++i;
}
break;
}

View File

@ -1249,20 +1249,24 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
case LFUN_UNICODE_INSERT: {
if (cmd.argument().empty())
break;
// splits on whitespace
vector<docstring> args =
getVectorFromString(cmd.argument(), from_ascii(" "), false, true);
for (auto const & arg : args) {
int i = 0;
while (true) {
docstring const arg = from_utf8(cmd.getArg(i));
if (arg.empty())
break;
if (!isHex(arg)) {
LYXERR0("Not a hexstring: " << arg);
++i;
continue;
}
char_type c = hexToInt(arg);
if (c >= 32 && c < 0x10ffff) {
LYXERR(Debug::KEY, "Inserting c: " << c);
FuncCode code = currentMode() == MATH_MODE ?
LFUN_MATH_INSERT : LFUN_SELF_INSERT;
lyx::dispatch(FuncRequest(code, docstring(1, c)));
}
++i;
}
break;
}