summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/amount.cc8
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.