# Basic Operations

## Functions
void | tidyRelease (TidyDoc tdoc)
void | tidySetAppData (TidyDoc tdoc, uint appData)
uint | tidyGetAppData (TidyDoc tdoc)
ctmbstr | tidyReleaseDate ()
int | tidyStatus (TidyDoc tdoc)
int | tidyDetectedHtmlVersion (TidyDoc tdoc)
Bool | tidyDetectedXhtml (TidyDoc tdoc)
Bool | tidyDetectedGenericXml (TidyDoc tdoc)
uint | tidyErrorCount (TidyDoc tdoc)
uint | tidyWarningCount (TidyDoc tdoc)
uint | tidyAccessWarningCount (TidyDoc tdoc)
uint | tidyConfigErrorCount (TidyDoc tdoc)
int | tidyLoadConfig (TidyDoc tdoc, ctmbstr configFile)
int | tidyLoadConfigEnc (TidyDoc tdoc, ctmbstr configFile, ctmbstr charenc)
int | tidySetCharEncoding (TidyDoc tdoc, ctmbstr encnam)
int | tidyOptSaveFile (TidyDoc tdoc, ctmbstr cfgfil)
int | tidyOptSaveSink (TidyDoc tdoc, TidyOutputSink *sink)
void | tidyErrorSummary (TidyDoc tdoc)
void | tidyGeneralInfo (TidyDoc tdoc)
## Variables
TidyDoc | tidyCreate ()

## Detailed Description

Tidy public interface

Several functions return an integer document status:

     0    -> SUCCESS
     >0   -> 1 == TIDY WARNING, 2 == TIDY ERROR
     <0   -> SEVERE ERROR

The following is a short example program.

    include <tidy.h>
    include <buffio.h>
    include <stdio.h>
    include <errno.h>

    int main(int argc, char **argv )
    {
      const char* input = "<title>Foo</title><p>Foo!";
      TidyBuffer output = {0};
      TidyBuffer errbuf = {0};
      int rc = -1;
      Bool ok;

      TidyDoc tdoc = tidyCreate;                     // Initialize "document"
      printf( "Tidying:\t%s\n", input );

      ok = tidyOptSetBool( tdoc, TidyXhtmlOut, yes );  // Convert to XHTML
      if ( ok )
        rc = tidySetErrorBuffer( tdoc, &errbuf );      // Capture diagnostics
      if ( rc >= 0 )
        rc = tidyParseString( tdoc, input );           // Parse the input
      if ( rc >= 0 )
        rc = tidyCleanAndRepair( tdoc );               // Tidy it up!
      if ( rc >= 0 )
        rc = tidyRunDiagnostics( tdoc );               // Kvetch
      if ( rc > 1 )                                    // If error, force output.
        rc = ( tidyOptSetBool(tdoc, TidyForceOutput, yes) ? rc : -1 );
      if ( rc >= 0 )
        rc = tidySaveBuffer( tdoc, &output );          // Pretty Print

      if ( rc >= 0 )
      {
        if ( rc > 0 )
          printf( "\nDiagnostics:\n\n%s", errbuf.bp );
        printf( "\nAnd here is the result:\n\n%s", output.bp );
      }
      else
        printf( "A severe error (%d) occurred.\\n", rc );

      tidyBufFree( &output );
      tidyBufFree( &errbuf );
      tidyRelease( tdoc );
      return rc;
    }

## Function Documentation

void tidySetAppData | ( | TidyDoc | tdoc,
|  | uint | appData
| ) |

| Let application store a chunk of data w/ each Tidy instance. Useful for callbacks.

uint tidyGetAppData | ( | TidyDoc | tdoc | ) |

| Get application data set previously

ctmbstr tidyReleaseDate | ( |  | ) |

| Get release date (version) for current library

int tidyStatus | ( | TidyDoc | tdoc | ) |

| Get status of current document.

int tidyDetectedHtmlVersion | ( | TidyDoc | tdoc | ) |

| Detected HTML version: 0, 2, 3 or 4

Bool tidyDetectedXhtml | ( | TidyDoc | tdoc | ) |

| Input is XHTML?

Bool tidyDetectedGenericXml | ( | TidyDoc | tdoc | ) |

| Input is generic XML (not HTML or XHTML)?

uint tidyErrorCount | ( | TidyDoc | tdoc | ) |

| Number of Tidy errors encountered. If > 0, output is suppressed unless TidyForceOutput is set.

uint tidyWarningCount | ( | TidyDoc | tdoc | ) |

| Number of Tidy warnings encountered.

uint tidyAccessWarningCount | ( | TidyDoc | tdoc | ) |

| Number of Tidy accessibility warnings encountered.

uint tidyConfigErrorCount | ( | TidyDoc | tdoc | ) |

| Number of Tidy configuration errors encountered.

int tidyLoadConfig | ( | TidyDoc | tdoc,
|  | ctmbstr | configFile
| ) |

| Load an ASCII Tidy configuration file

int tidyLoadConfigEnc | ( | TidyDoc | tdoc,
|  | ctmbstr | configFile,
|  | ctmbstr | charenc
| ) |

| Load a Tidy configuration file with the specified character encoding

int tidySetCharEncoding | ( | TidyDoc | tdoc,
|  | ctmbstr | encnam
| ) |

| Set the input/output character encoding for parsing markup. Values include: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis. Case in-sensitive.

int tidyOptSaveFile | ( | TidyDoc | tdoc,
|  | ctmbstr | cfgfil
| ) |

| Save current settings to named file. Only non-default values are written.

int tidyOptSaveSink | ( | TidyDoc | tdoc,
|  | TidyOutputSink * | sink
| ) |

| Save current settings to given output sink. Only non-default values are written.

void tidyErrorSummary | ( | TidyDoc | tdoc | ) |

| Write more complete information about errors to current error sink.

void tidyGeneralInfo | ( | TidyDoc | tdoc | ) |

| Write more general information about markup to current error sink.