From 8637dd6ccf7afc71d911cd66c4a55a1308596dbb Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Wed, 9 Jun 2010 06:45:07 -0400 Subject: New display flag AMOUNT_PRINT_ELIDE_COMMODITY_QUOTES This is used by reports like register and balance so that separated commodities without spaces in them needed be surrounded by quotes. It will still occur in most other places. Fixes #200 / F82CF11F-BFD9-4512-A562-202B04B68051 --- src/commodity.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/commodity.cc') diff --git a/src/commodity.cc b/src/commodity.cc index 9a757395..44d14c56 100644 --- a/src/commodity.cc +++ b/src/commodity.cc @@ -642,6 +642,17 @@ void commodity_t::parse_symbol(char *& p, string& symbol) throw_(amount_error, _("Failed to parse commodity")); } +void commodity_t::print(std::ostream& out, bool elide_quotes) const +{ + string sym = symbol(); + if (elide_quotes && has_flags(COMMODITY_STYLE_SEPARATED) && + ! sym.empty() && sym[0] == '"' && ! std::strchr(sym.c_str(), ' ')) { + DEBUG("foo", "contracting " << sym << " to " << string(sym, 1, sym.length() - 2)); + out << string(sym, 1, sym.length() - 2); + } else + out << sym; +} + bool commodity_t::valid() const { if (symbol().empty() && this != pool().null_commodity) { -- cgit v1.2.3