summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2002-08-27 20:16:49 +0000
committerPeter Eisentraut2002-08-27 20:16:49 +0000
commitd0677957b5585d05b71846594ee957641b230473 (patch)
treefe64ebe1fa5faf1859a9d2ca54ff27ad5b3a7e26
parent7c82e21dca98743c9c0a4ba81deb4685db4271b2 (diff)
Enable locale, so case conversion (identifier processing) and number
formatting (\timing) works correctly. Change "Total time" to "Time" since there is nothing that "total" refers to. Remove non-multibyte code.
-rw-r--r--doc/src/sgml/ref/psql-ref.sgml2
-rw-r--r--src/bin/psql/common.c2
-rw-r--r--src/bin/psql/describe.c2
-rw-r--r--src/bin/psql/mbprint.c17
-rw-r--r--src/bin/psql/mbprint.h6
-rw-r--r--src/bin/psql/print.c72
-rw-r--r--src/bin/psql/startup.c33
-rw-r--r--src/bin/psql/stringutils.c8
8 files changed, 10 insertions, 132 deletions
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 93418991f2..a02de5bc7d 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -1591,7 +1591,7 @@ lo_import 152801
<term><literal>\timing</literal></term>
<listitem>
<para>
- Toggles a display of how long each query takes, in milliseconds.
+ Toggles a display of how long each SQL statement takes, in milliseconds.
</para>
</listitem>
</varlistentry>
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index e07cbe3f81..ef86bee5d4 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -466,7 +466,7 @@ SendQuery(const char *query)
/* Possible microtiming output */
if (pset.timing && success)
- printf(gettext("Total time: %.2f msec\n"),
+ printf(gettext("Time: %.2f ms\n"),
((after.tv_sec-before.tv_sec)*1000000 + after.tv_usec - before.tv_usec) / 1000.0);
return success;
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 60f3e748b3..ed71bdfd10 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -305,11 +305,9 @@ listAllDbs(bool verbose)
"SELECT d.datname as \"%s\",\n"
" u.usename as \"%s\"",
_("Name"), _("Owner"));
-#ifdef MULTIBYTE
appendPQExpBuffer(&buf,
",\n pg_catalog.pg_encoding_to_char(d.encoding) as \"%s\"",
_("Encoding"));
-#endif
if (verbose)
appendPQExpBuffer(&buf,
",\n pg_catalog.obj_description(d.oid, 'pg_database') as \"%s\"",
diff --git a/src/bin/psql/mbprint.c b/src/bin/psql/mbprint.c
index 84b31e3d1b..9af78d380e 100644
--- a/src/bin/psql/mbprint.c
+++ b/src/bin/psql/mbprint.c
@@ -9,8 +9,6 @@
#include "postgres_fe.h"
#include "mbprint.h"
-#ifdef MULTIBYTE
-
#include "mb/pg_wchar.h"
#include "settings.h"
@@ -195,7 +193,7 @@ utf2ucs(const unsigned char *c)
/* mb_utf_wcwidth : calculate column length for the utf8 string pwcs
*/
static int
-mb_utf_wcswidth(unsigned char *pwcs, int len)
+mb_utf_wcswidth(unsigned char *pwcs, size_t len)
{
int w,
l = 0;
@@ -312,7 +310,7 @@ mb_utf_validate(unsigned char *pwcs)
*/
int
-pg_wcswidth(unsigned char *pwcs, int len)
+pg_wcswidth(unsigned char *pwcs, size_t len)
{
if (pset.encoding == PG_UTF8)
return mb_utf_wcswidth(pwcs, len);
@@ -340,14 +338,3 @@ mbvalidate(unsigned char *pwcs)
return pwcs;
}
}
-
-#else /* !MULTIBYTE */
-
-/* in single-byte environment, all cells take 1 column */
-int
-pg_wcswidth(unsigned char *pwcs, int len)
-{
- return len;
-}
-
-#endif
diff --git a/src/bin/psql/mbprint.h b/src/bin/psql/mbprint.h
index 1f139191bc..4e96373d49 100644
--- a/src/bin/psql/mbprint.h
+++ b/src/bin/psql/mbprint.h
@@ -2,16 +2,12 @@
#ifndef MBPRINT_H
#define MBPRINT_H
-
-#ifdef MULTIBYTE
-
#include "mb/pg_wchar.h"
pg_wchar utf2ucs(const unsigned char *c);
unsigned char *mbvalidate(unsigned char *pwcs);
-#endif /* MULTIBYTE */
-int pg_wcswidth(unsigned char *pwcs, int len);
+int pg_wcswidth(unsigned char *pwcs, size_t len);
#endif /* MBPRINT_H */
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 5e2f2f2718..1166b2b1c8 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -209,13 +209,9 @@ print_aligned_text(const char *title, const char *const * headers,
FILE *fout)
{
unsigned int col_count = 0;
-
-#ifdef MULTIBYTE
unsigned int cell_count = 0;
unsigned int *head_w,
*cell_w;
-#endif
-
unsigned int i,
tmp;
unsigned int *widths,
@@ -233,7 +229,6 @@ print_aligned_text(const char *title, const char *const * headers,
exit(EXIT_FAILURE);
}
-#ifdef MULTIBYTE
head_w = calloc(col_count, sizeof(*head_w));
if (!head_w)
{
@@ -256,7 +251,6 @@ print_aligned_text(const char *title, const char *const * headers,
}
else
cell_w = 0;
-#endif
/* calc column widths */
@@ -264,18 +258,14 @@ print_aligned_text(const char *title, const char *const * headers,
{
if ((tmp = pg_wcswidth((unsigned char *) headers[i], strlen(headers[i]))) > widths[i])
widths[i] = tmp;
-#ifdef MULTIBYTE
head_w[i] = tmp;
-#endif
}
for (i = 0, ptr = cells; *ptr; ptr++, i++)
{
if ((tmp = pg_wcswidth((unsigned char *) *ptr, strlen(*ptr))) > widths[i % col_count])
widths[i % col_count] = tmp;
-#ifdef MULTIBYTE
cell_w[i] = tmp;
-#endif
}
if (opt_border == 0)
total_w = col_count - 1;
@@ -313,11 +303,7 @@ print_aligned_text(const char *title, const char *const * headers,
{
int nbspace;
-#ifdef MULTIBYTE
nbspace = widths[i] - head_w[i];
-#else
- nbspace = widths[i] - strlen(headers[i]);
-#endif
/* centered */
fprintf(fout, "%-*s%s%-*s",
@@ -356,26 +342,16 @@ print_aligned_text(const char *title, const char *const * headers,
/* content */
if (opt_align[(i) % col_count] == 'r')
{
-#ifdef MULTIBYTE
fprintf(fout, "%*s%s",
widths[i % col_count] - cell_w[i], "", cells[i]);
-#else
- fprintf(fout, "%*s", widths[i % col_count], cells[i]);
-#endif
}
else
{
if ((i + 1) % col_count == 0 && opt_border != 2)
fputs(cells[i], fout);
else
- {
-#ifdef MULTIBYTE
fprintf(fout, "%-s%*s", cells[i],
widths[i % col_count] - cell_w[i], "");
-#else
- fprintf(fout, "%-*s", widths[i % col_count], cells[i]);
-#endif
- }
}
/* divider */
@@ -406,10 +382,8 @@ print_aligned_text(const char *title, const char *const * headers,
fputc('\n', fout);
/* clean up */
-#ifdef MULTIBYTE
free(cell_w);
free(head_w);
-#endif
free(widths);
}
@@ -429,12 +403,9 @@ print_aligned_vertical(const char *title, const char *const * headers,
hwidth = 0,
dwidth = 0;
char *divider;
-
-#ifdef MULTIBYTE
unsigned int cell_count = 0;
unsigned int *cell_w,
*head_w;
-#endif
if (cells[0] == NULL)
{
@@ -442,8 +413,7 @@ print_aligned_vertical(const char *title, const char *const * headers,
return;
}
-#ifdef MULTIBYTE
- /* pre-count headers */
+ /* count headers and find longest one */
for (ptr = headers; *ptr; ptr++)
col_count++;
head_w = calloc(col_count, sizeof(*head_w));
@@ -480,22 +450,6 @@ print_aligned_vertical(const char *title, const char *const * headers,
dwidth = tmp;
cell_w[i] = tmp;
}
-#else
- /* count columns and find longest header */
- for (ptr = headers; *ptr; ptr++)
- {
- col_count++;
- if ((tmp = strlen(*ptr)) > hwidth)
- hwidth = tmp; /* don't wanna call strlen twice */
- }
-
- /* find longest data cell */
- for (ptr = cells; *ptr; ptr++)
- {
- if ((tmp = strlen(*ptr)) > dwidth)
- dwidth = tmp;
- }
-#endif
/* print title */
if (!opt_barebones && title)
@@ -569,12 +523,8 @@ print_aligned_vertical(const char *title, const char *const * headers,
if (opt_border == 2)
fputs("| ", fout);
-#if MULTIBYTE
fprintf(fout, "%-s%*s", headers[i % col_count],
hwidth - head_w[i % col_count], "");
-#else
- fprintf(fout, "%-*s", hwidth, headers[i % col_count]);
-#endif
if (opt_border > 0)
fputs(" | ", fout);
@@ -584,13 +534,7 @@ print_aligned_vertical(const char *title, const char *const * headers,
if (opt_border < 2)
fprintf(fout, "%s\n", *ptr);
else
- {
-#ifdef MULTIBYTE
fprintf(fout, "%-s%*s |\n", *ptr, dwidth - cell_w[i], "");
-#else
- fprintf(fout, "%-*s |\n", dwidth, *ptr);
-#endif
- }
}
if (opt_border == 2)
@@ -610,10 +554,8 @@ print_aligned_vertical(const char *title, const char *const * headers,
fputc('\n', fout);
free(divider);
-#ifdef MULTIBYTE
free(cell_w);
free(head_w);
-#endif
}
@@ -1167,13 +1109,7 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
}
for (i = 0; i < nfields; i++)
- {
-#ifdef MULTIBYTE
headers[i] = mbvalidate(PQfname(result, i));
-#else
- headers[i] = PQfname(result, i);
-#endif
- }
/* set cells */
@@ -1189,13 +1125,7 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
if (PQgetisnull(result, i / nfields, i % nfields))
cells[i] = opt->nullPrint ? opt->nullPrint : "";
else
- {
-#ifdef MULTIBYTE
cells[i] = mbvalidate(PQgetvalue(result, i / nfields, i % nfields));
-#else
- cells[i] = PQgetvalue(result, i / nfields, i % nfields);
-#endif
- }
}
/* set footers */
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 691cf90ff3..f51cf527f7 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -11,7 +11,7 @@
#ifndef WIN32
#include <unistd.h>
-#else /* WIN32 */
+#else /* WIN32 */
#include <io.h>
#include <windows.h>
#include <win32.h>
@@ -21,9 +21,7 @@
#include <getopt.h>
#endif
-#ifdef ENABLE_NLS
#include <locale.h>
-#endif
#include "libpq-fe.h"
@@ -37,12 +35,7 @@
#include "settings.h"
#include "variables.h"
-#ifdef MULTIBYTE
#include "mb/pg_wchar.h"
-#else
-/* XXX Grand unified hard-coded badness; this should go into libpq */
-#define pg_encoding_to_char(x) "SQL_ASCII"
-#endif
/*
* Global psql options
@@ -105,8 +98,8 @@ main(int argc, char *argv[])
char *password = NULL;
bool need_pass;
-#ifdef ENABLE_NLS
setlocale(LC_ALL, "");
+#ifdef ENABLE_NLS
bindtextdomain("psql", LOCALEDIR);
textdomain("psql");
#endif
@@ -638,26 +631,8 @@ showVersion(void)
{
puts("psql (PostgreSQL) " PG_VERSION);
-#if defined(USE_READLINE) || defined(MULTIBYTE)
- fputs(gettext("contains support for: "), stdout);
-
-#ifdef USE_READLINE
- fputs(gettext("readline"), stdout);
-#define _Feature
-#endif
-
-#ifdef MULTIBYTE
-#ifdef _Feature
- fputs(", ", stdout);
-#else
-#define _Feature
-#endif
- fputs(gettext("multibyte"), stdout);
-#endif
-
-#undef _Feature
-
- puts("");
+#if defined(USE_READLINE)
+ puts(gettext("contains support for readline"));
#endif
puts(gettext("Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group\n"
diff --git a/src/bin/psql/stringutils.c b/src/bin/psql/stringutils.c
index cc51e677e6..f32bcb2397 100644
--- a/src/bin/psql/stringutils.c
+++ b/src/bin/psql/stringutils.c
@@ -52,10 +52,6 @@ strtokx(const char *s,
char *start;
char *cp = NULL;
-#ifndef MULTIBYTE
- (void) encoding; /* not used */
-#endif
-
if (s)
{
free(storage);
@@ -95,11 +91,7 @@ strtokx(const char *s,
for (p = start;
*p && (*p != *cp || *(p - 1) == escape);
-#ifdef MULTIBYTE
p += PQmblen(p, encoding)
-#else
- p++
-#endif
);
/* not yet end of string? */