aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2020-10-17 15:32:39 +0300
committerCem Keylan <cem@ckyln.com>2020-10-17 15:32:39 +0300
commitbfac636f78f60edcfc2d425ada43705aeb818000 (patch)
tree4c37d7d3eef7c7826dca898a7dc7ebff2f84d04c
parentbf1a9e6ee5f2e51e6e947b9125d5d27f89b0edb0 (diff)
downloadotools-bfac636f78f60edcfc2d425ada43705aeb818000.tar.gz
mandoc: don't remove less -T support, make it optional1.1
-rw-r--r--README.md (renamed from README)18
-rw-r--r--patches/0040-mandoc-port-to-musl.patch81
-rw-r--r--usr.bin/mandoc/main.c17
3 files changed, 75 insertions, 41 deletions
diff --git a/README b/README.md
index b8515eb..89ec05a 100644
--- a/README
+++ b/README.md
@@ -18,6 +18,7 @@ You can build software individually by calling 'make <program>', and the
program will be built to the root directory of the source. The Makefile
is bsdmake compatible.
+
requirements
------------
@@ -28,6 +29,23 @@ In order to build 'nc', you need to have a libtls implementation. Carbs Linux
uses libtls-bearssl by default.
+notes
+-----
+
+If you want the manpager to have tags support (doesn't work on busybox less),
+you will need to do the following:
+
+ echo CFLAGS += -DHAVE_LESS_T >> config.mk
+
+
+If you are unsure whether your less implementation includes tag support, run
+the following:
+
+ :> testfile
+ less -F -T testfile testfile && echo CFLAGS += -DHAVE_LESS_T >> config.mk
+ rm testfile
+
+
patch directory
---------------
diff --git a/patches/0040-mandoc-port-to-musl.patch b/patches/0040-mandoc-port-to-musl.patch
index fe2b769..60c503f 100644
--- a/patches/0040-mandoc-port-to-musl.patch
+++ b/patches/0040-mandoc-port-to-musl.patch
@@ -61,47 +61,6 @@ diff -upr a/usr.bin/mandoc/html.c b/usr.bin/mandoc/html.c
#include <sys/types.h>
#include <sys/stat.h>
-diff -upr a/usr.bin/mandoc/main.c b/usr.bin/mandoc/main.c
---- a/usr.bin/mandoc/main.c 2020-04-03 01:10:27.000000000 +0300
-+++ b/usr.bin/mandoc/main.c 2020-10-15 20:36:12.432111094 +0300
-@@ -405,8 +405,10 @@ main(int argc, char *argv[])
- }
- if (search.arch == NULL)
- search.arch = getenv("MACHINE");
-+#ifdef MACHINE
- if (search.arch == NULL)
- search.arch = MACHINE;
-+#endif
- if (outmode == OUTMODE_ONE)
- search.firstmatch = 1;
- }
-@@ -1183,7 +1185,6 @@ spawn_pager(struct tag_files *tag_files,
- char *argv[MAX_PAGER_ARGS];
- const char *pager;
- char *cp;
-- size_t cmdlen;
- int argc, use_ofn;
- pid_t pager_pid;
-
-@@ -1218,18 +1219,6 @@ spawn_pager(struct tag_files *tag_files,
- /* For more(1) and less(1), use the tag file. */
-
- use_ofn = 1;
-- if (*tag_files->tfn != '\0' && (cmdlen = strlen(argv[0])) >= 4) {
-- cp = argv[0] + cmdlen - 4;
-- if (strcmp(cp, "less") == 0 || strcmp(cp, "more") == 0) {
-- argv[argc++] = mandoc_strdup("-T");
-- argv[argc++] = tag_files->tfn;
-- if (tag_target != NULL) {
-- argv[argc++] = mandoc_strdup("-t");
-- argv[argc++] = tag_target;
-- use_ofn = 0;
-- }
-- }
-- }
- if (use_ofn)
- argv[argc++] = tag_files->ofn;
- argv[argc] = NULL;
diff -upr a/usr.bin/mandoc/mandoc_ohash.c b/usr.bin/mandoc/mandoc_ohash.c
--- a/usr.bin/mandoc/mandoc_ohash.c 2015-10-19 21:58:20.000000000 +0300
+++ b/usr.bin/mandoc/mandoc_ohash.c 2020-10-15 20:22:30.788037370 +0300
@@ -157,3 +116,43 @@ diff -upr a/usr.bin/mandoc/tag.c b/usr.bin/mandoc/tag.c
#include <sys/types.h>
#include <assert.h>
+diff -up a/usr.bin/mandoc/main.c b/usr.bin/mandoc/main.c
+--- a/usr.bin/mandoc/main.c 2020-04-03 01:10:27.000000000 +0300
++++ b/usr.bin/mandoc/main.c 2020-10-17 15:16:29.615721780 +0300
+@@ -405,8 +405,10 @@ main(int argc, char *argv[])
+ }
+ if (search.arch == NULL)
+ search.arch = getenv("MACHINE");
++#ifdef MACHINE
+ if (search.arch == NULL)
+ search.arch = MACHINE;
++#endif
+ if (outmode == OUTMODE_ONE)
+ search.firstmatch = 1;
+ }
+@@ -1183,7 +1185,9 @@ spawn_pager(struct tag_files *tag_files,
+ char *argv[MAX_PAGER_ARGS];
+ const char *pager;
+ char *cp;
++#ifdef HAVE_LESS_T
+ size_t cmdlen;
++#endif
+ int argc, use_ofn;
+ pid_t pager_pid;
+
+@@ -1218,6 +1222,7 @@ spawn_pager(struct tag_files *tag_files,
+ /* For more(1) and less(1), use the tag file. */
+
+ use_ofn = 1;
++#ifdef HAVE_LESS_T
+ if (*tag_files->tfn != '\0' && (cmdlen = strlen(argv[0])) >= 4) {
+ cp = argv[0] + cmdlen - 4;
+ if (strcmp(cp, "less") == 0 || strcmp(cp, "more") == 0) {
+@@ -1230,6 +1235,7 @@ spawn_pager(struct tag_files *tag_files,
+ }
+ }
+ }
++#endif
+ if (use_ofn)
+ argv[argc++] = tag_files->ofn;
+ argv[argc] = NULL;
diff --git a/usr.bin/mandoc/main.c b/usr.bin/mandoc/main.c
index 6f2174a..acdbd91 100644
--- a/usr.bin/mandoc/main.c
+++ b/usr.bin/mandoc/main.c
@@ -1185,6 +1185,9 @@ spawn_pager(struct tag_files *tag_files, char *tag_target)
char *argv[MAX_PAGER_ARGS];
const char *pager;
char *cp;
+#ifdef HAVE_LESS_T
+ size_t cmdlen;
+#endif
int argc, use_ofn;
pid_t pager_pid;
@@ -1219,6 +1222,20 @@ spawn_pager(struct tag_files *tag_files, char *tag_target)
/* For more(1) and less(1), use the tag file. */
use_ofn = 1;
+#ifdef HAVE_LESS_T
+ if (*tag_files->tfn != '\0' && (cmdlen = strlen(argv[0])) >= 4) {
+ cp = argv[0] + cmdlen - 4;
+ if (strcmp(cp, "less") == 0 || strcmp(cp, "more") == 0) {
+ argv[argc++] = mandoc_strdup("-T");
+ argv[argc++] = tag_files->tfn;
+ if (tag_target != NULL) {
+ argv[argc++] = mandoc_strdup("-t");
+ argv[argc++] = tag_target;
+ use_ofn = 0;
+ }
+ }
+ }
+#endif
if (use_ofn)
argv[argc++] = tag_files->ofn;
argv[argc] = NULL;