~ chicken-core (chicken-5) f7f3923319f8e893610409725316bf7e49a491be


commit f7f3923319f8e893610409725316bf7e49a491be
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Mon Jun 24 20:17:26 2019 +1200
Commit:     Peter Bex <peter@more-magic.net>
CommitDate: Sat Jun 29 12:01:11 2019 +0200

    Fix csi's "report" feature and add guard for `keyword-style' parameter
    
    The interpreter's "report" command (,r) was a casualty of db2608b1f,
    which causes `symbol->string' to fail when passed a keyword.
    
    Update that code to use `keyword->string' and add a guard procedure to
    the keyword-style parameter to ensure that it is always a keyword.
    
    Signed-off-by: Peter Bex <peter@more-magic.net>

diff --git a/csi.scm b/csi.scm
index 17c6d1a1..20769369 100644
--- a/csi.scm
+++ b/csi.scm
@@ -508,7 +508,7 @@ EOF
                     (installation-repository)
 		    (repository-path)
 		    ##sys#include-pathnames
-		    (symbol->string (keyword-style))
+		    (keyword->string (keyword-style))
 		    (shorten (vector-ref sinfo 0))
 		    (shorten (vector-ref sinfo 1))
 		    (vector-ref sinfo 2)
diff --git a/library.scm b/library.scm
index 13fd9afb..5f03ba02 100644
--- a/library.scm
+++ b/library.scm
@@ -3677,10 +3677,12 @@ EOF
   (##sys#read-error port "invalid `#...' read syntax" n) )
 
 (set! chicken.base#case-sensitive (make-parameter #t))
-(set! chicken.base#keyword-style (make-parameter #:suffix))
 (set! chicken.base#parentheses-synonyms (make-parameter #t))
 (set! chicken.base#symbol-escape (make-parameter #t))
 
+(set! chicken.base#keyword-style
+  (make-parameter #:suffix (lambda (x) (##sys#check-keyword x 'keyword-style) x)))
+
 (define ##sys#current-read-table (make-parameter (##sys#make-structure 'read-table #f #f #f)))
 
 (define ##sys#read-warning
Trap