about summary refs log tree commit diff stats
path: root/src/css
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2022-01-29 20:25:27 +0100
committerbptato <nincsnevem662@gmail.com>2022-01-29 20:26:34 +0100
commitfb017f273dab1d63764269ca02700316919522f4 (patch)
treede19963fc6a3e67d6d9d97833cd262bd2ecd6ed5 /src/css
parent5c19adf246650306eaee3605b7b9fc47a6ca73fb (diff)
downloadchawan-fb017f273dab1d63764269ca02700316919522f4.tar.gz
Implement forms
Note: for now, only input tags are supported. Also the implementation is
extremely hacky and needs refactoring...
But it works, I think.
Diffstat (limited to 'src/css')
-rw-r--r--src/css/parser.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/css/parser.nim b/src/css/parser.nim
index 0277bf41..1db94958 100644
--- a/src/css/parser.nim
+++ b/src/css/parser.nim
@@ -374,6 +374,8 @@ proc consumeComments(state: var CSSTokenizerState) =
 
 proc consumeToken(state: var CSSTokenizerState): CSSToken =
   state.consumeComments()
+  if not state.has():
+    return
   let r = state.consume()
   case r
   of Rune('\n'), Rune('\t'), Rune(' '), Rune('\f'), Rune('\r'):
@@ -456,7 +458,9 @@ proc tokenizeCSS*(inputStream: Stream): seq[CSSParsedItem] =
   state.stream = inputStream
   state.buf = state.stream.readLine().toRunes()
   while state.has():
-    result.add(state.consumeToken())
+    let tok = state.consumeToken()
+    if tok != nil:
+      result.add(tok)
 
   inputStream.close()