Revert the change to print.c, as this breaks src/bin/scripts. The proper
way to fix this is probably implementing safe memory handling functions once in a static lib and then using that in the various client apps, but for the moment I've just reverted the change to un-break the tree.
This commit is contained in:
parent
d77b63b17c
commit
6f046b9d9f
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.45 2004/01/24 19:38:49 neilc Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.46 2004/01/24 20:43:26 neilc Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
@ -224,8 +224,19 @@ print_aligned_text(const char *title, const char *const * headers,
|
|||||||
|
|
||||||
if (col_count > 0)
|
if (col_count > 0)
|
||||||
{
|
{
|
||||||
widths = xcalloc(col_count, sizeof(*widths));
|
widths = calloc(col_count, sizeof(*widths));
|
||||||
head_w = xcalloc(col_count, sizeof(*head_w));
|
if (!widths)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
head_w = calloc(col_count, sizeof(*head_w));
|
||||||
|
if (!head_w)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -239,7 +250,12 @@ print_aligned_text(const char *title, const char *const * headers,
|
|||||||
|
|
||||||
if (cell_count > 0)
|
if (cell_count > 0)
|
||||||
{
|
{
|
||||||
cell_w = xcalloc(cell_count, sizeof(*cell_w));
|
cell_w = calloc(cell_count, sizeof(*cell_w));
|
||||||
|
if (!cell_w)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
cell_w = NULL;
|
cell_w = NULL;
|
||||||
@ -411,7 +427,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
|
|||||||
col_count++;
|
col_count++;
|
||||||
if (col_count > 0)
|
if (col_count > 0)
|
||||||
{
|
{
|
||||||
head_w = xcalloc(col_count, sizeof(*head_w));
|
head_w = calloc(col_count, sizeof(*head_w));
|
||||||
|
if (!head_w)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
head_w = NULL;
|
head_w = NULL;
|
||||||
@ -430,7 +451,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
|
|||||||
|
|
||||||
if (cell_count > 0)
|
if (cell_count > 0)
|
||||||
{
|
{
|
||||||
cell_w = xcalloc(cell_count, sizeof(*cell_w));
|
cell_w = calloc(cell_count, sizeof(*cell_w));
|
||||||
|
if (!cell_w)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
cell_w = NULL;
|
cell_w = NULL;
|
||||||
@ -449,7 +475,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
|
|||||||
fprintf(fout, "%s\n", title);
|
fprintf(fout, "%s\n", title);
|
||||||
|
|
||||||
/* make horizontal border */
|
/* make horizontal border */
|
||||||
divider = xmalloc(hwidth + dwidth + 10);
|
divider = malloc(hwidth + dwidth + 10);
|
||||||
|
if (!divider)
|
||||||
|
{
|
||||||
|
perror("malloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
divider[0] = '\0';
|
divider[0] = '\0';
|
||||||
if (opt_border == 2)
|
if (opt_border == 2)
|
||||||
strcat(divider, "+-");
|
strcat(divider, "+-");
|
||||||
@ -471,9 +502,15 @@ print_aligned_vertical(const char *title, const char *const * headers,
|
|||||||
{
|
{
|
||||||
if (!opt_barebones)
|
if (!opt_barebones)
|
||||||
{
|
{
|
||||||
char *record_str = xmalloc(32);
|
char *record_str = malloc(32);
|
||||||
size_t record_str_len;
|
size_t record_str_len;
|
||||||
|
|
||||||
|
if (!record_str)
|
||||||
|
{
|
||||||
|
perror("malloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
if (opt_border == 0)
|
if (opt_border == 0)
|
||||||
snprintf(record_str, 32, "* Record %d", record++);
|
snprintf(record_str, 32, "* Record %d", record++);
|
||||||
else
|
else
|
||||||
@ -484,7 +521,13 @@ print_aligned_vertical(const char *title, const char *const * headers,
|
|||||||
fprintf(fout, "%.*s%s\n", opt_border, divider, record_str);
|
fprintf(fout, "%.*s%s\n", opt_border, divider, record_str);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *div_copy = xstrdup(divider);
|
char *div_copy = strdup(divider);
|
||||||
|
|
||||||
|
if (!div_copy)
|
||||||
|
{
|
||||||
|
perror("malloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
strncpy(div_copy + opt_border, record_str, record_str_len);
|
strncpy(div_copy + opt_border, record_str, record_str_len);
|
||||||
fprintf(fout, "%s\n", div_copy);
|
fprintf(fout, "%s\n", div_copy);
|
||||||
@ -1098,14 +1141,24 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
|
|||||||
|
|
||||||
nfields = PQnfields(result);
|
nfields = PQnfields(result);
|
||||||
|
|
||||||
headers = xcalloc(nfields + 1, sizeof(*headers));
|
headers = calloc(nfields + 1, sizeof(*headers));
|
||||||
|
if (!headers)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < nfields; i++)
|
for (i = 0; i < nfields; i++)
|
||||||
headers[i] = mbvalidate(PQfname(result, i), opt->topt.encoding);
|
headers[i] = mbvalidate(PQfname(result, i), opt->topt.encoding);
|
||||||
|
|
||||||
/* set cells */
|
/* set cells */
|
||||||
|
|
||||||
cells = xcalloc(nfields * PQntuples(result) + 1, sizeof(*cells));
|
cells = calloc(nfields * PQntuples(result) + 1, sizeof(*cells));
|
||||||
|
if (!cells)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < nfields * PQntuples(result); i++)
|
for (i = 0; i < nfields * PQntuples(result); i++)
|
||||||
{
|
{
|
||||||
@ -1121,9 +1174,14 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
|
|||||||
footers = opt->footers;
|
footers = opt->footers;
|
||||||
else if (!opt->topt.expanded && opt->default_footer)
|
else if (!opt->topt.expanded && opt->default_footer)
|
||||||
{
|
{
|
||||||
footers = xcalloc(2, sizeof(*footers));
|
footers = calloc(2, sizeof(*footers));
|
||||||
|
if (!footers)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
footers[0] = xmalloc(100);
|
footers[0] = malloc(100);
|
||||||
if (PQntuples(result) == 1)
|
if (PQntuples(result) == 1)
|
||||||
snprintf(footers[0], 100, gettext("(1 row)"));
|
snprintf(footers[0], 100, gettext("(1 row)"));
|
||||||
else
|
else
|
||||||
@ -1134,7 +1192,12 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
|
|||||||
|
|
||||||
/* set alignment */
|
/* set alignment */
|
||||||
|
|
||||||
align = xcalloc(nfields + 1, sizeof(*align));
|
align = calloc(nfields + 1, sizeof(*align));
|
||||||
|
if (!align)
|
||||||
|
{
|
||||||
|
perror("calloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < nfields; i++)
|
for (i = 0; i < nfields; i++)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user