summaryrefslogtreecommitdiff
path: root/src/output.cc
diff options
context:
space:
mode:
authorMichael Budde <mbudde@gmail.com>2018-01-25 19:21:53 +0100
committerMichael Budde <mbudde@gmail.com>2018-01-25 19:27:24 +0100
commit6b998aee1023112f27cd2d34d85b189714a944e0 (patch)
tree06b210f502cc76fda5b6f40ca187c4ff15f21935 /src/output.cc
parentb3b72cbea23a69bcbf7a30ca34471c72c07370e4 (diff)
downloadfork-ledger-6b998aee1023112f27cd2d34d85b189714a944e0.tar.gz
fork-ledger-6b998aee1023112f27cd2d34d85b189714a944e0.tar.bz2
fork-ledger-6b998aee1023112f27cd2d34d85b189714a944e0.zip
Add support for --prepend-format in accounts command
Add support for the `--prepend-format` and `--prepend-width` options in the `accounts` command.
Diffstat (limited to 'src/output.cc')
-rw-r--r--src/output.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/output.cc b/src/output.cc
index 2a8c8201..1b612c12 100644
--- a/src/output.cc
+++ b/src/output.cc
@@ -282,8 +282,23 @@ void format_accounts::operator()(account_t& account)
void report_accounts::flush()
{
std::ostream& out(report.output_stream);
+ format_t prepend_format;
+ std::size_t prepend_width;
+
+ if (report.HANDLED(prepend_format_)) {
+ prepend_format.parse_format(report.HANDLER(prepend_format_).str());
+ prepend_width = report.HANDLED(prepend_width_)
+ ? lexical_cast<std::size_t>(report.HANDLER(prepend_width_).str())
+ : 0;
+ }
foreach (accounts_pair& entry, accounts) {
+ if (prepend_format) {
+ bind_scope_t bound_scope(report, *entry.first);
+ out.width(static_cast<std::streamsize>(prepend_width));
+ out << prepend_format(bound_scope);
+ }
+
if (report.HANDLED(count))
out << entry.second << ' ';
out << *entry.first << '\n';