Allow HTML:COMMENT to take anything that satisfies XML-CHAR-DATA? as
authorChris Hanson <org/chris-hanson/cph>
Sun, 18 Jul 2004 04:34:06 +0000 (04:34 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sun, 18 Jul 2004 04:34:06 +0000 (04:34 +0000)
an argument.  Also, be a little smarter about when to add leading or
trailing whitespace.

v7/src/xml/xhtml.scm
v7/src/xml/xml.pkg

index 1a7ec8cbaa37c8da4d8e84d0690b563aa18a3e37..a2f3921ad20ad51516af90a1a959e2360eb516b0 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: xhtml.scm,v 1.4 2004/07/15 19:50:43 cph Exp $
+$Id: xhtml.scm,v 1.5 2004/07/18 04:34:00 cph Exp $
 
 Copyright 2002,2003,2004 Massachusetts Institute of Technology
 
@@ -277,4 +277,13 @@ USA.
          ""))))
 
 (define (html:comment . strings)
-  (make-xml-comment (string-append " " (apply string-append strings) " ")))
\ No newline at end of file
+  (make-xml-comment
+   (let* ((s (apply string-append (map canonicalize-char-data strings)))
+         (ws (utf8-string->wide-string s))
+         (n (wide-string-length ws)))
+     (if (fix:> n 0)
+        (string-append
+         (if (char-whitespace? (wide-string-ref ws 0)) "" " ")
+         s
+         (if (char-whitespace? (wide-string-ref ws (fix:- n 1))) "" " "))
+        " "))))
\ No newline at end of file
index 0abe67572c14a61631662b6faba6c4a7b4c1d8e7..8fedd0f680f9fbed918e8118fb0fd187c8b509d6 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: xml.pkg,v 1.43 2004/07/12 19:08:36 cph Exp $
+$Id: xml.pkg,v 1.44 2004/07/18 04:34:06 cph Exp $
 
 Copyright 2001,2002,2003,2004 Massachusetts Institute of Technology
 
@@ -266,7 +266,9 @@ USA.
          %make-xml-parameter-!entity
          %make-xml-parameter-entity-ref
          %make-xml-processing-instructions
-         %make-xml-unparsed-!entity))
+         %make-xml-unparsed-!entity)
+  (export (runtime xml html)
+         canonicalize-char-data))
 
 (define-package (runtime xml parser)
   (files "xml-chars" "xml-parser")