Browse Source

man: Patch to adjust output width to terminal

Fixes https://github.com/termux/termux-app/issues/162
android-5
Fredrik Fornwall 8 years ago
parent
commit
80c266a76c
  1. 2
      packages/man/build.sh
  2. 38
      packages/man/term_ascii.c.patch

2
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

38
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 <sys/types.h>
+#include <sys/ioctl.h>
#include <assert.h>
#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;
Loading…
Cancel
Save