diff options
author | Daniel Veillard <veillard@src.gnome.org> | 2004-01-22 17:40:16 +0000 |
---|---|---|
committer | Daniel Veillard <veillard@src.gnome.org> | 2004-01-22 17:40:16 +0000 |
commit | 8b83712f687139e902640f7a5ad2c8f7b7793ad5 (patch) | |
tree | 048057f229d01dde9c40471dac16f8731ff977de | |
parent | 618a5d5c00494b7cc5b500c91782b34a76609049 (diff) | |
download | libxslt-8b83712f687139e902640f7a5ad2c8f7b7793ad5.tar.gz libxslt-8b83712f687139e902640f7a5ad2c8f7b7793ad5.tar.bz2 libxslt-8b83712f687139e902640f7a5ad2c8f7b7793ad5.zip |
applied patch from Stefan Kost to fix behaviour on unknown element from
* libxslt/xslt.c: applied patch from Stefan Kost to fix
behaviour on unknown element from the XSLT namespace.
* python/generator.py: applied patch from Stephane bidoul
to export enums in the bindings.
Daniel
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | libxslt/xslt.c | 13 | ||||
-rwxr-xr-x | python/generator.py | 22 |
3 files changed, 38 insertions, 4 deletions
@@ -1,3 +1,10 @@ +Thu Jan 22 18:42:03 CET 2004 Daniel Veillard <daniel@veillard.com> + + * libxslt/xslt.c: applied patch from Stefan Kost to fix + behaviour on unknown element from the XSLT namespace. + * python/generator.py: applied patch from Stephane bidoul + to export enums in the bindings. + Thu Jan 22 10:35:14 HKT 2004 William Brack <wbrack@mmm.com.hk> * tests/general/Makefile.am, tests/general/bug-141.out, diff --git a/libxslt/xslt.c b/libxslt/xslt.c index 795d10dc..8e3fdf79 100644 --- a/libxslt/xslt.c +++ b/libxslt/xslt.c @@ -1871,10 +1871,19 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) { } else if (IS_XSLT_NAME(cur, "namespace-alias")) { xsltNamespaceAlias(style, cur); } else { - xsltTransformError(NULL, style, cur, + if ((style != NULL) && (style->doc->version != NULL) && (!strncmp(style->doc->version,"1.0",3))) { + xsltTransformError(NULL, style, cur, + "xsltParseStylesheetTop: unknown %s element\n", + cur->name); + if (style != NULL) style->errors++; + } + else { + /* do Forwards-Compatible Processing */ + xsltTransformError(NULL, style, cur, "xsltParseStylesheetTop: ignoring unknown %s element\n", cur->name); - if (style != NULL) style->warnings++; + if (style != NULL) style->warnings++; + } } cur = cur->next; } diff --git a/python/generator.py b/python/generator.py index 454b3552..1327ce7f 100755 --- a/python/generator.py +++ b/python/generator.py @@ -4,6 +4,7 @@ # functions = {} +enums = {} # { enumType: { enumConstant: enumValue } } import string @@ -136,6 +137,9 @@ class docParser: self.function_return_info = attrs['info'] if attrs.has_key('field'): self.function_return_field = attrs['field'] + elif tag == 'enum': + enum(attrs['type'],attrs['name'],attrs['value']) + def end(self, tag): @@ -166,10 +170,13 @@ class docParser: def function(name, desc, ret, args, file): - global functions - functions[name] = (desc, ret, args, file) +def enum(type, name, value): + if not enums.has_key(type): + enums[type] = {} + enums[type][name] = value + ####################################################################### # # Some filtering rukes to drop functions/types which should not @@ -943,6 +950,17 @@ def buildWrappers(): classes.write(" return ret\n"); classes.write("\n"); + # + # Generate enum constants + # + for type,enum in enums.items(): + classes.write("# %s\n" % type) + items = enum.items() + items.sort(lambda i1,i2: cmp(long(i1[1]),long(i2[1]))) + for name,value in items: + classes.write("%s = %s\n" % (name,value)) + classes.write("\n"); + txt.close() classes.close() |