summaryrefslogtreecommitdiff
path: root/src/commodity.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/commodity.cc')
-rw-r--r--src/commodity.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/commodity.cc b/src/commodity.cc
index 1c849624..08252cf4 100644
--- a/src/commodity.cc
+++ b/src/commodity.cc
@@ -638,6 +638,12 @@ void annotation_t::parse(std::istream& in)
throw_(amount_error, _("Commodity specifies more than one price"));
in.get(c);
+ c = peek_next_nonws(in);
+ if (c == '=') {
+ in.get(c);
+ add_flags(ANNOTATION_PRICE_FIXATED);
+ }
+
READ_INTO(in, buf, 255, c, c != '}');
if (c == '}')
in.get(c);
@@ -761,7 +767,10 @@ void annotated_commodity_t::write_annotations(std::ostream& out) const
void annotation_t::print(std::ostream& out, bool keep_base) const
{
if (price)
- out << " {" << (keep_base ? *price : price->unreduced()).rounded() << '}';
+ out << " {"
+ << (has_flags(ANNOTATION_PRICE_FIXATED) ? "=" : "")
+ << (keep_base ? *price : price->unreduced()).rounded()
+ << '}';
if (date)
out << " [" << format_date(*date, string("%Y/%m/%d")) << ']';