From 8edb4f839b6ebf90fa435fc7441aec4688a95fcc Mon Sep 17 00:00:00 2001 From: Christian Stimming Date: Tue, 27 Apr 2010 20:46:46 +0000 Subject: [PATCH] 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.) git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19079 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/scm/main.scm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/scm/main.scm b/src/scm/main.scm index ef659ffc29..0920b42a5d 100644 --- a/src/scm/main.scm +++ b/src/scm/main.scm @@ -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.