diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:31 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:31 -0800 |
commit | 5145dd3aa0c02c9fc496d1432fc4410674206e1d (patch) | |
tree | 540afc30c51da085f5bd8ec3f4c89f6496e7900d /html4each.scm | |
parent | 8466d8cfa486fb30d1755c4261b781135083787b (diff) | |
download | slib-5145dd3aa0c02c9fc496d1432fc4410674206e1d.tar.gz slib-5145dd3aa0c02c9fc496d1432fc4410674206e1d.zip |
Import Upstream version 3a2upstream/3a2
Diffstat (limited to 'html4each.scm')
-rw-r--r-- | html4each.scm | 22 |
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)))))))) |