r19079 - gnucash/trunk/src/scm - Bug #615168: Don't define hash-fold for guile 2.x

Christian Stimming cstim at code.gnucash.org
Tue Apr 27 16:46:46 EDT 2010


Author: cstim
Date: 2010-04-27 16:46:46 -0400 (Tue, 27 Apr 2010)
New Revision: 19079
Trac: http://svn.gnucash.org/trac/changeset/19079

Modified:
   gnucash/trunk/src/scm/main.scm
Log:
Bug #615168: Don't define hash-fold for guile 2.x

Patch by Andy Wingo.

* src/scm/main.scm (hash-fold): Only do the conditional hash-fold dance
  if we don't have guile 2.0. (Definitions in expression context are
  actually invalid Scheme, but older Guiles are more permissive.)

Modified: gnucash/trunk/src/scm/main.scm
===================================================================
--- gnucash/trunk/src/scm/main.scm	2010-04-27 20:46:25 UTC (rev 19078)
+++ gnucash/trunk/src/scm/main.scm	2010-04-27 20:46:46 UTC (rev 19079)
@@ -93,15 +93,18 @@
        (b -1)
        (else 0))))
 
-(if (not (defined? 'hash-fold))
-    (define (hash-fold proc init table)
-      (for-each 
-       (lambda (bin)
-         (for-each 
-          (lambda (elt)
-            (set! init (proc (car elt) (cdr elt) init)))
-          bin))
-       (vector->list table))))
+(cond-expand
+ (guile-2)
+ (else
+  (if (not (defined? 'hash-fold))
+      (define (hash-fold proc init table)
+        (for-each 
+         (lambda (bin)
+           (for-each 
+            (lambda (elt)
+              (set! init (proc (car elt) (cdr elt) init)))
+            bin))
+         (vector->list table))))))
 
 (define (string-join lst joinstr)
   ;; This should avoid a bunch of unnecessary intermediate string-appends.



More information about the gnucash-changes mailing list