From 866e5f2638032253691109a122b55245ee9a6048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Tue, 20 Feb 2018 02:23:52 +0100 Subject: [PATCH] lynx: add patch for ncurses >= 6.1 --- .../patches/ncurses-opaque_struct_term.patch | 59 +++++++++++++++++++ srcpkgs/lynx/template | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/lynx/patches/ncurses-opaque_struct_term.patch diff --git a/srcpkgs/lynx/patches/ncurses-opaque_struct_term.patch b/srcpkgs/lynx/patches/ncurses-opaque_struct_term.patch new file mode 100644 index 00000000000..047fea9deac --- /dev/null +++ b/srcpkgs/lynx/patches/ncurses-opaque_struct_term.patch @@ -0,0 +1,59 @@ +Patch devised by comparing current source code against the +latest snapshot at https://github.com/ThomasDickey/lynx-snapshots/ +@pullmoll + +--- src/LYStrings.c 2013-11-29 01:52:56.000000000 +0100 ++++ src/LYStrings.c 2018-02-20 02:05:57.955776204 +0100 +@@ -1004,12 +1004,13 @@ + { + char name[BUFSIZ]; + int code; ++ TERMTYPE *tp = (TERMTYPE *) (cur_term); + + LYStrNCpy(name, first, len); + if ((code = lookup_tiname(name, strnames)) >= 0 + || (code = lookup_tiname(name, strfnames)) >= 0) { +- if (cur_term->type.Strings[code] != 0) { +- LYStrNCpy(*result, cur_term->type.Strings[code], (final - *result)); ++ if (tp->Strings[code] != 0) { ++ LYStrNCpy(*result, tp->Strings[code], (final - *result)); + (*result) += strlen(*result); + } + } +--- src/LYCurses.c 2014-03-09 22:43:10.000000000 +0100 ++++ src/LYCurses.c 2018-02-20 02:15:16.849798027 +0100 +@@ -1704,8 +1704,10 @@ + if (cur_term == 0) { + can_fix = FALSE; + } else { +- saved_tty = cur_term->Nttyb; ++ tcgetattr(fileno(stdout), &saved_tty); + did_save = TRUE; ++ if ((saved_tty.c_oflag & ONLCR)) ++ can_fix = FALSE; + #if NCURSES_VERSION_PATCH < 20010529 + /* workaround for optimizer bug with nonl() */ + if ((tigetstr("cud1") != 0 && *tigetstr("cud1") == '\n') +--- src/LYCurses.c 2018-02-20 02:16:04.602799891 +0100 ++++ src/LYCurses.c 2018-02-20 02:18:32.008805647 +0100 +@@ -1719,14 +1719,17 @@ + if (can_fix) { + if (normal) { + if (!waiting) { +- cur_term->Nttyb.c_oflag |= ONLCR; ++ struct termios alter_tty = saved_tty; ++ alter_tty.c_oflag |= ONLCR; ++ tcsetattr(fileno(stdout), TCSAFLUSH, &alter_tty); ++ def_prog_mode(); + waiting = TRUE; + nonl(); + } + } else { + if (waiting) { +- cur_term->Nttyb = saved_tty; +- SET_TTY(fileno(stdout), &saved_tty); ++ tcsetattr(fileno(stdout), TCSAFLUSH, &saved_tty); ++ def_prog_mode(); + waiting = FALSE; + nl(); + LYrefresh(); diff --git a/srcpkgs/lynx/template b/srcpkgs/lynx/template index 65bedb867fc..3da29857027 100644 --- a/srcpkgs/lynx/template +++ b/srcpkgs/lynx/template @@ -11,7 +11,7 @@ short_desc="A text browser for the World Wide Web" maintainer="Enno Boland " makedepends="zlib-devel bzip2-devel ncurses-devel libressl-devel" license="GPL-2" -homepage="http://lynx.isc.org" +homepage="http://lynx.invisible-island.net/" distfiles="http://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_distver}rel.${_patchver}.tar.gz" checksum=234c9dc77d4c4594ad6216d7df4d49eae3019a3880e602f39721b35b97fbc408