aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo
diff options
context:
space:
mode:
Diffstat (limited to 'src/guile/skribilo')
-rw-r--r--src/guile/skribilo/lib.scm6
-rw-r--r--src/guile/skribilo/skribe/api.scm18
2 files changed, 15 insertions, 9 deletions
diff --git a/src/guile/skribilo/lib.scm b/src/guile/skribilo/lib.scm
index 7a0c306..fc00896 100644
--- a/src/guile/skribilo/lib.scm
+++ b/src/guile/skribilo/lib.scm
@@ -111,7 +111,8 @@
`(define-markup (,markup :rest opts :key ident class loc)
(new markup
(markup ',markup)
- (ident (or ident (symbol->string (gensym ',markup))))
+ (ident (or ident (symbol->string
+ (gensym ',(symbol->string markup)))))
(loc loc)
(class class)
(required-options '())
@@ -126,7 +127,8 @@
`(define-markup (,markup :rest opts :key ident class loc)
(new container
(markup ',markup)
- (ident (or ident (symbol->string (gensym ',markup))))
+ (ident (or ident (symbol->string
+ (gensym ',(symbol->string markup)))))
(loc loc)
(class class)
(required-options '())
diff --git a/src/guile/skribilo/skribe/api.scm b/src/guile/skribilo/skribe/api.scm
index a300606..9a6369d 100644
--- a/src/guile/skribilo/skribe/api.scm
+++ b/src/guile/skribilo/skribe/api.scm
@@ -19,7 +19,8 @@
;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
;;; USA.
-(define-skribe-module (skribilo skribe api))
+(define-skribe-module (skribilo skribe api)
+ :replace (gensym))
;;; Author: Manuel Serrano
;;; Commentary:
@@ -32,13 +33,16 @@
;;; The contents of the file below are unchanged compared to Skribe 1.2d's
;;; `api.scm' file found in the `common' directory.
-(let ((gensym-orig gensym))
+(define %gensym-orig (module-ref the-root-module 'gensym))
+
+(define gensym
;; In Skribe, `gensym' accepts a symbol. Guile's `gensym' accepts only
- ;; strings.
- (set! gensym
- (lambda (obj)
- (gensym-orig (cond ((symbol? obj) (symbol->string obj))
- (else obj))))))
+ ;; strings (or no argument).
+ (lambda obj
+ (apply %gensym-orig
+ (cond ((null? obj) '())
+ ((symbol? (car obj)) (list (symbol->string (car obj))))
+ (else (skribe-error 'gensym "invalid argument" obj))))))
;*---------------------------------------------------------------------*/