Index: /gnucash/trunk/src/report/report-system/commodity-utilities.scm =================================================================== --- /gnucash/trunk/src/report/report-system/commodity-utilities.scm (revision 15647) +++ /gnucash/trunk/src/report/report-system/commodity-utilities.scm (revision 16651) @@ -829,6 +829,17 @@ (gnc:exchange-by-pricedb-nearest foreign domestic to-date-tp))) - (else (gnc:warn "gnc:case-exchange-fn: bad price-source value: " - source-option)))) + (else + (begin + ;; FIX-ME + ;; this is a hack to prevent report crashing if a report + ;; implements source-options that aren't fully implemented. We + ;; return a reasonably sane fallback function: nearest. + ;; + ;; known to be missing: pricedb-latest-before + (gnc:warn "gnc:case-exchange-fn: bad price-source value: " + source-option " using pricedb-nearest.") + (lambda (foreign domestic) + (gnc:exchange-by-pricedb-nearest + foreign domestic to-date-tp)))))) ;; Return a ready-to-use function. Which one to use is determined by @@ -859,6 +870,12 @@ (gnc:exchange-by-pricedb-latest foreign domestic))) ((pricedb-nearest) gnc:exchange-by-pricedb-nearest) - (else (gnc:warn "gnc:case-exchange-time-fn: bad price-source value: " - source-option)))) + (else + (begin + (gnc:warn "gnc:case-exchange-time-fn: bad price-source value: " + source-option " using pricedb-nearest.") + ;; FIX-ME another hack to prevent report crashing when an + ;; unimplemented source-option comes through + gnc:exchange-by-pricedb-nearest + ))))