No need for screen_size to be static.
authorTom Lane
Sat, 6 Jan 2001 17:43:01 +0000 (17:43 +0000)
committerTom Lane
Sat, 6 Jan 2001 17:43:01 +0000 (17:43 +0000)
src/interfaces/libpq/fe-print.c

index 75418fcd0b9cc5f8b142de92fadad012247d7764..192e89b56f6c266291a1f4802393cd2e61898223 100644 (file)
  * didn't really belong there.
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.38 2000/05/29 21:25:04 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.39 2001/01/06 17:43:01 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include 
-#include "libpq-fe.h"
-#include "libpq-int.h"
-#include "pqsignal.h"
 
 #ifdef WIN32
 #include "win32.h"
 #endif
 #endif
 
-#ifdef TIOCGWINSZ
-static struct winsize screen_size;
-
-#else
-static struct winsize
-{
-   int         ws_row;
-   int         ws_col;
-}          screen_size;
-
-#endif
+#include "libpq-fe.h"
+#include "libpq-int.h"
+#include "pqsignal.h"
 
 
 static void do_field(const PQprintOpt *po, const PGresult *res,
@@ -103,6 +92,15 @@ PQprint(FILE *fout,
        int         usePipe = 0;
        pqsigfunc   oldsigpipehandler = NULL;
        char       *pagerenv;
+#ifdef TIOCGWINSZ
+       struct winsize screen_size;
+#else
+       struct winsize
+       {
+           int         ws_row;
+           int         ws_col;
+       }           screen_size;
+#endif
 
        nTups = PQntuples(res);
        if (!(fieldNames = (const char **) calloc(nFields, sizeof(char *))))
@@ -151,17 +149,21 @@ PQprint(FILE *fout,
 #endif
            )
        {
-           /* try to pipe to the pager program if possible */
+           /*
+            * If we think there'll be more than one screen of output,
+            * try to pipe to the pager program.
+            */
 #ifdef TIOCGWINSZ
            if (ioctl(fileno(stdout), TIOCGWINSZ, &screen_size) == -1 ||
                screen_size.ws_col == 0 ||
                screen_size.ws_row == 0)
            {
-#endif
                screen_size.ws_row = 24;
                screen_size.ws_col = 80;
-#ifdef TIOCGWINSZ
            }
+#else
+           screen_size.ws_row = 24;
+           screen_size.ws_col = 80;
 #endif
            pagerenv = getenv("PAGER");
            if (pagerenv != NULL &&