summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apropos.17
-rwxr-xr-xconfigure30
-rw-r--r--configure.local.example8
-rw-r--r--main.c2
-rw-r--r--man.17
-rw-r--r--mandoc.19
6 files changed, 43 insertions, 20 deletions
diff --git a/apropos.1 b/apropos.1
index 038db46b..c5c90d30 100644
--- a/apropos.1
+++ b/apropos.1
@@ -73,7 +73,7 @@ would.
If the standard output is a terminal device and
.Fl c
is not specified, use
-.Xr more 1
+.Xr less 1
to paginate them.
In
.Fl a
@@ -340,7 +340,7 @@ types appearing in function arguments in the SYNOPSIS
Any non-empty value of the environment variable
.Ev MANPAGER
is used instead of the standard pagination program,
-.Xr more 1 ;
+.Xr less 1 ;
see
.Xr man 1
for details.
@@ -363,8 +363,7 @@ Specifies the pagination program to use when
.Ev MANPAGER
is not defined.
If neither PAGER nor MANPAGER is defined,
-.Xr more 1
-.Fl s
+.Xr less 1
is used.
Only used if
.Fl a
diff --git a/configure b/configure
index 6f77484b..1072a305 100755
--- a/configure
+++ b/configure
@@ -119,6 +119,7 @@ BINM_MAKEWHATIS="makewhatis"
BINM_MAN="man"
BINM_SOELIM="soelim"
BINM_WHATIS="whatis"
+BINM_PAGER=
MANM_MAN="man"
MANM_MANCONF="man.conf"
MANM_MDOC="mdoc"
@@ -343,18 +344,34 @@ else
runtest fts FTS || true
fi
+# --- pager ---
+manual=
+if [ -n "${BINM_PAGER}" ]; then
+ manual=" (manual)"
+elif less test-noop.c 1>/dev/null 2>&3; then
+ BINM_PAGER=less
+ echo "tested less: yes" 1>&2
+ echo "tested less: yes" 1>&3
+else
+ BINM_PAGER=more
+ echo "tested less: no" 1>&2
+ echo "tested less: no" 1>&3
+fi
+echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&2
+echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&3
+
# --- tagging support in the pager ---
-if ismanual "less -T" LESS_T ${HAVE_LESS_T}; then
+if ismanual "${BINM_PAGER} -T" LESS_T ${HAVE_LESS_T}; then
:
-elif less -ET /dev/null test-noop.c 1>/dev/null 2>&3; then
+elif ${BINM_PAGER} -T /dev/null test-noop.c 1>/dev/null 2>&3; then
HAVE_LESS_T=1
- echo "tested less -T: yes" 1>&2
- echo "tested less -T: yes" 1>&3
+ echo "tested ${BINM_PAGER} -T: yes" 1>&2
+ echo "tested ${BINM_PAGER} -T: yes" 1>&3
echo 1>&3
else
HAVE_LESS_T=0
- echo "tested less -T: no" 1>&2
- echo "tested less -T: no" 1>&3
+ echo "tested ${BINM_PAGER} -T: no" 1>&2
+ echo "tested ${BINM_PAGER} -T: no" 1>&3
echo 1>&3
fi
@@ -493,6 +510,7 @@ cat << __HEREDOC__
#define BINM_MAN "${BINM_MAN}"
#define BINM_SOELIM "${BINM_SOELIM}"
#define BINM_WHATIS "${BINM_WHATIS}"
+#define BINM_PAGER "${BINM_PAGER}"
__HEREDOC__
diff --git a/configure.local.example b/configure.local.example
index f9d39200..95759f61 100644
--- a/configure.local.example
+++ b/configure.local.example
@@ -151,6 +151,14 @@ BINM_WHATIS=mwhatis # default is "whatis"
BINM_MAKEWHATIS=mandocdb # default is "makewhatis"
BINM_SOELIM=msoelim # default is "soelim"
+# If less(1) is available, it is used as the default manual pager.
+# Otherwise, more(1) is used: its existence is required by POSIX.
+# It is possible to force using a different default pager, either
+# by giving the name of a program found in the PATH, or by giving
+# an absolute path.
+
+BINM_PAGER=pg # default is "less" or "more"
+
# Some distributions do not want hardlinks
# between installed binary programs.
# Set the following variable to use symbolic links instead.
diff --git a/main.c b/main.c
index 5fbac335..33e921d0 100644
--- a/main.c
+++ b/main.c
@@ -1218,7 +1218,7 @@ spawn_pager(struct outstate *outst, char *tag_target)
if (pager == NULL || *pager == '\0')
pager = getenv("PAGER");
if (pager == NULL || *pager == '\0')
- pager = "more -s";
+ pager = BINM_PAGER;
cp = mandoc_strdup(pager);
/*
diff --git a/man.1 b/man.1
index f49369d9..272da822 100644
--- a/man.1
+++ b/man.1
@@ -74,7 +74,7 @@ See
for a description of the contents of this file.
.It Fl c
Copy the manual page to the standard output instead of using
-.Xr more 1
+.Xr less 1
to paginate it.
This is done by default if the standard output is not a terminal device.
.Pp
@@ -275,7 +275,7 @@ is case insensitive.
Any non-empty value of the environment variable
.Ev MANPAGER
is used instead of the standard pagination program,
-.Xr more 1 .
+.Xr less 1 .
If
.Xr less 1
is used, the interactive
@@ -329,8 +329,7 @@ Specifies the pagination program to use when
.Ev MANPAGER
is not defined.
If neither PAGER nor MANPAGER is defined,
-.Xr more 1
-.Fl s
+.Xr less 1
is used.
.El
.Sh FILES
diff --git a/mandoc.1 b/mandoc.1
index 743f0795..cc365e26 100644
--- a/mandoc.1
+++ b/mandoc.1
@@ -52,13 +52,13 @@ The options are as follows:
If the standard output is a terminal device and
.Fl c
is not specified, use
-.Xr more 1
+.Xr less 1
to paginate the output, just like
.Xr man 1
would.
.It Fl c
Copy the formatted manual pages to the standard output without using
-.Xr more 1
+.Xr less 1
to paginate them.
This is the default.
It can be specified to override
@@ -650,7 +650,7 @@ It never affects the interpretation of input files.
Any non-empty value of the environment variable
.Ev MANPAGER
is used instead of the standard pagination program,
-.Xr more 1 ;
+.Xr less 1 ;
see
.Xr man 1
for details.
@@ -664,8 +664,7 @@ Specifies the pagination program to use when
.Ev MANPAGER
is not defined.
If neither PAGER nor MANPAGER is defined,
-.Xr more 1
-.Fl s
+.Xr less 1
is used.
Only used if
.Fl a