print_aligned_text and print_aligned_vertical, and their
helper fuctions pass the table formatting and (where
applicable) line style information to allow correct
printing of table lines.

Signed-off-by: Roger Leigh <rle...@debian.org>
---
 src/bin/psql/print.c |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 6f5dcd4..641fd63 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -387,7 +387,9 @@ static const struct printTextFormat utf8format =
 /* draw "line" */
 static void
 _print_horizontal_line(const unsigned int ncolumns, const unsigned int *widths,
-                                          unsigned short border, FILE *fout)
+                      unsigned short border, printTextRule pos,
+                      const printTextFormat *format,
+                      FILE *fout)
 {
        unsigned int i,
                                j;
@@ -424,7 +426,8 @@ _print_horizontal_line(const unsigned int ncolumns, const 
unsigned int *widths,
  *     Print pretty boxes around cells.
  */
 static void
-print_aligned_text(const printTableContent *cont, FILE *fout)
+print_aligned_text(const printTableContent *cont, const printTextFormat 
*format,
+                  FILE *fout)
 {
        bool            opt_tuples_only = cont->opt->tuples_only;
        bool            opt_numeric_locale = cont->opt->numericLocale;
@@ -736,7 +739,7 @@ print_aligned_text(const printTableContent *cont, FILE 
*fout)
                        int                     curr_nl_line;
 
                        if (opt_border == 2)
-                               _print_horizontal_line(col_count, width_wrap, 
opt_border, fout);
+                               _print_horizontal_line(col_count, width_wrap, 
opt_border, PRINT_RULE_TOP, format, fout);
 
                        for (i = 0; i < col_count; i++)
                                pg_wcsformat((unsigned char *) cont->headers[i],
@@ -792,7 +795,7 @@ print_aligned_text(const printTableContent *cont, FILE 
*fout)
                                fputc('\n', fout);
                        }
 
-                       _print_horizontal_line(col_count, width_wrap, 
opt_border, fout);
+                       _print_horizontal_line(col_count, width_wrap, 
opt_border, PRINT_RULE_MIDDLE, format, fout);
                }
        }
 
@@ -935,7 +938,7 @@ print_aligned_text(const printTableContent *cont, FILE 
*fout)
        if (cont->opt->stop_table)
        {
                if (opt_border == 2 && !cancel_pressed)
-                       _print_horizontal_line(col_count, width_wrap, 
opt_border, fout);
+                       _print_horizontal_line(col_count, width_wrap, 
opt_border, PRINT_RULE_BOTTOM, format, fout);
 
                /* print footers */
                if (cont->footers && !opt_tuples_only && !cancel_pressed)
@@ -970,7 +973,9 @@ print_aligned_text(const printTableContent *cont, FILE 
*fout)
 
 
 static void
-print_aligned_vertical(const printTableContent *cont, FILE *fout)
+print_aligned_vertical(const printTableContent *cont,
+                      const printTextFormat *format,
+                      FILE *fout)
 {
        bool            opt_tuples_only = cont->opt->tuples_only;
        bool            opt_numeric_locale = cont->opt->numericLocale;
@@ -2258,7 +2263,7 @@ printTable(const printTableContent *cont, FILE *fout, 
FILE *flog)
        /* print the stuff */
 
        if (flog)
-               print_aligned_text(cont, flog);
+               print_aligned_text(cont, text_format, flog);
 
        switch (cont->opt->format)
        {
@@ -2271,9 +2276,9 @@ printTable(const printTableContent *cont, FILE *fout, 
FILE *flog)
                case PRINT_ALIGNED:
                case PRINT_WRAPPED:
                        if (cont->opt->expanded)
-                               print_aligned_vertical(cont, fout);
+                               print_aligned_vertical(cont, text_format, fout);
                        else
-                               print_aligned_text(cont, fout);
+                               print_aligned_text(cont, text_format, fout);
                        break;
                case PRINT_HTML:
                        if (cont->opt->expanded)
-- 
1.6.3.3


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to