~ chicken-core (chicken-5) c9ec6c3e3f99428d5136b63fd703c295a32b00aa


commit c9ec6c3e3f99428d5136b63fd703c295a32b00aa
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Sep 17 22:59:59 2010 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Sep 17 22:59:59 2010 +0200

    3rd arg to hash-table-update\! is optional

diff --git a/manual/Unit srfi-69 b/manual/Unit srfi-69
index a584af57..80fc3fef 100644
--- a/manual/Unit srfi-69	
+++ b/manual/Unit srfi-69	
@@ -172,12 +172,12 @@ is equivalent to
 
 ==== hash-table-update!
 
-<procedure>(hash-table-update! HASH-TABLE KEY [UPDATE-FUNCTION [DEFAULT-VALUE-FUNCTION]])</procedure>
+<procedure>(hash-table-update! HASH-TABLE KEY UPDATE-FUNCTION [DEFAULT-VALUE-FUNCTION])</procedure>
 
 Sets or replaces the {{VALUE}} for {{KEY}} in the {{HASH-TABLE}}.
 
 The {{UPDATE-FUNCTION}} takes the existing {{VALUE}} for {{KEY}} and returns
-the new {{VALUE}}. The default is {{identity}}
+the new {{VALUE}}.
 
 The {{DEFAULT-VALUE-FUNCTION}} is called when the entry for {{KEY}} is missing.
 The default uses the {{(hash-table-initial-value)}}, if provided. Otherwise
diff --git a/srfi-69.scm b/srfi-69.scm
index a46acb0a..6958e3d8 100644
--- a/srfi-69.scm
+++ b/srfi-69.scm
@@ -655,14 +655,16 @@
 (define hash-table-update!
   (let ([core-eq? eq?] )
     (lambda (ht key
-	     #!optional (func (lambda (x) x))
-		        (thunk
-		         (let ([thunk (##sys#slot ht 9)])
-		           (or thunk
-			       (lambda ()
-			         (##sys#signal-hook #:access-error
-			          'hash-table-update!
-			          "hash-table does not contain key" key ht))))))
+		(func (lambda (x) x))
+		#!optional
+		(thunk
+		 (let ([thunk (##sys#slot ht 9)])
+		   (or thunk
+		       (lambda ()
+			 (##sys#signal-hook
+			  #:access-error
+			  'hash-table-update!
+			  "hash-table does not contain key" key ht))))))
       (##sys#check-structure ht 'hash-table 'hash-table-update!)
       (##sys#check-closure func 'hash-table-update!)
       (##sys#check-closure thunk 'hash-table-update!)
Trap