From 142006f88478622ce301f4c744592e851c3cca37 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Sun, 28 Apr 2019 12:47:39 -0400 Subject: reader: html: Add support for multiple top-level elements. Currently, if given a file containing more than one top-level elements, 'read-html-post will only return the first. --- haunt/reader.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/haunt/reader.scm b/haunt/reader.scm index 305bcee..37c390b 100644 --- a/haunt/reader.scm +++ b/haunt/reader.scm @@ -105,8 +105,17 @@ post." (define (read-html-post port) (values (read-metadata-headers port) - (match (xml->sxml port) - (('*TOP* sxml) sxml)))) + (let loop () + (let ((next-char (peek-char port))) + (cond + ((eof-object? next-char) + '()) + ((char-set-contains? char-set:whitespace next-char) + (read-char port) + (loop)) + (else + (match (xml->sxml port) + (('*TOP* sxml) (cons sxml (loop)))))))))) (define html-reader (make-reader (make-file-extension-matcher "html") -- cgit v1.2.3