]> git.lyx.org Git - lyx.git/blobdiff - src/support/docstream.cpp
Fix samba related crashes
[lyx.git] / src / support / docstream.cpp
index 56472058c56e3a0c713785a585ddc39f2a484742..f5cf297c12644eb324e58e5e37acb17fb14fdd84 100644 (file)
@@ -412,7 +412,7 @@ void otexstream::put(char_type const & c)
        }
        os_.put(c);
        if (c == '\n') {
-               ++lines_;
+               texrow_.newline();
                canbreakline_ = false;
        } else
                canbreakline_ = true;
@@ -428,7 +428,7 @@ otexstream & operator<<(otexstream & ots, BreakLine)
        if (ots.canBreakLine()) {
                ots.os().put('\n');
                ots.canBreakLine(false);
-               ots.addLines(1);
+               ots.texrow().newline();
        }
        ots.protectSpace(false);
        return ots;
@@ -440,18 +440,18 @@ otexstream & operator<<(otexstream & ots, SafeBreakLine)
        if (ots.canBreakLine()) {
                ots.os() << "%\n";
                ots.canBreakLine(false);
-               ots.addLines(1);
+               ots.texrow().newline();
        }
        ots.protectSpace(false);
        return ots;
 }
 
 
-otexstream & operator<<(otexstream & ots, SetEnc e)
+otexstream & operator<<(otexstream & ots, odocstream_manip pf)
 {
-       ots.os() << e;
-       ots.canBreakLine(true);
-       ots.protectSpace(false);
+       ots.os() << pf;
+       if (pf == static_cast<odocstream_manip>(endl))
+               ots.texrow().newline();
        return ots;
 }
 
@@ -470,7 +470,7 @@ otexstream & operator<<(otexstream & ots, docstring const & s)
                ots.protectSpace(false);
        }
        ots.os() << s;
-       ots.addLines(count(s.begin(), s.end(), '\n'));
+       ots.texrow().newlines(count(s.begin(), s.end(), '\n'));
        ots.canBreakLine(s[len - 1] != '\n');
        return ots;
 }
@@ -490,7 +490,7 @@ otexstream & operator<<(otexstream & ots, char const * s)
                ots.protectSpace(false);
        }
        ots.os() << s;
-       ots.addLines(count(s, s + len, '\n'));
+       ots.texrow().newlines(count(s, s + len, '\n'));
        ots.canBreakLine(s[len - 1] != '\n');
        return ots;
 }
@@ -505,37 +505,26 @@ otexstream & operator<<(otexstream & ots, char c)
        }
        ots.os() << c;
        if (c == '\n')
-               ots.addLines(1);
+               ots.texrow().newline();
        ots.canBreakLine(c != '\n');
        return ots;
 }
 
 
-otexstream & operator<<(otexstream & ots, double d)
+template <typename Type>
+otexstream & operator<<(otexstream & ots, Type value)
 {
-       ots.os() << d;
+       ots.os() << value;
        ots.canBreakLine(true);
        ots.protectSpace(false);
        return ots;
 }
 
-
-otexstream & operator<<(otexstream & ots, int i)
-{
-       ots.os() << i;
-       ots.canBreakLine(true);
-       ots.protectSpace(false);
-       return ots;
-}
-
-
-otexstream & operator<<(otexstream & ots, unsigned int i)
-{
-       ots.os() << i;
-       ots.canBreakLine(true);
-       ots.protectSpace(false);
-       return ots;
-}
+template otexstream & operator<< <SetEnc>(otexstream & os, SetEnc);
+template otexstream & operator<< <double>(otexstream &, double);
+template otexstream & operator<< <int>(otexstream &, int);
+template otexstream & operator<< <unsigned int>(otexstream &, unsigned int);
+template otexstream & operator<< <unsigned long>(otexstream &, unsigned long);
 
 }