diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/amount.cc | 8 |
1 files changed, 3 insertions, 5 deletions
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. |