}
os_.put(c);
if (c == '\n') {
- ++lines_;
+ texrow_.newline();
canbreakline_ = false;
} else
canbreakline_ = true;
if (ots.canBreakLine()) {
ots.os().put('\n');
ots.canBreakLine(false);
- ots.addLines(1);
+ ots.texrow().newline();
}
ots.protectSpace(false);
return ots;
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;
}
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;
}
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;
}
}
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);
}