aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <rhaberkorn@fmsbw.de>2026-01-31 14:38:08 +0100
committerRobin Haberkorn <rhaberkorn@fmsbw.de>2026-01-31 14:38:08 +0100
commitcbb822ff9e228883bb877ebcf4f22bb4e2cc0e8e (patch)
tree41919055e5a534415c19b09802ab1ea6e0601682
parente624826447d83f1b79e5442d3695a7528cf578cf (diff)
fixup: require wide-char support even on PDCurses and document new requirementsHEADmaster-fmsbw-cimaster
Also, Scinterm had to be updated again since NetBSD curses stores up to 8 wchar_t per cell.
-rw-r--r--INSTALL9
-rw-r--r--README2
-rw-r--r--configure.ac19
m---------contrib/scinterm0
-rw-r--r--m4/ax_with_ncurses.m44
5 files changed, 19 insertions, 15 deletions
diff --git a/INSTALL b/INSTALL
index a44ee66..3816fde 100644
--- a/INSTALL
+++ b/INSTALL
@@ -21,13 +21,14 @@ SciTECO Build and Runtime Dependencies
* Glib 2 as a cross-platform runtime library (v2.44 or later):
https://developer.gnome.org/glib/
* When choosing the Curses interface, you need one of:
- * NCurses (http://www.gnu.org/software/ncurses/).
- If you plan to use the ncurses MinGW port,
- I recommend ncurses 6.0 or later.
+ * ncurses (http://www.gnu.org/software/ncurses/).
+ Should be built with wide-character support (--enable-widec).
+ If you plan to use the ncurses MinGW port, I recommend ncurses 6.0 or later.
* NetBSD Curses (https://github.com/sabotage-linux/netbsd-curses).
- This is the default on NetBSD.
+ This is the default on NetBSD and should always support wide characters.
* PDCursesMod v4.5.4 or later (https://github.com/Bill-Gray/PDCursesMod.git).
This is the recommended flavor of PDCurses to use.
+ It must be built with WIDE=Y and UTF8=Y.
* PDCurses/EMCurses (https://github.com/rhaberkorn/emcurses).
* PDCurses/XCurses (http://pdcurses.sourceforge.net/).
Note that XCurses v3.4 appears to be broken, you may have to
diff --git a/README b/README
index 4e1fd79..4ed071d 100644
--- a/README
+++ b/README
@@ -23,7 +23,7 @@ The Curses frontend is verified to work with [ncurses](https://www.gnu.org/softw
[PDCurses/XCurses](https://github.com/wmcbrine/PDCurses),
[PDCursesMod](https://github.com/Bill-Gray/PDCursesMod) and
[EMCurses](https://github.com/rhaberkorn/emcurses).
-All X/Open-compatible libraries should be supported.
+All X/Open-compatible libraries with enhanced and wide-character support should be supported.
SVr4 curses without enhanced definitions is **not** supported.
Linux, FreeBSD, NetBSD, [Mac OS X](https://sciteco.fmsbw.de/knowledge/Mac%20OS%20Support),
diff --git a/configure.ac b/configure.ac
index a469a98..ebe7b8b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -289,7 +289,8 @@ case $INTERFACE in
case $INTERFACE in
ncurses)
# This gives precendence to the widechar version of ncurses,
- # which is necessary for Unicode support even when not using widechar APIs.
+ # which is necessary for Unicode support and when using more than
+ # 256 color pairs.
# However we also accept libncurses.so if it also contains the
# enhanced definitions.
# NOTE: This also defines CURSES_CFLAGS and CURSES_LIBS arguments,
@@ -376,16 +377,18 @@ case $INTERFACE in
LIBS="$LIBS $CURSES_LIBS"
fi
+ AC_CHECK_FUNC([add_wch], [], [
+ AC_MSG_ERROR([libpdcurses does not include wide-character support!])
+ ])
+
# It is crucial to define PDC_WIDE before including curses.h.
# FIXME: MinGW has a pdcurses.h that already defines all necessary macros,
# but it's not in upstream PDCurses/PDCursesMod.
- AC_CHECK_FUNC([add_wch], [
- AC_DEFINE(PDC_WIDE, 1, [PDCurses built with wide-character support])
- # FIXME: It would be better to check for PDC_FORCE_UTF8.
- # Theoretically, we could check for endwin_u[32|64]_4302,
- # but I'm not sure this will work reliably in the future.
- AC_DEFINE(PDC_FORCE_UTF8, 1, [PDCursesMod forces use of UTF8])
- ])
+ AC_DEFINE(PDC_WIDE, 1, [PDCurses built with wide-character support])
+ # FIXME: It would be better to check for PDC_FORCE_UTF8.
+ # Theoretically, we could check for endwin_u[32|64]_4302,
+ # but I'm not sure this will work reliably in the future.
+ AC_DEFINE(PDC_FORCE_UTF8, 1, [PDCursesMod forces use of UTF8])
AC_CHECK_FUNC([has_mouse], [
AC_DEFINE(PDC_NCMOUSE, 1, [PDCurses built with ncurses mouse API])
diff --git a/contrib/scinterm b/contrib/scinterm
-Subproject c579c794e085e8b4c8cd812d9e2e1613ab70d0c
+Subproject 5a89baa751e2655f3f11be90c2130e19244acf0
diff --git a/m4/ax_with_ncurses.m4 b/m4/ax_with_ncurses.m4
index 4dc2f33..cdcfd04 100644
--- a/m4/ax_with_ncurses.m4
+++ b/m4/ax_with_ncurses.m4
@@ -5,8 +5,8 @@
# DESCRIPTION
#
# This macro checks for an ncurses library with enhanced definitions
-# providing a curses.h either in the default search path or as
-# established by pkg-config.
+# (including wide-char support) providing a curses.h either in the default
+# search path or as established by pkg-config.
#
# It is based on the AX_WITH_CURSES macro but does not attempt
# to find any non-standard header, which would require #ifdefing