diff --git a/src/nix-log2xml/log2xml.cc b/src/nix-log2xml/log2xml.cc
index 9be3978a9..8a3cbc8c4 100644
--- a/src/nix-log2xml/log2xml.cc
+++ b/src/nix-log2xml/log2xml.cc
@@ -34,6 +34,8 @@ struct Decoder
void pushChar(char c);
void finishLine();
+
+ void decodeFile(istream & st);
};
@@ -158,16 +160,26 @@ void Decoder::finishLine()
}
+void Decoder::decodeFile(istream & st)
+{
+ int c;
+
+ cout << "" << endl;
+
+ while ((c = st.get()) != EOF) {
+ pushChar(c);
+ }
+
+ if (line.size()) finishLine();
+
+ while (level--) cout << "" << endl;
+
+ cout << "" << endl;
+}
+
+
int main(int argc, char * * argv)
{
Decoder dec;
- int c;
-
- cout << "" << endl;
-
- while ((c = getchar()) != EOF) {
- dec.pushChar(c);
- }
-
- cout << "" << endl;
+ dec.decodeFile(cin);
}