#include "MathStream.h"
+#include "MathFactory.h"
#include "MathData.h"
#include "MathExtern.h"
+#include "TexRow.h"
+
#include "support/docstring.h"
#include "support/RefChanger.h"
#include "support/textutils.h"
WriteStream::WriteStream(otexrowstream & os, bool fragile, bool latex,
OutputType output, Encoding const * encoding)
- : WriteStream(os)
-{
- fragile_ = fragile;
- latex_ = latex;
- output_ = output;
- encoding_ = encoding;
-}
-
-
-WriteStream::WriteStream(otexrowstream & os)
- : os_(os), fragile_(false), firstitem_(false), latex_(false),
- output_(wsDefault), pendingspace_(false), pendingbrace_(false),
+ : os_(os), fragile_(fragile), firstitem_(false), latex_(latex),
+ output_(output), pendingspace_(false), pendingbrace_(false),
textmode_(false), locked_(0), ascii_(0), canbreakline_(true),
- line_(0), encoding_(0), row_entry_(TexRow::row_none)
+ line_(0), encoding_(encoding),
+ row_entry_(make_unique<RowEntry>(TexRow::row_none))
{}
}
-Changer WriteStream::changeRowEntry(TexRow::RowEntry entry)
+Changer WriteStream::changeRowEntry(RowEntry entry)
{
- return make_change(row_entry_, entry);
+ return make_change(*row_entry_, entry);
}
bool WriteStream::startOuterRow()
{
- if (TexRow::isNone(row_entry_))
+ if (TexRow::isNone(*row_entry_))
return false;
- return texrow().start(row_entry_);
+ return texrow().start(*row_entry_);
}
}
+docstring convertDelimToXMLEscape(docstring const & name)
+{
+ if (name.size() == 1) {
+ char_type const c = name[0];
+ if (c == '<')
+ return from_ascii("<");
+ else if (c == '>')
+ return from_ascii(">");
+ else
+ return name;
+ }
+ MathWordList const & words = mathedWordList();
+ MathWordList::const_iterator it = words.find(name);
+ if (it != words.end()) {
+ docstring const escape = it->second.xmlname;
+ return escape;
+ }
+ LYXERR0("Unable to find `" << name <<"' in the mathWordList.");
+ return name;
+}
+
} // namespace lyx