aboutsummaryrefslogtreecommitdiffstats
path: root/html4each.scm
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:31 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:31 -0800
commit5145dd3aa0c02c9fc496d1432fc4410674206e1d (patch)
tree540afc30c51da085f5bd8ec3f4c89f6496e7900d /html4each.scm
parent8466d8cfa486fb30d1755c4261b781135083787b (diff)
downloadslib-5145dd3aa0c02c9fc496d1432fc4410674206e1d.tar.gz
slib-5145dd3aa0c02c9fc496d1432fc4410674206e1d.zip
Import Upstream version 3a2upstream/3a2
Diffstat (limited to 'html4each.scm')
-rw-r--r--html4each.scm22
1 files changed, 17 insertions, 5 deletions
diff --git a/html4each.scm b/html4each.scm
index 02e666e..f115616 100644
--- a/html4each.scm
+++ b/html4each.scm
@@ -225,16 +225,28 @@
(reverse fields))
((eqv? #\> chr) (cons element (reverse fields)))
((char-whitespace? chr) (read-char port) (loop (peek-char port)))
- ((case (fscanf port "%[a-zA-Z0-9]%[=]%[-.a-zA-Z0-9]" name junk value)
+ ((case (fscanf port "%[a-zA-Z0-9]%[=]%[-.a-zA-Z0-9]"
+ name junk value)
((3 1) #t)
((2)
(case (peek-char port)
- ((#\") (eqv? 1 (fscanf port "\"%[^\"]\"" value)))
- ((#\') (eqv? 1 (fscanf port "'%[^']'" value)))
+ ((#\") (cond ((eqv? 1 (fscanf port "\"%[^\"]\"" value)))
+ ((eqv? #\" (peek-char port))
+ (read-char port)
+ (set! value ""))
+ (else #f)))
+ ((#\') (cond ((eqv? 1 (fscanf port "'%[^']'" value)))
+ ((eqv? #\' (peek-char port))
+ (read-char port)
+ (set! value ""))
+ (else #f)))
(else #f)))
(else #f))
(set! fields (cons (cons (string-ci->symbol name)
- (or (string->number value) value))
+ (if (string? value)
+ (or (string->number value) value)
+ value))
fields))
(loop (peek-char port)))
- (else (slib:warn 'htm-fields 'bad 'field htm) (reverse fields))))))))
+ (else (slib:warn 'htm-fields 'bad 'field htm)
+ (reverse fields))))))))