From ea289f83d9f7f12fa35cd108ba80678847c9c41d Mon Sep 17 00:00:00 2001 From: Andrew Dona-Couch Date: Mon, 17 Aug 2020 01:43:31 -0400 Subject: [PATCH] svdpatch: create fields element if register has no fields --- patch/svdpatch.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/patch/svdpatch.py b/patch/svdpatch.py index 7d75c1c..7486081 100644 --- a/patch/svdpatch.py +++ b/patch/svdpatch.py @@ -376,10 +376,13 @@ def process_peripheral_add_int(ptag, iname, iadd): def process_register_add(rtag, fname, fadd): """Add fname given by fadd to rtag.""" parent = rtag.find('fields') - for ftag in parent.iter('field'): - if ftag.find('name').text == fname: - raise SvdPatchError('register {} already has a field {}' - .format(rtag.find('name').text, fname)) + if parent is None: + parent = ET.SubElement(rtag, 'fields') + else: + for ftag in parent.iter('field'): + if ftag.find('name').text == fname: + raise SvdPatchError('register {} already has a field {}' + .format(rtag.find('name').text, fname)) fnew = ET.SubElement(parent, 'field') ET.SubElement(fnew, 'name').text = fname for (key, value) in fadd.items(): -- 2.48.1