Skip to content

Commit 20adefd

Browse files
authored
Merge pull request #28 from samtsevich/recurring_blocks
Fix to make recurring blocks readable and writable
2 parents 65da0b4 + de9469d commit 20adefd

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

src/hsd/dict.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,13 @@ def open_tag(self, tagname, attrib, hsdattrib):
103103
self._parentblocks.append(self._curblock)
104104
self._curblock = {}
105105

106+
def retrieve_tag(self, tagname):
107+
tagname = tagname.strip()
108+
key = tagname.lower() if self._lower_tag_names else tagname
109+
for parentblock in self._parentblocks[-1::-1]:
110+
if key in parentblock:
111+
self._curblock.update(parentblock[key])
112+
break
106113

107114
def close_tag(self, tagname):
108115
attrib, hsdattrib = self._attribs.pop(-1)

src/hsd/parser.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ def _parse(self, line):
128128
self._closetag()
129129
self._after_equal_sign = False
130130
elif not self._inside_attrib:
131+
if before.strip().startswith("$"):
132+
self._eventhandler.retrieve_tag(before)
133+
before = ""
131134
self._buffer.append(before)
132135
elif before.strip():
133136
self._error(SYNTAX_ERROR, (self._currline, self._currline))

0 commit comments

Comments
 (0)