diff --git a/CMakeLists.txt b/CMakeLists.txt index 429bbfc..2f783af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ list(GET VERSION_LIST 2 TIDY_POINT_VERSION) set( LIB_TYPE STATIC ) # set default static option( BUILD_SHARED_LIB "Set ON to build Shared (DLL) Library" OFF ) option( BUILD_TAB2SPACE "Set ON to build utility app, tab2space" OFF ) +option( BUILD_SAMPLE_CODE "Set ON to build the sample code" OFF ) if (CMAKE_SIZEOF_VOID_P EQUAL 8) message(STATUS "*** Have SIZEOF void * = 8, so 64-bit") @@ -157,5 +158,16 @@ if (BUILD_TAB2SPACE) # no INSTALL of this 'local' tool endif () +if (BUILD_SAMPLE_CODE) + set(name test71) + set(dir console) + add_executable( ${name} ${dir}/${name}.cxx ) + if (MSVC) + set_target_properties( ${name} PROPERTIES DEBUG_POSTFIX d ) + endif () + target_link_libraries( ${name} ${add_LIBS} ) + # no INSTALL of this 'local' sample +endif () + # eof diff --git a/console/test71.cxx b/console/test71.cxx new file mode 100644 index 0000000..08bbff9 --- /dev/null +++ b/console/test71.cxx @@ -0,0 +1,44 @@ +/*\ + * 20150206 - Test app for Issue #71 + * + * A simple API example of getting the body text, first as html, + * and then as a raw stream. + * + * Note: This simple test app has no error checking + * +\*/ + +#include +#include "buffio.h" +#include "tidy.h" + +static const char *sample = + "\n" + "\n" + "\n" + "Test app for Issue #71\n" + "something & escaped\n" + ""; + +int main() { + printf("\nSimple example of HTML Tidy API use.\n"); + TidyDoc tdoc = tidyCreate(); + TidyBuffer buff; + tidyBufInit(&buff); + tidyBufAppend(&buff, (void *)sample, strlen(sample)); + tidyParseBuffer(tdoc, &buff); + TidyNode body = tidyGetBody(tdoc); + TidyNode text_node = tidyGetChild(body); + TidyBuffer buff2; + tidyBufInit(&buff2); + printf("This is the 'escaped' text, from tidyNodeGetText(...), suitable for html use...\n"); + tidyNodeGetText(tdoc, text_node, &buff2); + fwrite(buff2.bp, buff2.size, 1, stdout); + printf("This is the 'raw' lexer values, from tidyNodeGetValue(...).\n"); + tidyNodeGetValue(tdoc, text_node, &buff2); + fwrite(buff2.bp, buff2.size, 1, stdout); + printf("\n"); + return 0; +} + +// eof