Mercurial > ~mikael > mcabber > hg
diff mcabber/mcabber/utf8.h @ 1668:41c26b7d2890
Install mcabber headers
* Change mcabber headers naming scheme
* Move 'src/' -> 'mcabber/'
* Add missing include <mcabber/config.h>'s
* Create and install clean config.h version in 'include/'
* Move "dirty" config.h version to 'mcabber/'
* Add $(top_srcdir) to compiler include path
* Update modules HOWTO
author | Myhailo Danylenko <isbear@ukrpost.net> |
---|---|
date | Mon, 18 Jan 2010 15:36:19 +0200 |
parents | mcabber/src/utf8.h@481b60da99c9 |
children | e6d355e50d7a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mcabber/mcabber/utf8.h Mon Jan 18 15:36:19 2010 +0200 @@ -0,0 +1,49 @@ +#ifndef __MCABBER_UTF8_H__ +#define __MCABBER_UTF8_H__ 1 + +#include <mcabber/config.h> + +#if defined HAVE_UNICODE && defined HAVE_WCHAR_H && defined HAVE_WCTYPE_H +# define UNICODE +#endif + +#ifdef HAVE_WCHAR_H +# include <wchar.h> +# define get_char_width(c) (utf8_mode ? wcwidth(get_char(c)) : 1) +#else +# define wcwidth(c) 1 +# define get_char_width(c) 1 +#endif + +#ifdef HAVE_WCTYPE_H +# include <wctype.h> + +/* The following bit is a hack for Solaris 8&9 systems that don't have + * iswblank(). + * For now i made sure it comes after wctype.h so it doesn't create + * problems (wctype.h has calls to iswblank() before wctype() is declared). + * (Sebastian Kayser) + */ +# ifndef HAVE_ISWBLANK +# define iswblank(wc) iswctype(wc, wctype("blank")) +# endif + +#else +# define iswblank(c) (c == ' ') +# define iswalnum(c) isalnum(c) +# define iswprint(c) isprint(c) +# define towupper(c) toupper(c) +# define towlower(c) tolower(c) +# define iswalpha(c) isalpha(c) +#endif + +extern int utf8_mode; + +char *prev_char(char *str, const char *limit); +char *next_char(char *str); +unsigned get_char(const char *str); +char *put_char(char *str, unsigned c); + +#endif /* __MCABBER_UTF8_H__ */ + +/* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */