nano-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Nano-devel] optional unicode (ncursesw) support


From: David Lawrence Ramsey
Subject: Re: [Nano-devel] optional unicode (ncursesw) support
Date: Sat, 26 Mar 2005 18:25:25 -0500
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Mike Frysinger wrote:

<snip>

>thanks for the pointers, i made the checks for the funcs conditional, but i
>didnt conditionalize any of the header files ...

No problem.  I don't think you need to conditionalize header files
anyway, as they already are with NANO_WIDE.

<snip>

>find attached !  i only added logic to the ncurses code because the slang
>stuff is pretty ugly, and i dislike slang intensely :)

Very good.  I added slang support to it, consolidated the text of the
warning and error messages as much as I could, and fixed a few minor
consistencies in indentation while I was in there.  A patch to add these
changes to 1.3.6's configure.ac is attached, if you're interested.

>logic works like this:
>./configure
> - $enable_utf8=auto and current behavior stays the same
>
>./configure --enable-utf8
> - $enable_utf8=yes and if no utf8 support is found, configure will abort
>
>./configure --disable-utf8
> - $enable_utf8=no and no checks are performed for wide ncurses or the
>iswalnum/mblen/etc... functions or the UTF8 warning at the end

It seems to work just fine here so far.

diff -ur nano-1.3.6/configure.ac nano-1.3.6-fixed/configure.ac
--- nano-1.3.6/configure.ac     2005-03-20 23:34:52.000000000 -0500
+++ nano-1.3.6-fixed/configure.ac       2005-03-26 01:33:40.000000000 -0500
@@ -61,15 +61,16 @@
        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])))
 
-dnl options
+dnl Checks for options.
+
 AC_ARG_ENABLE(debug, 
 [  --enable-debug          Enable debugging (disabled by default)],
- [if test x$enableval = xyes; then
+[if test x$enableval = xyes; then
     AC_DEFINE(DEBUG, 1, [Define this to enable nano debug messages and assert 
warnings.])
     debug_support=yes
- fi])
+fi])
 
-if test "$debug_support" != "yes"; then
+if test x$debug_support != xyes; then
     AC_DEFINE(NDEBUG, 1, [Shut up the assert warnings :-)])
 fi
 
@@ -78,7 +79,7 @@
 [if test x$enableval = xyes; then
     AC_DEFINE(NANO_EXTRA, 1, [Define this to enable the extra stuff.]) 
extra_support=yes
     AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file 
buffers.]) multibuffer_support=yes
- fi])
+fi])
 
 AC_ARG_ENABLE(tiny,
 [  --enable-tiny           Disable features for the sake of size],
@@ -91,61 +92,61 @@
     AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable setting of the 
operating directory (chroot of sorts).]) 
     AC_DEFINE(DISABLE_SPELLER, 1, [Define this to disable the use(full|less) 
spelling functions.]) 
     AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion code 
Chris worked so hard on!]) 
- fi])
+fi])
 
 AC_ARG_ENABLE(browser,
 [  --disable-browser       Disable mini file browser],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_BROWSER, 1, [Define this to disable the built-in 
(crappy) file browser.])
- fi])
+fi])
 
 AC_ARG_ENABLE(help,
 [  --disable-help          Disable help function],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_HELP, 1, [Define this to disable the help menu.])
- fi])
+fi])
 
 AC_ARG_ENABLE(justify,
 [  --disable-justify       Disable justify/unjustify function],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_JUSTIFY, 1, [Define this to disable the justify 
routine.]) 
- fi])
+fi])
 
 AC_ARG_ENABLE(mouse,
 [  --disable-mouse         Disable mouse support (and -m flag)],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_MOUSE, 1, [Define this to disable the mouse functions.])
