## Analyser

Analyser — Basic analyser interface.

## Description

Basically you want to allocate an analyser with `enca_analyser_alloc()` for some language, use `enca_analyse()` (or `enca_analyse_const()`) on a buffer to find its encoding, and interpret the results with something like `enca_charset_name()`. The analyser then can be used for another buffer. Once you no longer need it, call `enca_analyser_free()` to release it.

A single working example is better than a hundred pages of reference manual.

Example 1. A minimal Enca library application – Czech encoding detector.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    #include <stdio.h>
    #include <enca.h>
    int
    main(void)
    {
      EncaAnalyser analyser;
      EncaEncoding encoding;
      unsigned char buffer[4096];
      size_t buflen;
      buflen = fread(buffer, 1, 4096, stdin);
      analyser = enca_analyser_alloc("cs");
      encoding = enca_analyse(analyser, buffer, buflen);
      printf("Charset: %%s\n", enca_charset_name(encoding.charset,
                                                 ENCA_NAME_STYLE_HUMAN));
      enca_analyser_free(analyser);
      return 0;
    }

The analyser has plenty of options, but generally you don't need to fiddle with them, except `enca_set_termination_strictness()`.

All names prefixed with `ENCA_`, `Enca`, `_Enca`, or `enca_` should be treated as reserved and not used for application function/variable/type/macro names.

## Functions

## Types and Values