r16661 - gnucash/branches/2.2/src/report/report-system - [r16651] provide some sane defaults for exchange functions. a very hackish fix to #487572

Andreas Köhler andi5 at cvs.gnucash.org
Sat Dec 15 18:33:49 EST 2007


Author: andi5
Date: 2007-12-15 18:33:49 -0500 (Sat, 15 Dec 2007)
New Revision: 16661
Trac: http://svn.gnucash.org/trac/changeset/16661

Modified:
   gnucash/branches/2.2/src/report/report-system/commodity-utilities.scm
Log:
[r16651] provide some sane defaults for exchange functions. a very hackish fix to #487572


Modified: gnucash/branches/2.2/src/report/report-system/commodity-utilities.scm
===================================================================
--- gnucash/branches/2.2/src/report/report-system/commodity-utilities.scm	2007-12-15 22:49:10 UTC (rev 16660)
+++ gnucash/branches/2.2/src/report/report-system/commodity-utilities.scm	2007-12-15 23:33:49 UTC (rev 16661)
@@ -828,8 +828,19 @@
     ((pricedb-nearest) (lambda (foreign domestic)
 			(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
 ;; the value of 'source-option', whose possible values are set in
@@ -858,8 +869,14 @@
     ((pricedb-latest) (lambda (foreign domestic date)
 		       (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
+       ))))
 
 
 



More information about the gnucash-changes mailing list