temporary `values' map so that account names are always properly
sorted in the subtotaled output view. As it was, they were being
reported in account creation order.
formats, simply replace the first one. Then, when --period is seen,
use the first date format as the template for what to pass to the
begin/end options.
market values are determined (was using the wrong commodity's
precision value).
(commodity_t::value): Fixed the market value calculation algorithm,
which was very broken (but only seemed to show up if the price history
was very small).
of ()/*+- as "inline math". This causes "$100.00 * 20" to be
turned into the equivalent value expression "({$100.00} * {20})".
It is a shorthand, at the expense of a little textual parsing
speed.
(parse_amount): Call `parse_inline_math' if appropriate.
(parse_entry): Support transactions that follow immediately after
the payee name, separated by two or more spaces. This makes it
possible -- when a basket account is being used -- to list off
entry transactions one per line.
(parse): Allow a basket account to be specified using the syntax
"A ACCOUNT". From that point on in the file, any single
transactions entries will be balanced against that account.
never update the binary cache (and don't create one if none was
there). This is because certain intermediary accounts get created
during generation of these reports, which should never be recorded in
the cache as actual accounts. Also, run the account filter both
before and after the budgeting and forecasting filters, to ensure that
only the accounts the user is interested in get included in the
report.
balance single transaction entries into it. Also, fixed two entry
balancing issues.
(finalize): If a "catch all" transaction (a transaction with no
amount) is present in an entry, it will now balance all unbalanced
quantities in the entry. Before its use was much more restricted.
(journal_t::add_entry): Set the "journal" pointer before calling
the finalize hooks, so that the finalizers have access to the
proposed journal the entry wishes to be added to (if it fails, the
pointer is cleared).