mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-15 12:41:32 +00:00
Avoid an implicit character set conversion in cur.insert() in InsertChar
by changing the argument type to lyx::char_type. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15382 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
6559e4b4db
commit
62aedce851
@ -705,15 +705,9 @@ void InsetMathNest::doDispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
cur.posLeft();
|
cur.posLeft();
|
||||||
cur.pushLeft(*cur.nextInset());
|
cur.pushLeft(*cur.nextInset());
|
||||||
}
|
}
|
||||||
// FIXME: Change to
|
} else if (!interpretChar(cur, cmd.argument()[0])) {
|
||||||
// } else if (!interpret(cur, cmd.argument()[0])) {
|
cmd = FuncRequest(LFUN_FINISHED_RIGHT);
|
||||||
// when interpret accepts UCS4 characters
|
cur.undispatched();
|
||||||
} else {
|
|
||||||
std::string arg0 = lyx::to_utf8(docstring(1, cmd.argument()[0]));
|
|
||||||
if (!interpretChar(cur, arg0[0])) {
|
|
||||||
cmd = FuncRequest(LFUN_FINISHED_RIGHT);
|
|
||||||
cur.undispatched();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -940,8 +934,7 @@ void InsetMathNest::doDispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
case LFUN_MATH_INSERT: {
|
case LFUN_MATH_INSERT: {
|
||||||
recordUndo(cur, Undo::ATOMIC);
|
recordUndo(cur, Undo::ATOMIC);
|
||||||
if (cmd.argument() == "^" || cmd.argument() == "_") {
|
if (cmd.argument() == "^" || cmd.argument() == "_") {
|
||||||
std::string arg0 = lyx::to_utf8(docstring(1, cmd.argument()[0]));
|
interpretChar(cur, cmd.argument()[0]);
|
||||||
interpretChar(cur, arg0[0]);
|
|
||||||
} else
|
} else
|
||||||
cur.niceInsert(lyx::to_utf8(cmd.argument()));
|
cur.niceInsert(lyx::to_utf8(cmd.argument()));
|
||||||
break;
|
break;
|
||||||
@ -1169,7 +1162,7 @@ void InsetMathNest::lfunMouseRelease(LCursor & cur, FuncRequest & cmd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetMathNest::interpretChar(LCursor & cur, char c)
|
bool InsetMathNest::interpretChar(LCursor & cur, lyx::char_type c)
|
||||||
{
|
{
|
||||||
//lyxerr << "interpret 2: '" << c << "'" << endl;
|
//lyxerr << "interpret 2: '" << c << "'" << endl;
|
||||||
string save_selection;
|
string save_selection;
|
||||||
@ -1192,7 +1185,7 @@ bool InsetMathNest::interpretChar(LCursor & cur, char c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isalpha(c)) {
|
if (isalpha(c)) {
|
||||||
cur.activeMacro()->setName(name + c);
|
cur.activeMacro()->setName(name + lyx::to_ascii(docstring(1, c)));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1213,16 +1206,16 @@ bool InsetMathNest::interpretChar(LCursor & cur, char c)
|
|||||||
cur.niceInsert(MathAtom(new InsetMathComment));
|
cur.niceInsert(MathAtom(new InsetMathComment));
|
||||||
} else if (c == '#') {
|
} else if (c == '#') {
|
||||||
BOOST_ASSERT(cur.activeMacro());
|
BOOST_ASSERT(cur.activeMacro());
|
||||||
cur.activeMacro()->setName(name + c);
|
cur.activeMacro()->setName(name + lyx::to_ascii(docstring(1, c)));
|
||||||
} else {
|
} else {
|
||||||
cur.backspace();
|
cur.backspace();
|
||||||
cur.niceInsert(createInsetMath(string(1, c)));
|
cur.niceInsert(createInsetMath(lyx::to_ascii(docstring(1, c))));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// One character big delimiters. The others are handled in
|
// One character big delimiters. The others are handled in
|
||||||
// the other interpret() method.
|
// interpretString().
|
||||||
latexkeys const * l = in_word_set(name.substr(1));
|
latexkeys const * l = in_word_set(name.substr(1));
|
||||||
if (name[0] == '\\' && l && l->inset == "big") {
|
if (name[0] == '\\' && l && l->inset == "big") {
|
||||||
string delim;
|
string delim;
|
||||||
@ -1234,7 +1227,7 @@ bool InsetMathNest::interpretChar(LCursor & cur, char c)
|
|||||||
delim = "\\}";
|
delim = "\\}";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
delim = string(1, c);
|
delim = lyx::to_ascii(docstring(1, c));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (InsetMathBig::isBigInsetDelim(delim)) {
|
if (InsetMathBig::isBigInsetDelim(delim)) {
|
||||||
@ -1329,7 +1322,7 @@ bool InsetMathNest::interpretChar(LCursor & cur, char c)
|
|||||||
|
|
||||||
if (c == '{' || c == '}' || c == '&' || c == '$' || c == '#' ||
|
if (c == '{' || c == '}' || c == '&' || c == '$' || c == '#' ||
|
||||||
c == '%' || c == '_' || c == '^') {
|
c == '%' || c == '_' || c == '^') {
|
||||||
cur.niceInsert(createInsetMath(string(1, c)));
|
cur.niceInsert(createInsetMath(lyx::to_ascii(docstring(1, c))));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ protected:
|
|||||||
|
|
||||||
/// interpret \p c and insert the result at the current position of
|
/// interpret \p c and insert the result at the current position of
|
||||||
/// of \p cur. Return whether the cursor should stay in the formula.
|
/// of \p cur. Return whether the cursor should stay in the formula.
|
||||||
bool interpretChar(LCursor & cur, char c);
|
bool interpretChar(LCursor & cur, lyx::char_type c);
|
||||||
///
|
///
|
||||||
bool script(LCursor & cur, bool,
|
bool script(LCursor & cur, bool,
|
||||||
std::string const & save_selection = std::string());
|
std::string const & save_selection = std::string());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user