diff options
author | 2020-12-30 12:53:32 +1100 | |
---|---|---|
committer | 2020-12-30 12:53:32 +1100 | |
commit | ca19c18de2e943f1a7947e8167533b92cb5259a7 (patch) | |
tree | 690198469b804e8ce2eb9791cf17ff9f655cf1e6 /docs/release/scripts/build/complay.py | |
parent | 6c75c1ae77eec4c7350aed7e824fe19d6b38e8bc (diff) |
Release files for 0.227tag227
Diffstat (limited to 'docs/release/scripts/build/complay.py')
-rw-r--r-- | docs/release/scripts/build/complay.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/docs/release/scripts/build/complay.py b/docs/release/scripts/build/complay.py index 6903418e242..445d25fe8ab 100644 --- a/docs/release/scripts/build/complay.py +++ b/docs/release/scripts/build/complay.py @@ -299,6 +299,16 @@ class LayoutChecker(Minifyer): self.have_color.append({ }) def checkViewItem(self, name, attrs): + if 'id' in attrs: + if not attrs['id']: + self.handleError('Element %s attribute id is empty' % (name, )) + elif not self.VARPATTERN.match(attrs['id']): + if attrs['id'] in self.item_ids: + self.handleError('Element %s has duplicate id "%s" (previous %s)' % (name, attrs['id'], self.item_ids[attrs['id']])) + else: + self.item_ids[attrs['id']] = self.formatLocation() + if self.repeat_depth[-1]: + self.handleError('Element %s attribute id "%s" in repeat contains no parameter references' % (name, attrs['id'])) if ('blend' in attrs) and (attrs['blend'] not in self.BLENDMODES) and not self.VARPATTERN.match(attrs['blend']): self.handleError('Element %s attribute blend "%s" is unsupported' % (name, attrs['blend'])) if 'inputtag' in attrs: @@ -340,6 +350,7 @@ class LayoutChecker(Minifyer): long(attrs['version']) except: self.handleError('Element mamelayout attribute version "%s" is not an integer' % (attrs['version'], )) + self.have_script = None self.variable_scopes.append({ }) self.repeat_depth.append(0) self.handlers.append((self.layoutStartHandler, self.layoutEndHandler)) @@ -379,6 +390,7 @@ class LayoutChecker(Minifyer): self.handleError('Element group has duplicate name (previous %s)' % (self.groups[attrs['name']], )) self.handlers.append((self.groupViewStartHandler, self.groupViewEndHandler)) self.variable_scopes.append({ }) + self.item_ids = { } self.repeat_depth.append(0) self.have_bounds.append(None) elif ('view' == name) and (not self.repeat_depth[-1]): @@ -389,9 +401,10 @@ class LayoutChecker(Minifyer): if attrs['name'] not in self.views: self.views[attrs['name']] = self.formatLocation() elif not self.VARPATTERN.match(attrs['name']): - self.handleError('Element view has duplicate name (previous %s)' % (self.views[attrs['name']], )) + self.handleError('Element view has duplicate name "%s" (previous %s)' % (attrs['name'], self.views[attrs['name']])) self.handlers.append((self.groupViewStartHandler, self.groupViewEndHandler)) self.variable_scopes.append({ }) + self.item_ids = { } self.repeat_depth.append(0) self.have_bounds.append(None) elif 'repeat' == name: @@ -407,6 +420,10 @@ class LayoutChecker(Minifyer): self.checkParameter(attrs) self.ignored_depth = 1 elif ('script' == name) and (not self.repeat_depth[-1]): + if self.have_script is None: + self.have_script = self.formatLocation() + else: + self.handleError('Duplicate script element (previous %s)' % (self.have_script, )) self.ignored_depth = 1 else: self.handleError('Encountered unexpected element %s' % (name, )) @@ -427,6 +444,7 @@ class LayoutChecker(Minifyer): self.handleError('Group "%s" not found (first referenced at %s)' % (group, self.referenced_groups[group])) if not self.views: self.handleError('No view elements found') + del self.have_script self.handlers.pop() def elementStartHandler(self, name, attrs): @@ -602,6 +620,7 @@ class LayoutChecker(Minifyer): elif self.repeat_depth[-1]: self.repeat_depth[-1] -= 1 else: + del self.item_ids self.current_collections = None self.repeat_depth.pop() self.have_bounds.pop() |