]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_inset.C
Fix to bug 2362: Deleting superscript also deletes subscript.
[lyx.git] / src / mathed / math_inset.C
index 9c6299646d46591fbb3ae9df6eecf3efaa27b5dd..6ed6a784e5d2dc1a607a6eec3d890e864a673c1a 100644 (file)
 #include "math_mathmlstream.h"
 #include "debug.h"
 
+#include "support/lstrings.h"
+
 using std::string;
 using std::ostream;
 using std::endl;
 
 
-MathInset::size_type MathInset::nargs() const
-{
-       return 0;
-}
-
-
-MathArray dummyCell;
-
 MathArray & MathInset::cell(idx_type)
 {
+       static MathArray dummyCell;
        lyxerr << "I don't have a cell 1" << endl;
        return dummyCell;
 }
@@ -38,91 +33,12 @@ MathArray & MathInset::cell(idx_type)
 
 MathArray const & MathInset::cell(idx_type) const
 {
+       static MathArray dummyCell;
        lyxerr << "I don't have a cell 2" << endl;
        return dummyCell;
 }
 
 
-MathInset::idx_type MathInset::index(row_type row, col_type col) const
-{
-       if (row != 0)
-               lyxerr << "illegal row: " << row << endl;
-       if (col != 0)
-               lyxerr << "illegal col: " << col << endl;
-       return 0;
-}
-
-void MathInset::substitute(MathMacro const &)
-{}
-
-
-bool MathInset::idxNext(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-bool MathInset::idxRight(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-bool MathInset::idxPrev(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-bool MathInset::idxLeft(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-bool MathInset::idxUpDown(idx_type &, pos_type &, bool, int) const
-{
-       return false;
-}
-
-
-bool MathInset::idxUpDown2(idx_type &, pos_type &, bool, int) const
-{
-       return false;
-}
-
-
-bool MathInset::idxFirst(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-bool MathInset::idxLast(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-bool MathInset::idxHome(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-bool MathInset::idxEnd(idx_type &, pos_type &) const
-{
-       return false;
-}
-
-
-void MathInset::getPos(idx_type, pos_type, int & x, int & y) const
-{
-       lyxerr << "MathInset::getPos() called directly!" << endl;
-       x = y = 0;
-}
-
-
 void MathInset::dump() const
 {
        lyxerr << "---------------------------------------------" << endl;
@@ -132,19 +48,6 @@ void MathInset::dump() const
 }
 
 
-bool MathInset::idxBetween(idx_type idx, idx_type from, idx_type to) const
-{
-       return from <= idx && idx <= to;
-}
-
-
-void MathInset::drawSelection(PainterInfo &,
-       idx_type, pos_type, idx_type, pos_type) const
-{
-       lyxerr << "MathInset::drawSelection() called directly!" << endl;
-}
-
-
 void MathInset::metricsT(TextMetricsInfo const &, Dimension &) const
 {
 #ifdef WITH_WARNINGS
@@ -164,8 +67,12 @@ void MathInset::drawT(TextPainter &, int, int) const
 
 void MathInset::write(WriteStream & os) const
 {
-       os << '\\' << name().c_str();
-       os.pendingSpace(true);
+       string const s = name();
+       os << '\\' << s.c_str();
+       // We need an extra ' ' unless this is a single-char-non-ASCII name
+       // or anything non-ASCII follows
+       if (s.size() != 1 || isalpha(s[0]))
+               os.pendingSpace(true);
 }
 
 
@@ -210,27 +117,9 @@ void MathInset::mathmlize(MathMLStream & os) const
 }
 
 
-int MathInset::plaintext(std::ostream &, OutputParams const &) const
-{
-       return 0;
-}
-
-
-int MathInset::linuxdoc(std::ostream &, OutputParams const &) const
-{
-       return 0;
-}
-
-
-int MathInset::docbook(std::ostream &, OutputParams const &) const
-{
-       return 0;
-}
-
-
 string const & MathInset::getType() const
 {
-       static string const t("none");
+       static string const t = "none";
        return t;
 }
 
@@ -247,9 +136,3 @@ ostream & operator<<(ostream & os, MathAtom const & at)
        at->write(wi);
        return os;
 }
-
-
-string MathInset::fileInsetLabel() const
-{
-       return "Formula";
-}