diff --git a/utils/Makefile b/utils/Makefile index 45c078c9..d964b331 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -76,6 +76,7 @@ xinstall MANPAGES=\ chkblayout.1 \ kernelinfo.1 \ +pager.1 \ passwd.1 \ readlink.1 \ diff --git a/utils/pager.1 b/utils/pager.1 new file mode 100644 index 00000000..127b023e --- /dev/null +++ b/utils/pager.1 @@ -0,0 +1,51 @@ +.Dd October 05, 2016 +.Dt PAGER 1 +.Os +.Sh NAME +.Nm pager +.Nd display files one page at a time +.Sh SYNOPSIS +.Nm +.Op Fl Rr +.Ar file ... +.Sh DESCRIPTION +.Nm +displays the input one page at a time. The input is the concatenation of the +input files, or the standard input if no files were specified and the +standard input is not a terminal. +.Pp +The options are as follows: +.Bl -tag -width "12345678" +.It Fl R +Output only escape sequences that change font properties such as color and +boldness. +.It Fl r +Causes raw control characters to be dumped directly onto the terminal. Usage +of this option may cause output to be misleading for suspicious files, as the +escape codes in the file are rendered and can be used to hide parts of the +input. Avoid the -r option if you want to see the actual bytes in the file, +or use -R to show only selected escape codes. +.Sh COMMANDS +.Nm +supports the following key commands: +.Bl -tag -width "12345678" +.It Enter or Down Arrow +Scroll the file one line down. +.It Up Arrow +Scroll the file one line up. +.It Space or Page Down +Scroll the file one page down. +.It Page Up +Scroll the file one page up. +.It End +Scroll all the way down to the end of the file. +.It Home +Scroll all the way up to the beginning of the file. +.It q or Q +Exit the pager. +.El +.Sh EXIT STATUS +.Nm +will exit 0 on success and non-zero otherwise. +.Sh SEE ALSO +.Xr editor 1 diff --git a/utils/pager.c b/utils/pager.c index 96d1ec87..832218ae 100644 --- a/utils/pager.c +++ b/utils/pager.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -604,17 +605,6 @@ static void compact_arguments(int* argc, char*** argv) } } -static void help(FILE* fp, const char* argv0) -{ - fprintf(fp, "Usage: %s [OPTION]... [FILES]...\n", argv0); - fprintf(fp, "Displays files one page at a time.\n"); -} - -static void version(FILE* fp, const char* argv0) -{ - fprintf(fp, "%s (Sortix) %s\n", argv0, VERSIONSTR); -} - int main(int argc, char* argv[]) { setlocale(LC_ALL, ""); @@ -638,7 +628,6 @@ int main(int argc, char* argv[]) } } - const char* argv0 = argv[0]; for ( int i = 1; i < argc; i++ ) { const char* arg = argv[i]; @@ -655,21 +644,11 @@ int main(int argc, char* argv[]) case 'r': pager.flag_raw_control_chars = true; break; case 'R': pager.flag_color_sequences = true; break; default: - fprintf(stderr, "%s: unknown option -- '%c'\n", argv0, c); - help(stderr, argv0); - exit(1); + errx(1, "unknown option -- '%c'", c); } } - else if ( !strcmp(arg, "--help") ) - help(stdout, argv0), exit(0); - else if ( !strcmp(arg, "--version") ) - version(stdout, argv0), exit(0); else - { - fprintf(stderr, "%s: unknown option: %s\n", argv0, arg); - help(stderr, argv0); - exit(1); - } + errx(1, "unknown option: %s", arg); } compact_arguments(&argc, &argv);