Example #1
0
File: ucs.c Project: creswick/GF
GuUCS
gu_char_ucs(char c)
{
	gu_require(gu_char_is_valid(c));
	GuUCS u = (GuUCS) c;
	gu_ensure(u < 0x80);
	return u;
}
Example #2
0
File: ucs.c Project: creswick/GF
char
gu_ucs_char(GuUCS uc, GuExn* err)
{
	if (0 <= uc && uc <= 127) {
		char c = (char) uc;
		if (gu_char_is_valid(c)) {
			return c;
		}
	}
	gu_raise(err, GuUCSExn);
	return 0;
}
Example #3
0
File: ucs.c Project: McMbuvi/GF
GuUCS
gu_char_ucs(char c)
{
	gu_require(gu_char_is_valid(c));
#ifdef CHAR_ASCII
	GuUCS u = (GuUCS) c;
#else
	extern const uint8_t gu_ucs_ascii_reverse_[CHAR_MAX];
	GuUCS u = gu_ucs_ascii_reverse_[(unsigned char) c];
#endif
	gu_ensure(u < 0x80);
	return u;
}
Example #4
0
File: ucs.c Project: creswick/GF
size_t
gu_str_to_ucs(const char* cbuf, size_t len, GuUCS* ubuf, GuExn* err)
{
	size_t n = 0;
	while (n < len) {
		char c = cbuf[n];
		if (!gu_char_is_valid(c)) {
			gu_raise(err, GuUCSExn);
			return n;
		}
		ubuf[n] = gu_char_ucs(c);
		n++;
	}
	return n;
}