rendered paste bodyIndex: /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
+ ))))