From 42215e3f8240aa1a9919b4110ec4c813c84391a8 Mon Sep 17 00:00:00 2001 From: fred Date: Fri, 4 Oct 1996 09:02:09 +0000 Subject: [PATCH] lilypond-0.0.1 --- tstream.cc | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 tstream.cc diff --git a/tstream.cc b/tstream.cc new file mode 100644 index 0000000000..78c9a72852 --- /dev/null +++ b/tstream.cc @@ -0,0 +1,64 @@ +#include +#include "tex.hh" +#include "tstream.hh" +#include "debug.hh" + +Tex_stream::Tex_stream(String filename) +{ + + os = new ofstream(filename); + if (!*os) + error("can't open " + filename); + nest_level = 0; + outputting_comment=false; +} + +Tex_stream::~Tex_stream() +{ + assert(nest_level == 0); + delete os; +} + +// print string. don't forget indent. +Tex_stream & +Tex_stream::operator<<(String s) +{ + for (const char *cp = s; *cp; cp++) { + if (outputting_comment) { + *os << *cp; + if (*cp == '\n') { + outputting_comment=false; + + } + continue; + } + switch(*cp) + { + case '%': + outputting_comment = true; + *os << *cp; + break; + case '{': + nest_level++; + *os << *cp; + break; + case '}': + nest_level--; + *os << *cp; + assert (nest_level >= 0); + /* FALL THROUGH */ + + case '\n': + *os << "%\n"; + *os << String(' ', nest_level); + break; + default: + *os << *cp; + break; + } + } + return *this; +} + + +/****************************************************************/ -- 2.39.5