- fi])
+fi])
 
 AC_ARG_ENABLE(operatingdir,
 [  --disable-operatingdir  Disable setting of operating directory (chroot of 
sorts)],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_OPERATINGDIR, 1, [Define this to disable setting of the 
operating directory (chroot of sorts).])
- fi])
+fi])
 
 AC_ARG_ENABLE(speller,
 [  --disable-speller       Disable spell checker function],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_SPELLER, 1, [Define this to disable the use(full|less) 
spelling functions.])
- fi])
+fi])
 
 AC_ARG_ENABLE(tabcomp,
 [  --disable-tabcomp       Disable tab completion code for a smaller binary],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_TABCOMP, 1, [Define to disable the tab completion code 
Chris worked so hard on!]) 
- fi])
+fi])
 
 AC_ARG_ENABLE(wrapping,
 [  --disable-wrapping      Disable all wrapping of text (and -w flag)],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_WRAPPING, 1, [Define this to disable any and all text 
wrapping.])
- fi])
+fi])
 
 AC_ARG_ENABLE(wrapping-as-root,
 [  --disable-wrapping-as-root  Disable wrapping of text as root by default],
- [if test x$enableval != xyes; then
+[if test x$enableval != xyes; then
     AC_DEFINE(DISABLE_ROOTWRAP, 1, [Define this to disable wrapping as root by 
default.])
- fi])
+fi])
 
 AC_ARG_ENABLE(color,
 [  --enable-color          Enable color and syntax highlighting],
@@ -164,13 +165,13 @@
 [  --enable-multibuffer    Enable multiple file buffers],
 [if test x$enableval = xyes; then
     AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file 
buffers.]) multibuffer_support=yes
- fi])
+fi])
 
 AC_ARG_ENABLE(nanorc,
 [  --enable-nanorc         Enable use of .nanorc file],
 [if test x$enableval = xyes; then
     AC_DEFINE(ENABLE_NANORC, 1, [Define this to use the .nanorc file.]) 
nanorc_support=yes
- fi])
+fi])
 
 AC_ARG_ENABLE(all,
 [  --enable-all            Enable ALL extra nano functionality (kitchen sink 
option)],
@@ -184,9 +185,20 @@
 *** WARNING: Color support is far from perfect, but functional.     ***
 *** Be careful with syntax in your .nanorc or nano may malfunction. ***
 ***********************************************************************
-])
+    ])
 fi])
 
+AC_MSG_CHECKING([whether to enable UTF-8 support])
+AC_ARG_ENABLE(utf8,
+[  --enable-utf8           Enable UTF-8 support],
+[if test x$enableval = xyes; then
+    enable_utf8=yes
+else
+    enable_utf8=no
+fi],
+[enable_utf8=auto])
+AC_MSG_RESULT($enable_utf8)
+
 AC_MSG_CHECKING([whether to use slang])
 CURSES_LIB_NAME=""
 AC_ARG_WITH(slang,
@@ -198,81 +210,106 @@
     *)
        AC_MSG_RESULT(yes)
 
-       if test "$with_slang" != "yes"; then
+       if test x$with_slang != xyes; then
            # Add additional search path
            LDFLAGS="-L$with_slang/lib $LDFLAGS"
            CPPFLAGS="-I$with_slang/include $CPPFLAGS"
        fi
 
