From 7292131c66db233675bef4767012783a584a2655 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 27 Aug 2002 20:16:49 +0000 Subject: [PATCH] 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. --- doc/src/sgml/ref/psql-ref.sgml | 4 +-- src/bin/psql/common.c | 4 +-- src/bin/psql/describe.c | 4 +-- src/bin/psql/mbprint.c | 19 ++--------- src/bin/psql/mbprint.h | 8 ++--- src/bin/psql/print.c | 74 ++---------------------------------------- src/bin/psql/startup.c | 35 +++----------------- src/bin/psql/stringutils.c | 10 +----- 8 files changed, 18 insertions(+), 140 deletions(-) diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 02c5d833b8..3bded5cf93 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ @@ -1591,7 +1591,7 @@ lo_import 152801 \timing - Toggles a display of how long each query takes, in milliseconds. + Toggles a display of how long each SQL statement takes, in milliseconds. diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 9362886c4c..f8bf9c9a35 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.42 2002/08/10 19:35:00 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.43 2002/08/27 20:16:48 petere Exp $ */ #include "postgres_fe.h" @@ -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 43ebe94e58..64cef43170 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -3,7 +3,7 @@ * * Copyright 2000-2002 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.65 2002/08/27 18:28:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.66 2002/08/27 20:16:48 petere Exp $ */ #include "postgres_fe.h" #include "describe.h" @@ -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 b0478eeef8..dcd305d921 100644 --- a/src/bin/psql/mbprint.c +++ b/src/bin/psql/mbprint.c @@ -3,14 +3,12 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/mbprint.c,v 1.3 2001/10/28 06:25:58 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/mbprint.c,v 1.4 2002/08/27 20:16:48 petere Exp $ */ #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 3c5660f376..826b71c84a 100644 --- a/src/bin/psql/mbprint.h +++ b/src/bin/psql/mbprint.h @@ -1,17 +1,13 @@ -/* $Id: mbprint.h,v 1.4 2001/11/05 17:46:31 momjian Exp $ */ +/* $Id: mbprint.h,v 1.5 2002/08/27 20:16:48 petere Exp $ */ #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 a8a0b9af7b..f8dd092d67 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.28 2002/07/18 04:46:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/print.c,v 1.29 2002/08/27 20:16:48 petere Exp $ */ #include "postgres_fe.h" #include "print.h" @@ -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 ed734ec5a1..a93219d22f 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.62 2002/08/10 19:35:01 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.63 2002/08/27 20:16:48 petere Exp $ */ #include "postgres_fe.h" @@ -11,7 +11,7 @@ #ifndef WIN32 #include -#else /* WIN32 */ +#else /* WIN32 */ #include #include #include @@ -21,9 +21,7 @@ #include #endif -#ifdef ENABLE_NLS #include -#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 a406c59c8d..8ff58c4643 100644 --- a/src/bin/psql/stringutils.c +++ b/src/bin/psql/stringutils.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.29 2002/07/02 05:49:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.30 2002/08/27 20:16:49 petere Exp $ */ #include "postgres_fe.h" #include "stringutils.h" @@ -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? */ -- 2.11.0