diff options
-rw-r--r-- | src/tidy-html5-test.c | 50 | ||||
-rw-r--r-- | src/tidy-html5.mk | 7 |
2 files changed, 57 insertions, 0 deletions
diff --git a/src/tidy-html5-test.c b/src/tidy-html5-test.c new file mode 100644 index 0000000..81b6d57 --- /dev/null +++ b/src/tidy-html5-test.c @@ -0,0 +1,50 @@ +// This file is part of MXE. See LICENSE.md for licensing information. + +#include <tidy.h> +#include <tidybuffio.h> + +#include <stdbool.h> +#include <stdio.h> + + +int main() +{ + const char *input = "<h1>Blah</h1><p><b>Blah-blah-blah!</b>"; + printf("Input (HTML fragment):\n%s\n\n", input); + fflush(stdout); + + TidyDoc tDoc = tidyCreate(); + TidyBuffer output = {0}; + TidyBuffer errBuf = {0}; + int rc = -1; + + const bool ok = tidyOptSetBool(tDoc, TidyXhtmlOut, yes); + + if (ok) + rc = tidySetErrorBuffer(tDoc, &errBuf); + if (rc >= 0) + rc = tidyParseString(tDoc, input); + if (rc >= 0) + rc = tidyCleanAndRepair(tDoc); + if (rc >= 0) + rc = tidyRunDiagnostics(tDoc); + if (rc > 1) + rc = (tidyOptSetBool(tDoc, TidyForceOutput, yes) ? rc : -1); + if (rc >= 0) + rc = tidySaveBuffer(tDoc, &output); + + if (rc > 0) + printf("Diagnostics:\n%s\n\n", errBuf.bp); + if (rc >= 0) + printf("Output (valid HTML document):\n%s\n\n", output.bp); + else + printf("Unknown error: %d.\n\n", rc); + fflush(stdout); + + tidyBufFree(&errBuf); + tidyBufFree(&output); + tidyRelease(tDoc); + + return rc; +} + diff --git a/src/tidy-html5.mk b/src/tidy-html5.mk index c711bbc..22c87a0 100644 --- a/src/tidy-html5.mk +++ b/src/tidy-html5.mk @@ -19,4 +19,11 @@ define $(PKG)_BUILD $(if $(BUILD_STATIC), cd '$(PREFIX)/$(TARGET)/lib' && mv libtidys.a libtidy.a, rm -f '$(PREFIX)/$(TARGET)/lib/libtidys.a') + + # build test manually + '$(TARGET)-gcc' \ + -W -Wall -Werror \ + '$(PWD)/src/$(PKG)-test.c' \ + -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-pkgconfig.exe' \ + -ltidy endef |