Validate the protocol xml during scanning
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 9 Nov 2015 23:53:08 +0000 (09:53 +1000)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Tue, 17 Nov 2015 12:36:21 +0000 (14:36 +0200)
commitf66e2d53dd8920451a4d9544b2fd2568a6a75b9b
tree4feaf18a88235a2d9584405e9c8a34af7d6fc7f5
parente65aed46168fc86a7e78db071472278ea533f526
Validate the protocol xml during scanning

Embed the wayland.dtd protocol data into the scanner binary so we can validate
external protocol files without requiring makefile changes. Hat-tip to Pekka
Paalanen for the embedding trick.
The embedding trick doesn't work well if the to-be-embedded file is in a
different location than the source file, so copy/link it during configure and
then build it in from the local directory.

The current expat parser is not a validating parser, moving scanner.c to
another parser has the risk of breaking compatibility. This patch adds libxml2
as extra (optional) dependency, but that also requires parsing the input
twice.

If the protocol fails validation a warning is printed but no error is returned
otherwise.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Makefile.am
configure.ac
src/dtddata.S [new file with mode: 0644]
src/scanner.c