From 5ad9bc3951fcbecb5fcf7c1127e8f91e547fd37b Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Tue, 24 Feb 2009 15:18:57 -0400 Subject: Propagate commodity flags in costs sometimes If a commodity has never been seen before, and it is used in a cost amount, remember the display flags. --- src/amount.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/amount.cc b/src/amount.cc index 813cbac0..6f3306cc 100644 --- a/src/amount.cc +++ b/src/amount.cc @@ -932,17 +932,15 @@ bool amount_t::parse(std::istream& in, const parse_flags_t& flags) // Set the commodity's flags and precision accordingly - if (commodity_ && ! flags.has_flags(PARSE_NO_MIGRATE)) { + if (commodity_ && (newly_created || ! flags.has_flags(PARSE_NO_MIGRATE))) { commodity().add_flags(comm_flags); if (quantity->prec > commodity().precision()) commodity().set_precision(quantity->prec); } - - // Setup the amount's own flags - - if (flags.has_flags(PARSE_NO_MIGRATE)) + else if (flags.has_flags(PARSE_NO_MIGRATE)) { set_keep_precision(true); + } // Now we have the final number. Remove commas and periods, if // necessary. -- cgit v1.2.3