view mcabber/mcabber/utf8.h @ 2304:fa8365fb6ac2

[PATCH 1/3] New option: vi_mode If the new vi_mode option is set to 1, let MCabber's non-chat mode accept a few commands loosely based on those available in vi(1)'s normal mode, e.g.: A Call "/roster unread_first". a Call "/roster unread_next". F Call "/roster group_prev". f Call "/roster group_next". G Call "/roster bottom". gg Call "/roster top". i Enter chat mode. [<n>]j Call "/roster down [<n>]". [<n>]k Call "/roster up [<n>]". n Repeat the previous search (if any). O Call "/roster unread_first" and open chat window. o Call "/roster unread_next" and open chat window. ZZ Call "/quit". zM Call "/group fold" for all groups. zR Call "/group unfold" for all groups. <Space> Call "/group toggle" for the current group. '' Call "/roster alternate". ! Toggle attention flag for current buddy. # Toggle unread messages flag for current buddy. /<str> Call "/roster search <str>". :q Call "/quit". :wq Call "/quit". :x Call "/quit". :<n> Jump to line <n> in the roster. :<cmd> Call "/<cmd>" (unless <cmd> matches one of the above commands).
author Holger Weiß <holger@zedat.fu-berlin.de>
date Wed, 22 Jul 2015 19:25:22 +0200
parents e6d355e50d7a
children
line wrap: on
line source

#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 et cindent cinoptions=>2\:2(0 ts=2 sw=2:  For Vim users... */