Restore previous psql behavior of not printing useless trailing spaces
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 12 Feb 2006 02:56:21 +0000 (02:56 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 12 Feb 2006 02:56:21 +0000 (02:56 +0000)
after the data in the last column on a line.

src/bin/psql/print.c

index 64c644784f137ceb552e0e786a4ded6c5a959adf..1b1ff260f843384cbe4f68b45b37081ae0971ff0 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2005, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.82 2006/02/10 22:29:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.83 2006/02/12 02:56:21 tgl Exp $
  */
 #include "postgres_fe.h"
 #include "common.h"
@@ -573,11 +573,15 @@ print_aligned_text(const char *title, const char *const * headers,
            for (j = 0; j < col_count; j++)
            {
                struct lineptr *this_line = col_lineptrs[j] + line_count;
+               bool    finalspaces = (opt_border == 2 || j != col_count-1);
+
                if (complete[j])  /* Just print spaces... */
-                   fprintf(fout, "%*s", widths[j], "");
+               {
+                   if (finalspaces)
+                       fprintf(fout, "%*s", widths[j], "");
+               }
                else
                {
-
                    /* content */
                    if (opt_align[j] == 'r')
                    {
@@ -602,7 +606,7 @@ print_aligned_text(const char *title, const char *const * headers,
                    }
                    else
                        fprintf(fout, "%-s%*s", this_line->ptr,
-                               widths[j] - this_line->width, "");
+                               finalspaces ? (widths[j] - this_line->width) : 0, "");
                    /* If at the right height, done this col */
                    if (line_count == heights[j]-1 || !this_line[1].ptr)
                    {