PANEL_CFLAGS=$(echo $PANEL_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g')
-if test "x$with_curses" = xcurses
-then :
+case $with_curses in #(
+ ncursesw|no) :
+ ;; #(
+ *) :
+ save_curses_cppflags=$CPPFLAGS
+ as_fn_append CPPFLAGS " $CURSES_CFLAGS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether curses supports wide characters" >&5
printf %s "checking whether curses supports wide characters... " >&6; }
if test ${ac_cv_curses_wide+y}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_curses_wide" >&5
printf "%s\n" "$ac_cv_curses_wide" >&6; }
+ CPPFLAGS=$save_curses_cppflags
if test "x$ac_cv_curses_wide" = xyes
then :
printf "%s\n" "#define HAVE_NCURSESW 1" >>confdefs.h
fi
-
-fi
+ ;;
+esac
# On Solaris, term.h requires curses.h
ac_fn_c_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" "
dnl pyconfig.h defines _XOPEN_SOURCE=700
PANEL_CFLAGS=$(echo $PANEL_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g')
-dnl Native curses ("curses") may be wide-character capable (e.g. on NetBSD)
-dnl even though it is not ncursesw. Probe for the wide API; if present, build
-dnl the module against it like ncursesw by defining HAVE_NCURSESW. ncursesw
-dnl already defines HAVE_NCURSESW, and ncurses must stay narrow, so only the
-dnl native backend is probed here.
-AS_VAR_IF([with_curses], [curses], [
+dnl A curses that is not named "ncursesw" can still be wide-character capable:
+dnl the system curses of NetBSD, or an ncurses built with --enable-widec that
+dnl keeps the plain name (pkgsrc, macOS). Probe for the wide API and, if
+dnl present, build the module wide by defining HAVE_NCURSESW. The "ncursesw"
+dnl backend already defines it, so only the other backends are probed.
+AS_CASE([$with_curses], [ncursesw|no], [], [
+ dnl Use the adjusted CURSES_CFLAGS (e.g. macOS's -D_XOPEN_SOURCE_EXTENDED)
+ dnl so the wide-character declarations are visible to the probe. This runs
+ dnl inside an outer WITH_SAVE_ENV, whose single CPPFLAGS save slot is not
+ dnl reentrant, so save and restore CPPFLAGS with a dedicated variable here.
+ save_curses_cppflags=$CPPFLAGS
+ AS_VAR_APPEND([CPPFLAGS], [" $CURSES_CFLAGS"])
AC_CACHE_CHECK([whether curses supports wide characters],
[ac_cv_curses_wide],
[AC_LINK_IFELSE(
]])],
[ac_cv_curses_wide=yes],
[ac_cv_curses_wide=no])])
+ CPPFLAGS=$save_curses_cppflags
dnl HAVE_NCURSESW marks the wide (cchar_t) curses API; its template comes
dnl from the ncursesw pkg-config check above, so no description here.
AS_VAR_IF([ac_cv_curses_wide], [yes], [AC_DEFINE([HAVE_NCURSESW], [1])])