diff --git a/ChangeLog b/ChangeLog index c83230904e2eb6cc094e1ab7db8ea247e3d44105..c0bedf0647172b98f0febc76e88fc2edd87135b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -328,9 +328,9 @@ CVS code - as Pico does. (DLR) - configure.ac: - Remove specific references to control key shortcuts. (DLR) - - Check for the wide version of ncurses, without which multibyte - strings don't seem to be displayed properly, and associated - wide character functions. (DLR) + - Check for the wide versions of ncurses or slang, without which + multibyte strings don't seem to be displayed properly, and + associated multibyte/wide character functions. (DLR) - Check for wchar.h, for those systems that need it for the wcwidth() prototype. (DLR) - Remove checks for all include files that we include diff --git a/configure.ac b/configure.ac index 8aa6ad4bece5ea26aa4f1f5714596ee86a3d4cd1..eab13e9938fac2ad8912df881b27ae9cb6d41834 100644 --- a/configure.ac +++ b/configure.ac @@ -59,9 +59,7 @@ int main(void) AC_MSG_RESULT(no), AC_MSG_RESULT(yes) AC_DEFINE(BROKEN_REGEXEC, 1, [Define this if your regexec() function segfaults when passed an empty string under certain conditions.]), - AC_MSG_RESULT([cross-compiling; assuming no]) - ) - ) + AC_MSG_RESULT([cross-compiling; assuming no]))) dnl options AC_ARG_ENABLE(debug, @@ -207,12 +205,31 @@ AC_ARG_WITH(slang, fi AC_CHECK_HEADER(slcurses.h, - AC_MSG_CHECKING([for SLtt_initialize in -lslang]) + AC_MSG_CHECKING([for SLutf8_enable in -lslang]) _libs=$LIBS LIBS="$LIBS -lslang" AC_TRY_RUN([ #include <slcurses.h> int main(void) +{ + SLutf8_enable(TRUE); + return 0; +}], + [AC_MSG_RESULT(yes) + AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) + slang_support=yes + CURSES_LIB_WIDE=yes + if test "$with_slang" != "yes"; then + CURSES_LIB="-L${with_slang}/lib -lslang" + else + CURSES_LIB="-lslang" + fi + CURSES_LIB_NAME=slang], + [AC_MSG_RESULT(no) + AC_MSG_CHECKING([for SLtt_initialize in -lslang]) + AC_TRY_RUN([ +#include <slcurses.h> +int main(void) { SLtt_initialize(NULL); return 0; @@ -227,17 +244,37 @@ int main(void) fi CURSES_LIB_NAME=slang], [AC_MSG_RESULT(no) + # We might need the term library for termlib in ncurses curses termcap terminfo termlib; do AC_CHECK_LIB([${termlib}], tputs, [tcap="-l$termlib"]) test -n "$tcap" && break done - AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap]) + AC_MSG_CHECKING([for SLutf8_enable in -lslang $tcap]) LIBS="$LIBS $tcap" AC_TRY_RUN([ #include <slcurses.h> int main(void) +{ + SLutf8_enable(TRUE); + return 0; +}], + [AC_MSG_RESULT(yes) + AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) + slang_support=yes + CURSES_LIB_WIDE=yes + if test "$with_slang" != "yes"; then + CURSES_LIB="-L${with_slang}/lib -lslang $tcap" + else + CURSES_LIB="-lslang $tcap" + fi + CURSES_LIB_NAME=slang], + [AC_MSG_RESULT(no) + AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap]) + AC_TRY_RUN([ +#include <slcurses.h> +int main(void) { SLtt_initialize(NULL); return 0; @@ -250,14 +287,33 @@ int main(void) else CURSES_LIB="-lslang $tcap" fi - CURSES_LIB_NAME=slang], [ - AC_MSG_RESULT(no) + CURSES_LIB_NAME=slang], + [AC_MSG_RESULT(no) + # We might need the math library - AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm]) + AC_MSG_CHECKING([for SLutf8_enable in -lslang $tcap -lm]) LIBS="$LIBS -lm" AC_TRY_RUN([ #include <slcurses.h> int main(void) +{ + SLutf8_enable(TRUE); + return 0; +}], + [AC_MSG_RESULT(yes) + AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers for curses instead of native curses.]) + slang_support=yes + CURSES_LIB_WIDE=yes + if test "$with_slang" != "yes"; then + CURSES_LIB="-L${with_slang}/lib -lslang $tcap -lm" + else + CURSES_LIB="-lslang $tcap -lm" + fi + CURSES_LIB_NAME=slang], + AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap -lm]) + AC_TRY_RUN([ +#include <slcurses.h> +int main(void) { SLtt_initialize(NULL); return 0; @@ -274,6 +330,9 @@ int main(void) [AC_MSG_RESULT(no)], AC_MSG_WARN([*** Can not use slang when cross-compiling]))], AC_MSG_WARN([*** Can not use slang when cross-compiling]))], +AC_MSG_WARN([*** Can not use slang when cross-compiling]))], +AC_MSG_WARN([*** Can not use slang when cross-compiling]))], +AC_MSG_WARN([*** Can not use slang when cross-compiling])), AC_MSG_WARN([*** Can not use slang when cross-compiling])), AC_MSG_ERROR([ *** The header file slcurses.h was not found. If you wish to use