diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 9e88a8f7c570c614855e3a2fbc10e3a8089c62b1..154e7a27c75c65bfbc9b4a541931110b4bd6f243 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.34 2001/06/30 17:26:11 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.35 2001/07/08 14:42:17 petere Exp $ */ #include "postgres_fe.h" #include "describe.h" @@ -642,7 +642,7 @@ describeTableDetails(const char *name, bool desc) { PGresult *result; - sprintf(buf, "SELECT i.indisunique, i.indisprimary, a.amname\n" + sprintf(buf, "SELECT i.indisunique, i.indisprimary, i.indislossy, a.amname\n" "FROM pg_index i, pg_class c, pg_am a\n" "WHERE i.indexrelid = c.oid AND c.relname = '%s' AND c.relam = a.oid", name); @@ -652,14 +652,18 @@ describeTableDetails(const char *name, bool desc) error = true; else { + /* XXX This construction is poorly internationalized. */ footers = xmalloc(2 * sizeof(*footers)); - footers[0] = xmalloc(NAMEDATALEN + 32); - sprintf(footers[0], "%s%s", - strcmp(PQgetvalue(result, 0, 0), "t") == 0 ? "unique " : "", - PQgetvalue(result, 0, 2) + footers[0] = xmalloc(NAMEDATALEN + 128); + snprintf(footers[0], NAMEDATALEN + 128, "%s%s%s", + strcmp(PQgetvalue(result, 0, 0), "t") == 0 ? _("unique ") : "", + PQgetvalue(result, 0, 3), + strcmp(PQgetvalue(result, 0, 2), "t") == 0 ? _(" (lossy)") : "" ); if (strcmp(PQgetvalue(result, 0, 1), "t") == 0) - strcat(footers[0], " (primary key)"); + snprintf(footers[0] + strlen(footers[0]), + NAMEDATALEN + 128 - strlen(footers[0]), + _(" (primary key)")); footers[1] = NULL; } }