From 80c266a76c7d558f6082620c88b223262784eca4 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Mon, 26 Sep 2016 18:18:43 -0400 Subject: [PATCH] man: Patch to adjust output width to terminal Fixes https://github.com/termux/termux-app/issues/162 --- packages/man/build.sh | 2 +- packages/man/term_ascii.c.patch | 38 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 packages/man/term_ascii.c.patch diff --git a/packages/man/build.sh b/packages/man/build.sh index edfbed15a..08f29eacf 100644 --- a/packages/man/build.sh +++ b/packages/man/build.sh @@ -1,7 +1,7 @@ TERMUX_PKG_HOMEPAGE=http://mdocml.bsd.lv/ TERMUX_PKG_DESCRIPTION="Man page viewer from the mandoc toolset" TERMUX_PKG_VERSION=1.13.4 -TERMUX_PKG_BUILD_REVISION=2 +TERMUX_PKG_BUILD_REVISION=3 TERMUX_PKG_SRCURL=http://mdocml.bsd.lv/snapshots/mdocml-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_DEPENDS="less,libandroid-glob,libsqlite" TERMUX_PKG_BUILD_IN_SRC=yes diff --git a/packages/man/term_ascii.c.patch b/packages/man/term_ascii.c.patch new file mode 100644 index 000000000..b0f07c576 --- /dev/null +++ b/packages/man/term_ascii.c.patch @@ -0,0 +1,38 @@ +The man implementation from mandoc does not adjust its output size to the terminal. As this is nice to have on smaller screens such as Termux we patch this in using the following patch adapted from + +https://groups.google.com/forum/#!topic/fa.openbsd.tech/AEDMaZmzSU4 + +diff -u -r ../mdocml-1.13.4/term_ascii.c ./term_ascii.c +--- ../mdocml-1.13.4/term_ascii.c 2016-07-14 07:13:40.000000000 -0400 ++++ ./term_ascii.c 2016-09-26 18:06:08.339737451 -0400 +@@ -18,6 +18,7 @@ + #include "config.h" + + #include ++#include + + #include + #if HAVE_WCHAR +@@ -64,12 +65,22 @@ + char *v; + #endif + struct termp *p; ++ struct winsize ws; ++ int tfd; + + p = mandoc_calloc(1, sizeof(struct termp)); + + p->line = 1; + p->tabwidth = 5; + p->defrmargin = p->lastrmargin = 78; ++ if ((tfd = open("/dev/tty", O_RDWR, 0)) != -1) { ++ if (ioctl(tfd, TIOCGWINSZ, &ws) != -1) { ++ if (ws.ws_col < 80) ++ p->defrmargin = p->lastrmargin = ws.ws_col - 2; ++ } ++ close(tfd); ++ } ++ + p->fontq = mandoc_reallocarray(NULL, + (p->fontsz = 8), sizeof(enum termfont)); + p->fontq[0] = p->fontl = TERMFONT_NONE;