1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-26 11:23:26 +01:00

Merge pull request #2 from jin-eld/add-widechar-checks

Add widechar checks
This commit is contained in:
Sean Qureshi 2013-08-23 04:05:29 -07:00
commit 9bea24a317
10 changed files with 66 additions and 6 deletions

View File

@ -15,7 +15,8 @@ toxic_SOURCES = $(top_srcdir)/src/main.c \
$(top_srcdir)/src/dhtstatus.h \
$(top_srcdir)/src/dhtstatus.c
toxic_CFLAGS = $(NCURSES_CFLAGS) \
toxic_CFLAGS = -I$(top_srcdir) \
$(NCURSES_CFLAGS) \
$(LIBSODIUM_CFLAGS) \
$(LIBTOXCORE_CFLAGS)

View File

@ -108,11 +108,18 @@ AC_CHECK_FUNCS(
# pkg-config based tests
PKG_PROG_PKG_CONFIG
NCURSES_WIDECHAR_SUPPORT="yes"
if test -n "$PKG_CONFIG"; then
if test "$WIN32" != "xyes"; then
PKG_CHECK_MODULES([NCURSES], [ncursesw], [],
PKG_CHECK_MODULES([NCURSES], [ncursesw],
[],
[
AC_MSG_ERROR([required library ncursesw was not found on your system: $NCURSES_PKG_ERRORS])
NCURSES_WIDECHAR_SUPPORT="no"
PKG_CHECK_MODULES([NCURSES], [ncurses],
[],
[
AC_MSG_ERROR([required library ncursesw was not found on your system: $NCURSES_PKG_ERRORS])
])
])
fi
else
@ -129,6 +136,8 @@ if (test -z "$PKG_CONFIG") || (test "x$WIN32" = "xyes"); then
)
if test "x$WIN32" = "xyes"; then
dnl Check if pdcurses provides wide char support
NCURSES_WIDECHAR_SUPPORT="no"
AC_CHECK_LIB([pdcurses], [clear],
[],
[
@ -153,7 +162,22 @@ if (test -z "$PKG_CONFIG") || (test "x$WIN32" = "xyes"); then
AC_CHECK_LIB([ncursesw], [get_wch],
[],
[
AC_MSG_ERROR([required library ncurses was not found on your system])
NCURSES_WIDECHAR_SUPPORT="no"
AC_CHECK_LIB([ncurses], [clear],
[],
[
unset ac_cv_lib_ncursesw_get_wch
AC_CHECK_LIB([ncurses], [clear],
[],
[
AC_MSG_ERROR([required library ncurses was not found on your system])
],
[
-ltinfo
]
)
]
)
],
[
-ltinfo
@ -292,6 +316,11 @@ eval PACKAGE_DATADIR="${datadir}/${PACKAGE}"
eval PACKAGE_DATADIR="${PACKAGE_DATADIR}"
AC_DEFINE_UNQUOTED(PACKAGE_DATADIR, "$PACKAGE_DATADIR", [toxic data directory])
if test "x$NCURSES_WIDECHAR_SUPPORT" = "xyes"; then
AC_DEFINE([HAVE_WIDECHAR], [1], [ncurses wide char support available])
AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1],
[enable X/Open Portability Guide functionality])
fi
AC_CONFIG_FILES([Makefile
misc/Makefile

View File

@ -2,6 +2,10 @@
* Toxic -- Tox Curses Client
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
@ -182,7 +186,11 @@ static void chat_onKey(ToxWindow *self, Messenger *m, wint_t key)
getmaxyx(self->window, y2, x2);
/* Add printable chars to buffer and print on input space */
#if HAVE_WIDECHAR
if (iswprint(key)) {
#else
if (isprint(key)) {
#endif
if (ctx->pos != sizeof(ctx->line) - 1) {
mvwaddstr(self->window, y, x, wc_to_char(key));
ctx->line[ctx->pos++] = key;

View File

@ -18,6 +18,10 @@
*
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

View File

@ -1,3 +1,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "dhtstatus.h"
#include "string.h"
#include "network.h"

View File

@ -2,6 +2,10 @@
* Toxic -- Tox Curses Client
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <string.h>
#include <stdint.h>
#include <ctype.h>

View File

@ -6,7 +6,6 @@
#include "config.h"
#endif
#define _XOPEN_SOURCE_EXTENDED
#include <curses.h>
#include <errno.h>
#include <stdio.h>

View File

@ -2,6 +2,10 @@
* Toxic -- Tox Curses Client
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

View File

@ -4,7 +4,6 @@
#ifndef _windows_h
#define _windows_h
#define _XOPEN_SOURCE_EXTENDED
#include <curses.h>
#include <stdint.h>
#include <stdbool.h>

View File

@ -1,3 +1,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "friendlist.h"
#include "prompt.h"
#include "dhtstatus.h"
@ -234,7 +238,11 @@ void draw_active_window(Messenger *m)
a->onDraw(a, m);
/* Handle input */
#ifdef HAVE_WIDECHAR
get_wch(&ch);
#else
ch = getch();
#endif
if (ch == '\t' || ch == KEY_BTAB)
set_next_window((int) ch);