summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2012-03-16 15:31:30 -0500
committerJohn Wiegley <johnw@newartisans.com>2012-03-16 15:31:30 -0500
commit00ff141ee75f854d39e78fbf6eda5869a3c4a70f (patch)
treeb2f15453d52d5b153896d3ca2bef7363b2f82173
parent630585599786427e25d9758638ff3b7d74680b4f (diff)
downloadfork-ledger-00ff141ee75f854d39e78fbf6eda5869a3c4a70f.tar.gz
fork-ledger-00ff141ee75f854d39e78fbf6eda5869a3c4a70f.tar.bz2
fork-ledger-00ff141ee75f854d39e78fbf6eda5869a3c4a70f.zip
Always close the last report output stream
Should fix #701
-rw-r--r--src/global.h5
-rw-r--r--src/main.cc1
-rw-r--r--src/report.h4
3 files changed, 10 insertions, 0 deletions
diff --git a/src/global.h b/src/global.h
index 392b03a9..0c11e025 100644
--- a/src/global.h
+++ b/src/global.h
@@ -56,6 +56,11 @@ public:
global_scope_t(char ** envp);
~global_scope_t();
+ void quick_close() {
+ if (! report_stack.empty())
+ report_stack.front().quick_close();
+ }
+
virtual string description() {
return _("global scope");
}
diff --git a/src/main.cc b/src/main.cc
index dc0798e3..9d2ba311 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -212,6 +212,7 @@ int main(int argc, char * argv[], char * envp[])
} else
#endif
{
+ global_scope->quick_close();
INFO("Ledger ended"); // let global_scope leak!
}
diff --git a/src/report.h b/src/report.h
index 280b2f48..aca4f466 100644
--- a/src/report.h
+++ b/src/report.h
@@ -125,6 +125,10 @@ public:
output_stream.close();
}
+ void quick_close() {
+ output_stream.close();
+ }
+
virtual string description() {
return _("current report");
}