mirror of
https://git.yoctoproject.org/poky
synced 2026-06-02 13:29:49 +00:00
mc: fix build if ncurses have been configured without wide characters
Some distros like poky-tiny set ENABLE_WIDEC=false, which disables wide character support for ncurses. The new patch fixes the build of mc for this case. Since9000f80336, NCURSES_WIDECHAR is set explicitly to 1 for musl. This doesn't work for ENABLE_WIDEC==false. In this case, NCURSES_WIDECHAR must be set explicitly to 0, as curses.h does not record whether the ncurses library has actually been built with or without wide characters. Fixes:9000f80336("mc: upgrade 4.8.25 -> 4.8.26") (From OE-Core rev: 9a3a1a806f0c6963c671f0a46f6e910c6206e681) Signed-off-by: Christian Eggers <ceggers@arri.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
cab36b57c4
commit
0ca6f8f346
+87
@@ -0,0 +1,87 @@
|
|||||||
|
From e7bbf72544ab62db9c92bfe7bd1155227e78c621 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andrew Borodin <aborodin@vmail.ru>
|
||||||
|
Date: Sat, 28 Aug 2021 11:46:53 +0300
|
||||||
|
Subject: [PATCH] Ticket #4200: fix FTBFS with ncurses build with
|
||||||
|
--disable-widec.
|
||||||
|
|
||||||
|
Upstream-Status: Accepted [https://github.com/MidnightCommander/mc/commit/e7bbf72544]
|
||||||
|
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
|
||||||
|
---
|
||||||
|
lib/tty/tty-ncurses.c | 8 ++++++++
|
||||||
|
lib/tty/tty-ncurses.h | 5 +++++
|
||||||
|
lib/tty/tty-slang.h | 2 ++
|
||||||
|
src/filemanager/boxes.c | 2 ++
|
||||||
|
4 files changed, 17 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/tty/tty-ncurses.c b/lib/tty/tty-ncurses.c
|
||||||
|
index f619c0a7bf31..13058a624208 100644
|
||||||
|
--- a/lib/tty/tty-ncurses.c
|
||||||
|
+++ b/lib/tty/tty-ncurses.c
|
||||||
|
@@ -560,6 +560,7 @@ tty_fill_region (int y, int x, int rows, int cols, unsigned char ch)
|
||||||
|
void
|
||||||
|
tty_colorize_area (int y, int x, int rows, int cols, int color)
|
||||||
|
{
|
||||||
|
+#ifdef ENABLE_SHADOWS
|
||||||
|
cchar_t *ctext;
|
||||||
|
wchar_t wch[10]; /* TODO not sure if the length is correct */
|
||||||
|
attr_t attrs;
|
||||||
|
@@ -585,6 +586,13 @@ tty_colorize_area (int y, int x, int rows, int cols, int color)
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free (ctext);
|
||||||
|
+#else
|
||||||
|
+ (void) y;
|
||||||
|
+ (void) x;
|
||||||
|
+ (void) rows;
|
||||||
|
+ (void) cols;
|
||||||
|
+ (void) color;
|
||||||
|
+#endif /* ENABLE_SHADOWS */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
|
diff --git a/lib/tty/tty-ncurses.h b/lib/tty/tty-ncurses.h
|
||||||
|
index d75df9533ab9..8feb17ccd045 100644
|
||||||
|
--- a/lib/tty/tty-ncurses.h
|
||||||
|
+++ b/lib/tty/tty-ncurses.h
|
||||||
|
@@ -30,6 +30,11 @@
|
||||||
|
#define NCURSES_CONST const
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+/* do not draw shadows if NCurses is built with --disable-widec */
|
||||||
|
+#if defined(NCURSES_WIDECHAR) && NCURSES_WIDECHAR
|
||||||
|
+#define ENABLE_SHADOWS 1
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*** typedefs(not structures) and defined constants **********************************************/
|
||||||
|
|
||||||
|
/*** enums ***************************************************************************************/
|
||||||
|
diff --git a/lib/tty/tty-slang.h b/lib/tty/tty-slang.h
|
||||||
|
index 5b12c6512853..eeaade388af4 100644
|
||||||
|
--- a/lib/tty/tty-slang.h
|
||||||
|
+++ b/lib/tty/tty-slang.h
|
||||||
|
@@ -23,6 +23,8 @@
|
||||||
|
#define COLS SLtt_Screen_Cols
|
||||||
|
#define LINES SLtt_Screen_Rows
|
||||||
|
|
||||||
|
+#define ENABLE_SHADOWS 1
|
||||||
|
+
|
||||||
|
/*** enums ***************************************************************************************/
|
||||||
|
|
||||||
|
enum
|
||||||
|
diff --git a/src/filemanager/boxes.c b/src/filemanager/boxes.c
|
||||||
|
index 3eb525be4a9b..98df5ff2ed9a 100644
|
||||||
|
--- a/src/filemanager/boxes.c
|
||||||
|
+++ b/src/filemanager/boxes.c
|
||||||
|
@@ -280,7 +280,9 @@ appearance_box_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm
|
||||||
|
switch (msg)
|
||||||
|
{
|
||||||
|
case MSG_INIT:
|
||||||
|
+#ifdef ENABLE_SHADOWS
|
||||||
|
if (!tty_use_colors ())
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
Widget *shadow;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -11,6 +11,7 @@ RRECOMMENDS:${PN} = "ncurses-terminfo"
|
|||||||
SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
|
SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
|
||||||
file://0001-mc-replace-perl-w-with-use-warnings.patch \
|
file://0001-mc-replace-perl-w-with-use-warnings.patch \
|
||||||
file://nomandate.patch \
|
file://nomandate.patch \
|
||||||
|
file://0001-Ticket-4200-fix-FTBFS-with-ncurses-build-with-disabl.patch \
|
||||||
"
|
"
|
||||||
SRC_URI[sha256sum] = "2f52dd9c75c20d8eac7701bd3a8c6c125aaf8cdd9cf12b78ca50a0102b543407"
|
SRC_URI[sha256sum] = "2f52dd9c75c20d8eac7701bd3a8c6c125aaf8cdd9cf12b78ca50a0102b543407"
|
||||||
|
|
||||||
@@ -27,7 +28,9 @@ PACKAGECONFIG ??= ""
|
|||||||
PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
|
PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
|
||||||
PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
|
PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
|
||||||
|
|
||||||
CFLAGS:append:libc-musl = ' -DNCURSES_WIDECHAR=1 '
|
# enable NCURSES_WIDECHAR=1 only if ENABLE_WIDEC has not been explicitly disabled (e.g. by the distro config).
|
||||||
|
# When compiling against the ncurses library, NCURSES_WIDECHAR needs to explicitly set to 0 in this case.
|
||||||
|
CFLAGS:append:libc-musl = "${@' -DNCURSES_WIDECHAR=1' if bb.utils.to_boolean((d.getVar('ENABLE_WIDEC') or 'True')) else ' -DNCURSES_WIDECHAR=0'}"
|
||||||
EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --disable-configure-args"
|
EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --disable-configure-args"
|
||||||
EXTRANATIVEPATH += "file-native"
|
EXTRANATIVEPATH += "file-native"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user