diff options
| author | Jonas Ådahl <jadahl@gmail.com> | 2017-10-11 17:31:33 +0800 |
|---|---|---|
| committer | Daniel Stone <daniels@collabora.com> | 2017-12-04 22:38:56 +0000 |
| commit | 8d4250ab5e2cf091edf56085def9eaa73752aa9c (patch) | |
| tree | c576e1f68f3d4c50c0d314e5725980f3b40ab005 /src/scanner.c | |
| parent | connection: Use wl_buffer_size() for all buffer size calculations (diff) | |
| download | wayland-8d4250ab5e2cf091edf56085def9eaa73752aa9c.tar wayland-8d4250ab5e2cf091edf56085def9eaa73752aa9c.tar.gz wayland-8d4250ab5e2cf091edf56085def9eaa73752aa9c.tar.bz2 wayland-8d4250ab5e2cf091edf56085def9eaa73752aa9c.tar.lz wayland-8d4250ab5e2cf091edf56085def9eaa73752aa9c.tar.xz wayland-8d4250ab5e2cf091edf56085def9eaa73752aa9c.tar.zst wayland-8d4250ab5e2cf091edf56085def9eaa73752aa9c.zip | |
scanner: Add --strict flag
Add a --strict flag for making wayland-scanner fail if the DTD
verification fails. This is useful for testing, so that a test case can
fail a scan when the protocol doesn't comply with the DTD.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Diffstat (limited to 'src/scanner.c')
| -rw-r--r-- | src/scanner.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/scanner.c b/src/scanner.c index c345ed6..1308fc7 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -72,7 +72,9 @@ usage(int ret) " the scanner was built against.\n" " -c, --include-core-only include the core version of the headers,\n" " that is e.g. wayland-client-core.h instead\n" - " of wayland-client.h.\n"); + " of wayland-client.h.\n" + " -s, --strict exit immediately with an error if DTD\n" + " verification fails.\n"); exit(ret); } @@ -1801,6 +1803,7 @@ int main(int argc, char *argv[]) bool help = false; bool core_headers = false; bool version = false; + bool strict = false; bool fail = false; int opt; enum { @@ -1813,11 +1816,12 @@ int main(int argc, char *argv[]) { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'v' }, { "include-core-only", no_argument, NULL, 'c' }, + { "strict", no_argument, NULL, 's' }, { 0, 0, NULL, 0 } }; while (1) { - opt = getopt_long(argc, argv, "hvc", options, NULL); + opt = getopt_long(argc, argv, "hvcs", options, NULL); if (opt == -1) break; @@ -1832,6 +1836,9 @@ int main(int argc, char *argv[]) case 'c': core_headers = true; break; + case 's': + strict = true; + break; default: fail = true; break; @@ -1894,6 +1901,10 @@ int main(int argc, char *argv[]) "* WARNING: XML failed validation against built-in DTD *\n" "* *\n" "*******************************************************\n"); + if (strict) { + fclose(input); + exit(EXIT_FAILURE); + } } /* create XML parser */ |
