You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
#ifndef __MCABBER_UTF8_H__ |
|
#define __MCABBER_UTF8_H__ 1 |
|
|
|
|
|
#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 et cindent cinoptions=>2\:2(0 ts=2 sw=2: For Vim users... */
|
|
|