It lets you specify a fixed cost for a duration of a ledger file, for
example:
fixed ecu $2
2008/01/01 income
assets🏦checking 1 ecu
income:salary
end fixed
This is equivalent to:
2008/01/01 income
assets🏦checking 1 ecu {=$2}
income:salary
These options allow the user to specify what accounts names should be
used for these two types of accounts. They are optional, and default
to:
--unrealized-gains "Equity:Unrealized Gains"
--unrealized-losses "Equity:Unrealized Losses"
These are intended to be set in one's ~/.ledgerrc file.
Lots of symbol_scope_t throwaway objects get created during value
expression calculation, and 99% of them are never used. Therefore, the
std::map which each contains is now within an optional<> wrapper, so
that no constructor happens unless one is actually used.
When this option is on, then in balance report which show market values,
any gains or losses in value will be balanced into a pair of accounts
called Equity:Unrealized Gains and Equity:Unrealized Losses.
This is used to define the beginning/ending ranges of the time period,
before it becomes fixed (by calling stabilize()) and then sets the
values of start and end.
date_specifier_t ::
This is like a plain date_t, except it knows what wasn't specified.
For example, if 2008/06 is parsed, it becomes date_specifier_t which
knows that no day was given. If you ask for the begin() date of the
specifier, it will be 2008/06/01; the end() date (which is
exclusive) will be 2008/07/01.
date_range_t ::
A date range is a range of two specifiers, either of which (but not
both) may be omitted. This makes it possible to represent
expressions like "from june to july", where no day or year is given.
The exact dates will be inferred by using the current year, and
fixing the range from YEAR/06/01 to YEAR/07/01. That is, the range
goes from the begin() of one date specifier to the begin() of the
other.
date_specifier_or_range_t ::
A variadic type that can be either a date_specifier_t or a
date_range_t. It's just a wrapper to represent the fact that ranges
can be implicit via specifiers (such as, "in june"), or explicit via
ranges ("since 2008").