mcabber/src/utf8.h
author Mikael Berthe <mikael@lilotux.net>
Sun, 04 Oct 2009 19:33:38 +0200
changeset 1590 8d1bcc83ae32
parent 1575 481b60da99c9
permissions -rw-r--r--
Add support for spellchecking with Enchant (caolan) Patch from the issue tracker: http://bitbucket.org/McKael/mcabber-crew/issue/36/patch-to-spell-checking-using-enchant
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
930
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
#ifndef __UTF8_H__
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
#define __UTF8_H__ 1
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
#include <config.h>
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
1089
a61c3311a5bb Hopefully fix unicode detection on BSD systems
Mikael Berthe <mikael@lilotux.net>
parents: 934
diff changeset
     6
#if defined HAVE_UNICODE && defined HAVE_WCHAR_H && defined HAVE_WCTYPE_H
a61c3311a5bb Hopefully fix unicode detection on BSD systems
Mikael Berthe <mikael@lilotux.net>
parents: 934
diff changeset
     7
# define UNICODE
a61c3311a5bb Hopefully fix unicode detection on BSD systems
Mikael Berthe <mikael@lilotux.net>
parents: 934
diff changeset
     8
#endif
a61c3311a5bb Hopefully fix unicode detection on BSD systems
Mikael Berthe <mikael@lilotux.net>
parents: 934
diff changeset
     9
930
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
#ifdef HAVE_WCHAR_H
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
# include <wchar.h>
932
fc6aaa223650 Fix a few problems with non-UTF-8 locales
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
    12
# define get_char_width(c) (utf8_mode ? wcwidth(get_char(c)) : 1)
930
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
#else
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    14
# define wcwidth(c) 1
932
fc6aaa223650 Fix a few problems with non-UTF-8 locales
Mikael Berthe <mikael@lilotux.net>
parents: 930
diff changeset
    15
# define get_char_width(c) 1
930
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
#endif
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    17
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    18
#ifdef HAVE_WCTYPE_H
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    19
# include <wctype.h>
1575
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    20
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    21
/* The following bit is a hack for Solaris 8&9 systems that don't have
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    22
 * iswblank().
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    23
 * For now i made sure it comes after wctype.h so it doesn't create
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    24
 * problems (wctype.h has calls to iswblank() before wctype() is declared).
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    25
 * (Sebastian Kayser)
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    26
 */
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    27
# ifndef HAVE_ISWBLANK
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    28
#  define iswblank(wc) iswctype(wc, wctype("blank"))
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    29
# endif
481b60da99c9 Workaround for missing iswblank() on Solaris 8 & 9 (Sebastian Kayser)
Mikael Berthe <mikael@lilotux.net>
parents: 1179
diff changeset
    30
930
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
#else
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
# define iswblank(c) (c == ' ')
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    33
# define iswalnum(c) isalnum(c)
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
# define iswprint(c) isprint(c)
1172
334ae9f498f1 Add some more iline functions (Lego12239)
Mikael Berthe <mikael@lilotux.net>
parents: 1089
diff changeset
    35
# define towupper(c) toupper(c)
334ae9f498f1 Add some more iline functions (Lego12239)
Mikael Berthe <mikael@lilotux.net>
parents: 1089
diff changeset
    36
# define towlower(c) tolower(c)
1179
0f7e0346d9cb Add aspell support
entragian <entragian@o2.pl>
parents: 1172
diff changeset
    37
# define iswalpha(c) isalpha(c)
934
a09bf67d1dfb Unicode support depends on having ncursesw
Mikael Berthe <mikael@lilotux.net>
parents: 932
diff changeset
    38
#endif
a09bf67d1dfb Unicode support depends on having ncursesw
Mikael Berthe <mikael@lilotux.net>
parents: 932
diff changeset
    39
930
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
extern int utf8_mode;
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
char *prev_char(char *str, const char *limit);
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
char *next_char(char *str);
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
unsigned get_char(const char *str);
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
char *put_char(char *str, unsigned c);
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
#endif /* __UTF8_H__ */
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
a75f7a13df7b UTF-8 terminal support (Reimar Döffinger)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */