chiark / gitweb /
tests: add tests for environment serialization
[elogind.git] / src / basic / gunicode.h
1 #pragma once
2
3 /* gunicode.h - Unicode manipulation functions
4  *
5  *  Copyright (C) 1999, 2000 Tom Tromey
6  *  Copyright 2000, 2005 Red Hat, Inc.
7  */
8
9 #include <stdbool.h>
10 #include <stdint.h>
11 #include <stdlib.h>
12
13 char *utf8_prev_char (const char *p);
14
15 extern const char utf8_skip_data[256];
16
17 /**
18  * g_utf8_next_char:
19  * @p: Pointer to the start of a valid UTF-8 character
20  *
21  * Skips to the next character in a UTF-8 string. The string must be
22  * valid; this macro is as fast as possible, and has no error-checking.
23  * You would use this macro to iterate over a string character by
24  * character. The macro returns the start of the next UTF-8 character.
25  * Before using this macro, use g_utf8_validate() to validate strings
26  * that may contain invalid UTF-8.
27  */
28 #define utf8_next_char(p) (char *)((p) + utf8_skip_data[*(const unsigned char *)(p)])
29
30 bool unichar_iswide (uint32_t c);