RefChanger temporarily assigns a value to a non-const reference of any
kind. RefChanger provides a flexible and uniform generalisation of the various
scope guards previously derived from the old Changer class in MetricsInfo.h.
As before, a temporary assignment lasts as long as the Changer object lives. But
the new Changer is movable. In particular, contorsions are no longer needed to
change a private field. Special code can be moved into the appropriate classes,
and it is no longer necessary to create a new class for each specific use.
Syntax change:
FontSetChanger dummy(mi.base, value);
-> Changer dummy = mi.base.changeFontSet(value);
New function for generating arbitrary Changers:
Changer dummy = make_change(ref, val, condition);
Bugfix:
* Fix the display of \displaystyle{\substack{\frac{xyz}{}}} (missing style
change).
These were found by cppcheck:
Member variable 'x' is not initialized in the constructor.
The crash #9788 would not have happened if this had been done earlier.
http://bugzilla.lyx.org/show_bug.cgi?id=1527
* src/mathed/*.cpp:
- Track mode (math or text) when outputting latex code and
properly wrap commands that are in the wrong mode with
either \ensuremath or \lyxmathsym.
* src/mathed/MathParser.cpp:
- Parse \ensuremath and \lyxmathsym, such that exported latex
produces the same result when imported back.
- Replace latex commands with corresponding unicode symbols.
* src/Encoding.cpp:
- Implement Encodings::fromLaTeXCommand() for converting either
a single or a sequence of latex commands to unicode symbols.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25270 a592a061-630c-0410-9148-cb99ea01b6c8
Now support/* should have no dependencies on src/* anymore.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21851 a592a061-630c-0410-9148-cb99ea01b6c8