1/*
2 * Copyright (c) 2009-2012 Petri Lehtinen <petri@digip.org>
3 *
4 * Jansson is free software; you can redistribute it and/or modify
5 * it under the terms of the MIT license. See LICENSE for details.
6 */
7
8#ifndef UTF_H
9#define UTF_H
10
11#ifdef HAVE_CONFIG_H
12#include <config.h>
13
14#ifdef HAVE_INTTYPES_H
15/* inttypes.h includes stdint.h in a standard environment, so there's
16no need to include stdint.h separately. If inttypes.h doesn't define
17int32_t, it's defined in config.h. */
18#include <inttypes.h>
19#endif /* HAVE_INTTYPES_H */
20
21#else /* !HAVE_CONFIG_H */
22#ifdef _WIN32
23typedef int int32_t;
24#else /* !_WIN32 */
25/* Assume a standard environment */
26#include <inttypes.h>
27#endif /* _WIN32 */
28
29#endif /* HAVE_CONFIG_H */
30
31int utf8_encode(int codepoint, char *buffer, int *size);
32
33int utf8_check_first(char byte);
34int utf8_check_full(const char *buffer, int size, int32_t *codepoint);
35const char *utf8_iterate(const char *buffer, int32_t *codepoint);
36
37int utf8_check_string(const char *string, int length);
38
39#endif
40