summaryrefslogtreecommitdiff
path: root/vendor/nunicode/src/libnu/toupper.c
blob: fad3941e6de715cf5c92c543174e4ecbbf576bbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <libnu/casemap.h>

#ifdef NU_WITH_TOUPPER

#include <libnu/casemap_internal.h>
#include "gen/_toupper.c"

const char* nu_toupper(uint32_t codepoint) {
	return _nu_to_something(codepoint, NU_TOUPPER_G, NU_TOUPPER_G_SIZE,
		NU_TOUPPER_VALUES_C, NU_TOUPPER_VALUES_I, NU_TOUPPER_COMBINED);
}

const char* _nu_toupper(const char *encoded, const char *limit, nu_read_iterator_t read,
	uint32_t *u, const char **transform,
	void *context) {

	(void)(limit);
	(void)(context);

	uint32_t _u = 0;
	const char *np = read(encoded, &_u);

	*transform = nu_toupper(_u);

	if (u != 0) {
		*u = _u;
	}

	return np;
}

#endif /* NU_WITH_TOUPPER */