1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

In psql, use PSQL_PAGER in preference to PAGER, if it's set.

This allows the user's environment to set up a psql-specific choice
of pager, in much the same way that we provide PSQL_EDITOR to allow
a psql-specific override of the more widely known EDITOR variable.

Pavel Stehule, reviewed by Thomas Munro

Discussion: https://postgr.es/m/CAFj8pRD3RRk9S1eRbnGm_T6brc3Ss5mohraNzTSJquzx+pmtKA@mail.gmail.com
This commit is contained in:
Tom Lane
2017-09-05 12:02:06 -04:00
parent ebd346caf4
commit 5e8304fdce
4 changed files with 39 additions and 27 deletions

View File

@ -459,8 +459,6 @@ helpVariables(unsigned short int pager)
fprintf(output, _(" COLUMNS\n"
" number of columns for wrapped format\n"));
fprintf(output, _(" PAGER\n"
" name of external pager program\n"));
fprintf(output, _(" PGAPPNAME\n"
" same as the application_name connection parameter\n"));
fprintf(output, _(" PGDATABASE\n"
@ -481,6 +479,8 @@ helpVariables(unsigned short int pager)
" how to specify a line number when invoking the editor\n"));
fprintf(output, _(" PSQL_HISTORY\n"
" alternative location for the command history file\n"));
fprintf(output, _(" PSQL_PAGER, PAGER\n"
" name of external pager program\n"));
fprintf(output, _(" PSQLRC\n"
" alternative location for the user's .psqlrc file\n"));
fprintf(output, _(" SHELL\n"

View File

@ -2870,7 +2870,9 @@ PageOutput(int lines, const printTableOpt *topt)
const char *pagerprog;
FILE *pagerpipe;
pagerprog = getenv("PAGER");
pagerprog = getenv("PSQL_PAGER");
if (!pagerprog)
pagerprog = getenv("PAGER");
if (!pagerprog)
pagerprog = DEFAULT_PAGER;
else

View File

@ -165,6 +165,13 @@ PQprint(FILE *fout, const PGresult *res, const PQprintOpt *po)
screen_size.ws_row = 24;
screen_size.ws_col = 80;
#endif
/*
* Since this function is no longer used by psql, we don't examine
* PSQL_PAGER. It's possible that the hypothetical external users
* of the function would like that to happen, but in the name of
* backwards compatibility, we'll stick to just examining PAGER.
*/
pagerenv = getenv("PAGER");
/* if PAGER is unset, empty or all-white-space, don't use pager */
if (pagerenv != NULL &&