Skip to content

Commit 00afd4e

Browse files
committed
fixes for recent Nim devel version, closes ba0f3/uibuilder.nim#3
1 parent d39ab81 commit 00afd4e

File tree

2 files changed

+15
-23
lines changed

2 files changed

+15
-23
lines changed

src/xml.nim

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -163,56 +163,48 @@ proc newNode(name: string, text = ""): XmlNode =
163163
new(result)
164164
result.name = name
165165
result.text = text
166+
result.attributes = newStringTable(modeCaseInsensitive)
167+
result.children = @[]
166168
167169
proc child*(node: XmlNode, name: string): XmlNode =
168170
## finds the first element of `node` with name `name`
169171
## returns `nil` on failure
170-
if not node.children.isNil:
171-
for n in node.children:
172-
if n.name == name:
173-
result = n
174-
break
172+
for n in node.children:
173+
if n.name == name:
174+
result = n
175+
break
175176
176177
proc `$`*(node: XmlNode): string =
177178
result = "<"
178179
result.add(node.name)
179-
if not node.attributes.isNil:
180-
for k, v in node.attributes.pairs:
181-
result.add(fmt" {k}=""{v}""")
182-
if node.text.len == 0 and node.children.isNil:
180+
181+
for k, v in node.attributes.pairs:
182+
result.add(fmt" {k}=""{v}""")
183+
if node.text.len == 0 and node.children.len == 0:
183184
result.add(" />")
184185
return
185186
elif node.text.len > 0:
186187
result.add(">" & node.text)
187188
else:
188189
result.add(">")
189190
190-
if not node.children.isNil:
191-
for child in node.children:
192-
result.add($child)
191+
for child in node.children:
192+
result.add($child)
193193
result.add("</" & node.name & ">")
194194
195195
196196
proc addChild*(node, child: XmlNode) =
197-
if node.children.isNil:
198-
node.children = @[]
199197
node.children.add(child)
200198
201199
proc hasAttr*(node: XmlNode, name: string): bool =
202200
## returns `true` if `node` has attribute `name`
203-
if node.attributes.isNil:
204-
result = false
205-
else:
206-
result = node.attributes.hasKey(name)
201+
result = node.attributes.hasKey(name)
207202
208203
proc attr*(node: XmlNode, name: string): string =
209204
## returns value of attribute `name`, returns "" on failure
210-
if not node.attributes.isNil:
211-
result = node.attributes.getOrDefault(name)
205+
result = node.attributes.getOrDefault(name)
212206
213207
proc setAttr(node: XmlNode, name, value: string) =
214-
if node.attributes.isNil:
215-
node.attributes = newStringTable(modeCaseInsensitive)
216208
node.attributes[name] = value
217209
218210
proc parseNode(tokens: seq[XmlToken], start = 0): (XmlNode, int) =

src/xml/selector.nim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ proc searchCombined(parent: XmlNode, selectors: seq[Selector], found: var seq[Xm
123123
matches = @[]
124124

125125
for j in starts:
126-
if parent.children.isNil:
126+
if parent.children.len == 0:
127127
continue
128128
for k in j..parent.children.len-1:
129129
var child = parent.children[k]

0 commit comments

Comments
 (0)