From 5d7c55bdcffbc326e775b0b9c881a01e44eee160 Mon Sep 17 00:00:00 2001 From: Ian Price Date: Sun, 25 Nov 2012 12:28:41 +0000 Subject: [PATCH] R6RS srfi library names should ignore first identifier after the :n * module/ice-9/r6rs-libraries.scm (resolve-r6rs-interface): (srfi :n name ids ...) -> (srfi srfi-n ids ...) * test-suite/tests/rnrs-libraries.test ("srfi"): Add test. --- module/ice-9/r6rs-libraries.scm | 8 +++++++- test-suite/tests/rnrs-libraries.test | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/module/ice-9/r6rs-libraries.scm b/module/ice-9/r6rs-libraries.scm index 019a6a7..428d951 100644 --- a/module/ice-9/r6rs-libraries.scm +++ b/module/ice-9/r6rs-libraries.scm @@ -40,7 +40,13 @@ (substring (symbol->string (syntax->datum #'colon-n)) 1))))) (resolve-r6rs-interface - #`(library (srfi #,srfi-n rest ... (version ...)))))) + (syntax-case #'(rest ...) () + (() + #`(library (srfi #,srfi-n (version ...)))) + ((name rest ...) + ;; SRFI 97 says that the first identifier after the colon-n + ;; is used for the libraries name, so it must be ignored. + #`(library (srfi #,srfi-n rest ... (version ...)))))))) ((library (name name* ... (version ...))) (and-map sym? #'(name name* ...)) diff --git a/test-suite/tests/rnrs-libraries.test b/test-suite/tests/rnrs-libraries.test index e961c28..9add98a 100644 --- a/test-suite/tests/rnrs-libraries.test +++ b/test-suite/tests/rnrs-libraries.test @@ -183,7 +183,9 @@ (with-test-prefix "srfi" (pass-if "renaming works" (eq? (resolve-interface '(srfi srfi-1)) - (resolve-r6rs-interface '(srfi :1))))) + (resolve-r6rs-interface '(srfi :1))) + (eq? (resolve-interface '(srfi srfi-1)) + (resolve-r6rs-interface '(srfi :1 lists))))) (with-test-prefix "macro" (pass-if "multiple clauses" -- 1.7.7.6