From: Richard Heck Date: Tue, 17 Apr 2018 02:32:04 +0000 (-0400) Subject: Use FuncRequest::getArg instead of splitting the argument X-Git-Tag: lyx-2.4.0dev-acb2ca7b~3618 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=f7d502d0;p=features.git Use FuncRequest::getArg instead of splitting the argument ourselves. --- diff --git a/src/Text3.cpp b/src/Text3.cpp index 195879ad17..833a7ed645 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -1699,12 +1699,14 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) case LFUN_UNICODE_INSERT: { if (cmd.argument().empty()) break; - // splits on whitespace - vector 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; } diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp index ec464134be..6f415913b1 100644 --- a/src/mathed/InsetMathNest.cpp +++ b/src/mathed/InsetMathNest.cpp @@ -1249,20 +1249,24 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd) case LFUN_UNICODE_INSERT: { if (cmd.argument().empty()) break; - // splits on whitespace - vector 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; }