#ifndef UTF8LIB_H__
#define UTF8LIB_H__
+#include <stddef.h>
#include "qtypes.h"
// types for unicode strings
// let them be 32 bit for now
// normally, whcar_t is 16 or 32 bit, 16 on linux I think, 32 on haiku and maybe windows
-#ifdef _MSC_VER
-typedef __int32 U_int32;
-#else
-#include <stdint.h>
-#include <sys/types.h>
-typedef int32_t U_int32;
-#endif
// Uchar, a wide character
-typedef U_int32 Uchar;
+typedef int32_t Uchar;
// Initialize UTF8, this registers cvars which allows for UTF8 to be disabled
// completely.
// a non-utf8 version to work: u8_strlen() will wrap to strlen()
// u8_byteofs() and u8_charidx() will simply return whatever is passed as index parameter
// u8_getchar() will will just return the next byte, u8_fromchar will write one byte, ...
-extern cvar_t utf8_enable;
+extern struct cvar_s utf8_enable;
void u8_Init(void);
size_t u8_strlen(const char*);
int u8_fromchar(Uchar, char*, size_t);
size_t u8_mbstowcs(Uchar *, const char *, size_t);
size_t u8_wcstombs(char*, const Uchar*, size_t);
-size_t u8_COM_StringLengthNoColors(const char *s, size_t size_s, qboolean *valid);
+size_t u8_COM_StringLengthNoColors(const char *s, size_t size_s, qbool *valid);
// returns a static buffer, use this for inlining
char *u8_encodech(Uchar ch, size_t*, char*buf16);
-size_t u8_strpad(char *out, size_t outsize, const char *in, qboolean leftalign, size_t minwidth, size_t maxwidth);
+size_t u8_strpad(char *out, size_t outsize, const char *in, qbool leftalign, size_t minwidth, size_t maxwidth);
+size_t u8_strpad_colorcodes(char *out, size_t outsize, const char *in, qbool leftalign, size_t minwidth, size_t maxwidth);
/* Careful: if we disable utf8 but not freetype, we wish to see freetype chars
* for normal letters. So use E000+x for special chars, but leave the freetype stuff for the