-       AC_CHECK_HEADER(slcurses.h,
-           AC_MSG_CHECKING([for SLutf8_enable in -lslang])
-           _libs=$LIBS
-           LIBS="$LIBS -lslang"
-           AC_TRY_RUN([
+       if test x$enable_utf8 != xno; then
+           AC_CHECK_HEADER(slcurses.h,
+               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([
+                   [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 x$with_slang != xyes; then
+                       CURSES_LIB="-L${with_slang}/lib -lslang"
+                   else
+                       CURSES_LIB="-lslang"
+                   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 SLutf8_enable in -lslang $tcap])
+                   LIBS="$LIBS $tcap"
+                   AC_TRY_RUN([
 #include <slcurses.h>
 int main(void)
 {
-    SLtt_initialize(NULL);
+    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
-               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)
-
-               # 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_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 x$with_slang != xyes; 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 SLutf8_enable in -lslang $tcap])
-               LIBS="$LIBS $tcap"
-               AC_TRY_RUN([
+                       # We might need the math library
+                       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"
-                   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([
+                           [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 x$with_slang != xyes; then
+                               CURSES_LIB="-L${with_slang}/lib -lslang $tcap 
-lm"
+                           else
+                               CURSES_LIB="-lslang $tcap -lm"
+                           fi
+                           CURSES_LIB_NAME=slang],
+                           [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_ERROR([
+*** The header file slcurses.h was not found. If you wish to use
+*** slang support this header file is required. Please either
+*** install a version of slang that includes the slcurses.h file or
+*** do not call the configure script with --with-slang
+           ]))
+       fi
+
+       if eval "test x$CURSES_LIB_NAME = x"; then
+           # Reset libs if the above slang tests failed
+           if test x$enable_utf8 != xno; then
+               LIBS=$_libs
+           fi
+
+           AC_CHECK_HEADER(slcurses.h,
+               AC_MSG_CHECKING([for SLtt_initialize in -lslang])
+               _libs=$LIBS
+               LIBS="$LIBS -lslang"
+               AC_TRY_RUN([
 #include <slcurses.h>
 int main(void)
 {
@@ -282,35 +319,43 @@
                    [AC_MSG_RESULT(yes)
                    AC_DEFINE(USE_SLANG, 1, [Define to use the slang wrappers 
for curses instead of native curses.])
                    slang_support=yes
-                   if test "$with_slang" != "yes"; then
-                       CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
+                   if test x$with_slang != xyes; then
+                       CURSES_LIB="-L${with_slang}/lib -lslang"
                    else
-                       CURSES_LIB="-lslang $tcap"
+                       CURSES_LIB="-lslang"
                    fi
                    CURSES_LIB_NAME=slang],
                    [AC_MSG_RESULT(no)
 
-                   # We might need the math library
-                   AC_MSG_CHECKING([for SLutf8_enable in -lslang $tcap -lm])
-                   LIBS="$LIBS -lm"
+                   # 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])
+                   LIBS="$LIBS $tcap"
                    AC_TRY_RUN([
 #include <slcurses.h>
 int main(void)
 {
-    SLutf8_enable(TRUE);
+    SLtt_initialize(NULL);
     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"
+                       if test x$with_slang != xyes; then
+                           CURSES_LIB="-L${with_slang}/lib -lslang $tcap"
                        else
-                           CURSES_LIB="-lslang $tcap -lm"
+                           CURSES_LIB="-lslang $tcap"
                        fi
                        CURSES_LIB_NAME=slang],
+                       [AC_MSG_RESULT(no)
+
+                       # We might need the math library
                        AC_MSG_CHECKING([for SLtt_initialize in -lslang $tcap 
-lm])
+                       LIBS="$LIBS -lm"
                        AC_TRY_RUN([
 #include <slcurses.h>
 int main(void)
@@ -318,79 +363,89 @@
     SLtt_initialize(NULL);
     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
-                       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_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_RESULT(yes)
+                           AC_DEFINE(USE_SLANG, 1, [Define to use the slang 
wrappers for curses instead of native curses.])
+                           slang_support=yes
+                           if test x$with_slang != xyes; then
+                               CURSES_LIB="-L${with_slang}/lib -lslang $tcap 
-lm"
+                           else
+                               CURSES_LIB="-lslang $tcap -lm"
+                           fi
+                           CURSES_LIB_NAME=slang],
+                           [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_ERROR([
 *** The header file slcurses.h was not found. If you wish to use
 *** slang support this header file is required. Please either
 *** install a version of slang that includes the slcurses.h file or
 *** do not call the configure script with --with-slang
-]))
+           ]))
+       fi
 
-       test "${_libs+set}" = "set" && LIBS=$_libs
+       if test "${_libs+set}" = "set"; then
+           LIBS=$_libs
+       fi
 
-       if test "$with_slang" != "yes"; then
+       if test x$with_slang != xyes; then
            LDFLAGS=${_ldflags}
        fi
        ;;
     esac], [AC_MSG_RESULT(no)])
 
-dnl Checks for functions
-AC_CHECK_FUNCS(snprintf vsnprintf isblank iswalnum iswblank iswspace 
strcasecmp strncasecmp strcasestr strnlen getline getdelim mblen mbtowc wctomb 
wcwidth)
-if test "x$ac_cv_func_snprintf" = "xno" -o "x$ac_cv_func_vsnprintf" = "xno"
-then
-       AM_PATH_GLIB_2_0(2.0.0,,
-           AC_MSG_ERROR([
+dnl Checks for functions.
+
+AC_CHECK_FUNCS(snprintf vsnprintf isblank strcasecmp strncasecmp strcasestr 
strnlen getline getdelim)
+
+if test x$enable_utf8 != xno; then
+    AC_CHECK_FUNCS(iswalnum mblen mbtowc wctomb wcwidth iswspace iswblank)
+fi
+
+if test x$ac_cv_func_snprintf = xno -o x$ac_cv_func_vsnprintf = xno; then
+    AM_PATH_GLIB_2_0(2.0.0,,
+       AC_MSG_ERROR([
 *** snprintf() and/or vsnprintf() not found.  GLIB 2.x not found either.
 *** You need both snprintf() and vsnprintf().  Alternatively you can
 *** install the GLIB library which can be found at ftp://ftp.gtk.org/.]),
-           glib)
+       glib)
 fi
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 
 dnl Checks for library functions.
+
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS(getopt_long)
 
 dnl Checks for libraries.
-if eval "test x$CURSES_LIB_NAME = x"
-then
+
+if eval "test x$CURSES_LIB_NAME = x"; then
     AC_CHECK_HEADERS(ncurses.h)
-    AC_CHECK_LIB(ncursesw, wget_wch, [CURSES_LIB="-lncursesw" 
CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE="yes"])
-    if eval "test x$CURSES_LIB_NAME = x"
-    then
-        AC_CHECK_LIB(ncurses, initscr, [CURSES_LIB="-lncurses" 
CURSES_LIB_NAME=ncurses])
+
+    if test x$enable_utf8 != xno; then
+       AC_CHECK_LIB(ncursesw, wget_wch, [CURSES_LIB="-lncursesw" 
CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes])
+    fi
+
+    if eval "test x$CURSES_LIB_NAME = x"; then
+       AC_CHECK_LIB(ncurses, initscr, [CURSES_LIB="-lncurses" 
CURSES_LIB_NAME=ncurses])
     fi
 fi
 
-if eval "test x$CURSES_LIB_NAME = x"
-then
+if eval "test x$CURSES_LIB_NAME = x"; then
     AC_CHECK_HEADERS(curses.h)
-    AC_CHECK_LIB(curses, wget_wch, [CURSES_LIB="-lcurses" 
CURSES_LIB_NAME=curses CURSES_LIB_WIDE="yes"])
-    if eval "test x$CURSES_LIB_NAME = x"
-    then
+
+    if test x$enable_utf8 != xno; then
+       AC_CHECK_LIB(curses, wget_wch, [CURSES_LIB="-lcurses" 
CURSES_LIB_NAME=curses CURSES_LIB_WIDE=yes])
+    fi
+
+    if eval "test x$CURSES_LIB_NAME = x"; then
         AC_CHECK_LIB(curses, initscr, [CURSES_LIB="-lcurses" 
CURSES_LIB_NAME=curses])
     fi
 fi
 
-if eval "test x$CURSES_LIB_NAME = x"
-then
+if eval "test x$CURSES_LIB_NAME = x"; then
     AC_MSG_WARN([
 *** No curses lib available.  Consider getting the official ncurses
 *** distribution from ftp://ftp.gnu.org/pub/gnu/ncurses if you get
@@ -407,20 +462,38 @@
 
 AC_SUBST(CURSES_LIB)
 
-if test "x$GLIB_CFLAGS" != "x"
-then
-       CFLAGS="$CFLAGS $GLIB_CFLAGS"
+if test "x$GLIB_CFLAGS" != "x"; then
+    CFLAGS="$CFLAGS $GLIB_CFLAGS"
 fi
-if test "x$GLIB_LIBS" != "x"
-then
-       LDFLAGS="$LDFLAGS $GLIB_LIBS"
+if test "x$GLIB_LIBS" != "x"; then
+    LDFLAGS="$LDFLAGS $GLIB_LIBS"
 fi
 
-if test "x$CURSES_LIB_WIDE" = "xyes" -a "x$ac_cv_func_iswalnum" = "xyes" -a 
"x$ac_cv_func_mblen" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes" -a 
"x$ac_cv_func_wctomb" = "xyes" -a "x$ac_cv_func_wcwidth" = "xyes" && test 
"x$ac_cv_func_iswspace" = "xyes" -o "x$ac_cv_func_iswblank" = "xyes"
-then
+if test x$enable_utf8 != xno && \
+   test x$CURSES_LIB_WIDE = xyes -a \
+        x$ac_cv_func_iswalnum = xyes -a \
+        x$ac_cv_func_mblen = xyes -a \
+        x$ac_cv_func_mbtowc = xyes -a \
+        x$ac_cv_func_wctomb = xyes -a \
+        x$ac_cv_func_wcwidth = xyes && \
+   test x$ac_cv_func_iswspace = xyes -o x$ac_cv_func_iswblank = xyes; then
        AC_DEFINE(NANO_WIDE, 1, [Define this if your system has sufficient wide 
character support (a wide curses library, iswalnum(), iswspace() or iswblank(), 
mblen(), mbtowc(), wctomb(), and wcwidth()).])
 else
-       AC_MSG_WARN([Insufficient wide character support found.  nano will not 
be able to support UTF-8.])
+    if test x$enable_utf8 = xyes; then
+       AC_MSG_ERROR([
+*** UTF-8 support was requested, but insufficient UTF-8 support was
+*** detected in your curses and/or C libraries.  Please verify that your
+*** slang was built with UTF-8 support or your curses was built with
+*** wide character support, and that your C library was built with wide
+*** character support.])
+    elif test x$enable_utf8 != xno; then
+       AC_MSG_WARN([
+*** Insufficient UTF-8 support was detected in your curses and/or C
+*** libraries.  If you want UTF-8 support, please verify that your slang
+*** was built with UTF-8 support or your curses was built with wide
+*** character support, and that your C library was built with wide
+*** character support.])
+    fi
 fi
 
 AC_CONFIG_FILES([

reply via email to

[Prev in Thread] Current Thread [Next in Thread]