summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2004-01-22 17:40:16 +0000
committerDaniel Veillard <veillard@src.gnome.org>2004-01-22 17:40:16 +0000
commit8b83712f687139e902640f7a5ad2c8f7b7793ad5 (patch)
tree048057f229d01dde9c40471dac16f8731ff977de
parent618a5d5c00494b7cc5b500c91782b34a76609049 (diff)
downloadlibxslt-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--ChangeLog7
-rw-r--r--libxslt/xslt.c13
-rwxr-xr-xpython/generator.py22
3 files changed, 38 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 3288dfa9..a8a7df1c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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()