# HG changeset patch # User Mikael Berthe # Date 1165522728 -3600 # Node ID a61c3311a5bb569f71431985db23d8ce12bcee28 # Parent c55b24818546f151740b1a0992a999ab9529525a Hopefully fix unicode detection on BSD systems The ncurses library's unicode support wasn't correctly detected on some systems (FreeBSD for example). This patch adds a HAVE_UNICODE define with autoconf. diff -r c55b24818546 -r a61c3311a5bb mcabber/configure.ac --- a/mcabber/configure.ac Wed Dec 06 23:18:36 2006 +0100 +++ b/mcabber/configure.ac Thu Dec 07 21:18:48 2006 +0100 @@ -7,7 +7,8 @@ AC_CONFIG_SRCDIR([src]) AM_CONFIG_HEADER(config.h) -AC_PROG_LIBTOOL +#AC_PROG_LIBTOOL +AC_PROG_RANLIB # Checks for programs. AC_PROG_CC @@ -25,38 +26,6 @@ CFLAGS="$CFLAGS -Wall" fi -# Checks for libraries. - -AC_CHECK_FUNC(initscr,, -[ - cf_ncurses="ncurses" - for lib in ncursesw ncurses - do - AC_CHECK_LIB($lib, waddnwstr, [cf_ncurses="$lib"; break]) - done - AC_CHECK_LIB($cf_ncurses, initscr, - [LIBS="$LIBS -l$cf_ncurses" - if test "$cf_ncurses" = ncursesw; then - AC_CHECK_HEADERS([ncursesw/ncurses.h ncursesw/panel.h],, - [AC_CHECK_HEADERS([ncurses.h panel.h],, - AC_MSG_ERROR([Missing header file]))]) - else - AC_CHECK_HEADERS([ncurses/ncurses.h ncurses/panel.h],, - [AC_CHECK_HEADERS([ncurses.h panel.h],, - AC_MSG_ERROR([Missing header file]))]) - fi - ], - [CF_CURSES_LIBS]) -]) - -AC_CHECK_LIB([panelw], [new_panel],, - AC_CHECK_LIB([panel], [new_panel]) - ) - -AC_CHECK_DECLS([strptime],,, -[#define _GNU_SOURCE -#include ]) - # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h fcntl.h locale.h netdb.h netinet/in.h stddef.h \ @@ -86,9 +55,49 @@ memmove memset modf select setlocale socket strcasecmp \ strchr strdup strncasecmp strrchr strstr strcasestr]) + +AC_CHECK_DECLS([strptime],,, +[#define _GNU_SOURCE +#include ]) + # Check for tm_gmtoff MC_TM_GMTOFF +# Checks for libraries. + +AC_CHECK_FUNC(initscr,, +[ + cf_ncurses="ncurses" + for lib in ncursesw ncurses + do + AC_CHECK_LIB($lib, waddnwstr, + [cf_ncurses="$lib"; cf_ncurses_unicode="yes"; break]) + done + AC_CHECK_LIB($cf_ncurses, initscr, + [LIBS="$LIBS -l$cf_ncurses" + if test "$cf_ncurses" = ncursesw; then + AC_CHECK_HEADERS([ncursesw/ncurses.h ncursesw/panel.h],, + [AC_CHECK_HEADERS([ncurses.h panel.h],, + AC_MSG_ERROR([Missing header file]))]) + else + AC_CHECK_HEADERS([ncurses/ncurses.h ncurses/panel.h],, + [AC_CHECK_HEADERS([ncurses.h panel.h],, + AC_MSG_ERROR([Missing header file]))]) + fi + ], + [CF_CURSES_LIBS]) +]) + +AC_CHECK_LIB([panelw], [new_panel],, + AC_CHECK_LIB([panel], [new_panel]) + ) + +if test x"$cf_ncurses_unicode" = x"yes"; then + AC_DEFINE([HAVE_UNICODE], [], [Define if ncurses have unicode support]) +else + AC_MSG_WARN([Your ncurses installation does not support unicode]) +fi + # Check for glib AM_PATH_GLIB_2_0(2.0.0, , AC_MSG_ERROR([glib is required]),[g_list_append]) diff -r c55b24818546 -r a61c3311a5bb mcabber/src/screen.c diff -r c55b24818546 -r a61c3311a5bb mcabber/src/utf8.h --- a/mcabber/src/utf8.h Wed Dec 06 23:18:36 2006 +0100 +++ b/mcabber/src/utf8.h Thu Dec 07 21:18:48 2006 +0100 @@ -3,9 +3,12 @@ #include +#if defined HAVE_UNICODE && defined HAVE_WCHAR_H && defined HAVE_WCTYPE_H +# define UNICODE +#endif + #ifdef HAVE_WCHAR_H # include -# define UNICODE # define get_char_width(c) (utf8_mode ? wcwidth(get_char(c)) : 1) #else # define wcwidth(c) 1 @@ -18,11 +21,6 @@ # define iswblank(c) (c == ' ') # define iswalnum(c) isalnum(c) # define iswprint(c) isprint(c) -# undef UNICODE -#endif - -#ifndef HAVE_NCURSESW_NCURSES_H -# undef UNICODE #endif extern int utf8_mode;