diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/psql/common.c | 15 | ||||
-rw-r--r-- | src/bin/psql/print.c | 59 | ||||
-rw-r--r-- | src/bin/psql/print.h | 3 |
3 files changed, 50 insertions, 27 deletions
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index ba6e2954481..3769f671d16 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.62 2003/03/25 02:44:36 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.63 2003/06/12 07:52:51 momjian Exp $ */ #include "postgres_fe.h" #include "common.h" @@ -525,7 +525,18 @@ PrintQueryResults(PGresult *results, success = true; sprintf(buf, "%u", (unsigned int) PQoidValue(results)); if (!QUIET()) - fprintf(pset.queryFout, "%s\n", PQcmdStatus(results)); + { + if (pset.popt.topt.format == PRINT_HTML) + { + fputs("<p>", pset.queryFout); + html_escaped_print(PQcmdStatus(results), pset.queryFout); + fputs("</p>\n", pset.queryFout); + } + else + { + fprintf(pset.queryFout, "%s\n", PQcmdStatus(results)); + } + } SetVariable(pset.vars, "LASTOID", buf); break; } diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 24c4614d1c4..35d9aa0bc21 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/print.c,v 1.37 2003/04/04 15:48:38 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/print.c,v 1.38 2003/06/12 07:52:51 momjian Exp $ */ #include "postgres_fe.h" #include "common.h" @@ -577,7 +577,7 @@ print_aligned_vertical(const char *title, const char *const * headers, /**********************/ -static void +void html_escaped_print(const char *in, FILE *fout) { const char *p; @@ -595,7 +595,13 @@ html_escaped_print(const char *in, FILE *fout) fputs(">", fout); break; case '\n': - fputs("<br>", fout); + fputs("<br />\n", fout); + break; + case '"': + fputs(""", fout); + break; + case '\'': + fputs("'", fout); break; default: fputc(*p, fout); @@ -615,7 +621,7 @@ const char *opt_align, bool opt_barebones, unsigned short int opt_border, unsigned int i; const char *const * ptr; - fprintf(fout, "<table border=%d", opt_border); + fprintf(fout, "<table border=\"%d\"", opt_border); if (opt_table_attr) fprintf(fout, " %s", opt_table_attr); fputs(">\n", fout); @@ -636,7 +642,7 @@ const char *opt_align, bool opt_barebones, unsigned short int opt_border, col_count++; if (!opt_barebones) { - fputs(" <th align=center>", fout); + fputs(" <th align=\"center\">", fout); html_escaped_print(*ptr, fout); fputs("</th>\n", fout); } @@ -648,12 +654,11 @@ const char *opt_align, bool opt_barebones, unsigned short int opt_border, for (i = 0, ptr = cells; *ptr; i++, ptr++) { if (i % col_count == 0) - fputs(" <tr valign=top>\n", fout); + fputs(" <tr valign=\"top\">\n", fout); - fprintf(fout, " <td align=%s>", opt_align[(i) % col_count] == 'r' ? "right" : "left"); - if ((*ptr)[strspn(*ptr, " \t")] == '\0') /* is string only - * whitespace? */ - fputs(" ", fout); + fprintf(fout, " <td align=\"%s\">", opt_align[(i) % col_count] == 'r' ? "right" : "left"); + if ((*ptr)[strspn(*ptr, " \t")] == '\0') /* is string only whitespace? */ + fputs(" ", fout); else html_escaped_print(*ptr, fout); fputs("</td>\n", fout); @@ -666,13 +671,16 @@ const char *opt_align, bool opt_barebones, unsigned short int opt_border, /* print footers */ - if (footers && !opt_barebones) + if (!opt_barebones && footers && *footers) + { + fputs("<p>", fout); for (ptr = footers; *ptr; ptr++) { html_escaped_print(*ptr, fout); - fputs("<br>\n", fout); + fputs("<br />\n", fout); } - + fputs("</p>", fout); + } fputc('\n', fout); } @@ -690,7 +698,7 @@ const char *opt_align, bool opt_barebones, unsigned short int opt_border, unsigned int record = 1; const char *const * ptr; - fprintf(fout, "<table border=%d", opt_border); + fprintf(fout, "<table border=\"%d\"", opt_border); if (opt_table_attr) fprintf(fout, " %s", opt_table_attr); fputs(">\n", fout); @@ -713,19 +721,18 @@ const char *opt_align, bool opt_barebones, unsigned short int opt_border, if (i % col_count == 0) { if (!opt_barebones) - fprintf(fout, "\n <tr><td colspan=2 align=center>Record %d</td></tr>\n", record++); + fprintf(fout, "\n <tr><td colspan=\"2\" align=\"center\">Record %d</td></tr>\n", record++); else - fputs("\n <tr><td colspan=2> </td></tr>\n", fout); + fputs("\n <tr><td colspan=\"2\"> </td></tr>\n", fout); } - fputs(" <tr valign=top>\n" + fputs(" <tr valign=\"top\">\n" " <th>", fout); html_escaped_print(headers[i % col_count], fout); fputs("</th>\n", fout); - fprintf(fout, " <td align=%s>", opt_align[i % col_count] == 'r' ? "right" : "left"); - if ((*ptr)[strspn(*ptr, " \t")] == '\0') /* is string only - * whitespace? */ - fputs(" ", fout); + fprintf(fout, " <td align=\"%s\">", opt_align[i % col_count] == 'r' ? "right" : "left"); + if ((*ptr)[strspn(*ptr, " \t")] == '\0') /* is string only whitespace? */ + fputs(" ", fout); else html_escaped_print(*ptr, fout); fputs("</td>\n </tr>\n", fout); @@ -734,13 +741,16 @@ const char *opt_align, bool opt_barebones, unsigned short int opt_border, fputs("</table>\n", fout); /* print footers */ - if (footers && !opt_barebones) + if (!opt_barebones && footers && *footers) + { + fputs("<p>", fout); for (ptr = footers; *ptr; ptr++) { html_escaped_print(*ptr, fout); - fputs("<br>\n", fout); + fputs("<br />\n", fout); } - + fputs("</p>", fout); + } fputc('\n', fout); } @@ -1115,6 +1125,7 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout) char *align; int i; + /* extract headers */ nfields = PQnfields(result); diff --git a/src/bin/psql/print.h b/src/bin/psql/print.h index e0ce3401d38..a70e7858bbe 100644 --- a/src/bin/psql/print.h +++ b/src/bin/psql/print.h @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/print.h,v 1.16 2003/03/18 22:15:44 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/print.h,v 1.17 2003/06/12 07:52:51 momjian Exp $ */ #ifndef PRINT_H #define PRINT_H @@ -13,6 +13,7 @@ extern FILE *PageOutput(int lines, unsigned short int pager); +extern void html_escaped_print(const char *in, FILE *fout); enum printFormat { |