<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.79 2002/10/19 00:22:14 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.80 2002/11/08 19:12:21 momjian Exp $
PostgreSQL documentation
-->
<term><literal>pager</literal></term>
<listitem>
<para>
- Toggles the use of a pager for query and <application>psql</> help output. If the
- environment variable <envar>PAGER</envar> is set, the output
- is piped to the specified program. Otherwise a platform-dependent default (such as
+ Controls use of a pager for query and <application>psql</>
+ help output. If the environment variable <envar>PAGER</envar>
+ is set, the output is piped to the specified program.
+ Otherwise a platform-dependent default (such as
<filename>more</filename>) is used.
</para>
<para>
- In any case, <application>psql</application> only uses the
- pager if it seems appropriate. That means among other things
- that the output is to a terminal and that the table would
- normally not fit on the screen. Because of the modular nature
- of the printing routines it is not always possible to predict
- the number of lines that will actually be printed. For that
- reason <application>psql</application> might not appear very
- discriminating about when to use the pager.
+ When the pager is off, the pager is not used. When the pager
+ is on, the pager is used only when appropriate, i.e. the
+ output is to a terminal and will not fit on the screen.
+ (<application>psql</> does not do a perfect job of estimating
+ when to use the pager.) <literal>\pset pager</> turns the
+ pager on and off. Pager can also be set to <literal>always</>,
+ which causes the pager to be always used.
</para>
</listitem>
</varlistentry>
*
* Copyright 2000-2002 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.84 2002/10/23 19:23:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.85 2002/11/08 19:12:21 momjian Exp $
*/
#include "postgres_fe.h"
#include "command.h"
/* toggle use of pager */
else if (strcmp(param, "pager") == 0)
{
- popt->topt.pager = !popt->topt.pager;
+ if (value && strcasecmp(value, "always") == 0)
+ popt->topt.pager = 2;
+ else if (popt->topt.pager == 1)
+ popt->topt.pager = 0;
+ else
+ popt->topt.pager = 1;
if (!quiet)
{
- if (popt->topt.pager)
+ if (popt->topt.pager == 1)
puts(gettext("Using pager is on."));
+ else if (popt->topt.pager == 2)
+ puts(gettext("Using pager is always."));
else
puts(gettext("Using pager is off."));
}
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.51 2002/10/29 19:35:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.52 2002/11/08 19:12:21 momjian Exp $
*/
#include "postgres_fe.h"
#include "common.h"
struct winsize screen_size;
result = ioctl(fileno(stdout), TIOCGWINSZ, &screen_size);
- if (result == -1 || lines > screen_size.ws_row)
+ if (result == -1 || lines > screen_size.ws_row || pager > 1)
{
#endif
pagerprog = getenv("PAGER");
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.60 2002/10/24 01:33:50 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.61 2002/11/08 19:12:21 momjian Exp $
*/
#include "postgres_fe.h"
#include "common.h"
#endif
void
-slashUsage(bool pager)
+slashUsage(unsigned short int pager)
{
FILE *output;
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/help.h,v 1.10 2002/10/23 19:23:57 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/help.h,v 1.11 2002/11/08 19:12:21 momjian Exp $
*/
#ifndef HELP_H
#define HELP_H
void usage(void);
-void slashUsage(bool pager);
+void slashUsage(unsigned short int pager);
void helpSQL(const char *topic, bool pager);
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/print.h,v 1.14 2002/09/04 20:31:36 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/print.h,v 1.15 2002/11/08 19:12:21 momjian Exp $
*/
#ifndef PRINT_H
#define PRINT_H
enum printFormat format; /* one of the above */
bool expanded; /* expanded/vertical output (if supported
* by output format) */
- bool pager; /* use pager for output (if to stdout and
- * stdout is a tty) */
+ unsigned short int pager; /* use pager for output (if to stdout and
+ * stdout is a tty)
+ * 0=off 1=on 2=always */
bool tuples_only; /* don't output headers, row counts, etc. */
unsigned short int border; /* Print a border around the table.
* 0=none, 1=dividing lines, 2=full */
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.68 2002/10/18 22:05:36 petere Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.69 2002/11/08 19:12:21 momjian Exp $
*/
#include "postgres_fe.h"
pset.popt.topt.format = PRINT_ALIGNED;
pset.queryFout = stdout;
pset.popt.topt.border = 1;
- pset.popt.topt.pager = true;
+ pset.popt.topt.pager = 1;
pset.popt.default_footer = true;
SetVariable(pset.vars, "VERSION", PG_VERSION_STR);