Simplify psql's new linestyle behavior to default to linestyle=ascii all

the time, rather than hoping we can tell whether the terminal supports
UTF8 characters.  Per discussion.
This commit is contained in:
Tom Lane 2009-11-25 20:26:31 +00:00
parent f6a79c5901
commit da29cc8022
6 changed files with 15 additions and 19 deletions

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.234 2009/11/22 22:06:30 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.235 2009/11/25 20:26:30 tgl Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -1785,6 +1785,7 @@ lo_import 152801
or <literal>unicode</literal>. or <literal>unicode</literal>.
Unique abbreviations are allowed. (That would mean one Unique abbreviations are allowed. (That would mean one
letter is enough.) letter is enough.)
The default setting is <literal>ascii</>.
This option only affects the <literal>aligned</> and This option only affects the <literal>aligned</> and
<literal>wrapped</> output formats. <literal>wrapped</> output formats.
</para> </para>
@ -1826,12 +1827,6 @@ lo_import 152801
Plain <acronym>ASCII</acronym> characters work everywhere, but Plain <acronym>ASCII</acronym> characters work everywhere, but
Unicode characters look nicer on displays that recognize them. Unicode characters look nicer on displays that recognize them.
</para> </para>
<para>
If this option has not been set, the default behavior is to use
<literal>unicode</literal> style if the client character set encoding
is UTF-8, otherwise <literal>ascii</literal> style.
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.5.sgml,v 1.6 2009/10/21 19:43:06 petere Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.5.sgml,v 1.7 2009/11/25 20:26:31 tgl Exp $ -->
<sect1 id="release-8-5"> <sect1 id="release-8-5">
<title>Release 8.5alpha2</title> <title>Release 8.5alpha2</title>
@ -410,8 +410,7 @@
<emphasis>Add &quot;pset linestyle ascii/unicode&quot; option to psql, <emphasis>Add &quot;pset linestyle ascii/unicode&quot; option to psql,
allowing our traditional ASCII-art style of table output to allowing our traditional ASCII-art style of table output to
be upgraded to use Unicode box drawing characters if be upgraded to use Unicode box drawing characters if
desired. By default, psql will use the Unicode characters desired.
whenever client_encoding is UTF8.</>
</para> </para>
</listitem> </listitem>
<listitem> <listitem>

View File

@ -3,7 +3,7 @@
* *
* Copyright (c) 2000-2009, PostgreSQL Global Development Group * Copyright (c) 2000-2009, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/bin/psql/mbprint.c,v 1.36 2009/10/13 21:04:01 tgl Exp $ * $PostgreSQL: pgsql/src/bin/psql/mbprint.c,v 1.37 2009/11/25 20:26:31 tgl Exp $
* *
* XXX this file does not really belong in psql/. Perhaps move to libpq? * XXX this file does not really belong in psql/. Perhaps move to libpq?
* It also seems that the mbvalidate function is redundant with existing * It also seems that the mbvalidate function is redundant with existing
@ -30,7 +30,7 @@
typedef unsigned int pg_wchar; typedef unsigned int pg_wchar;
int static int
pg_get_utf8_id(void) pg_get_utf8_id(void)
{ {
static int utf8_id = -1; static int utf8_id = -1;

View File

@ -1,4 +1,4 @@
/* $PostgreSQL: pgsql/src/bin/psql/mbprint.h,v 1.14 2009/10/13 21:04:01 tgl Exp $ */ /* $PostgreSQL: pgsql/src/bin/psql/mbprint.h,v 1.15 2009/11/25 20:26:31 tgl Exp $ */
#ifndef MBPRINT_H #ifndef MBPRINT_H
#define MBPRINT_H #define MBPRINT_H
@ -9,7 +9,6 @@ struct lineptr
int width; int width;
}; };
extern int pg_get_utf8_id(void);
extern unsigned char *mbvalidate(unsigned char *pwcs, int encoding); extern unsigned char *mbvalidate(unsigned char *pwcs, int encoding);
extern int pg_wcswidth(const unsigned char *pwcs, size_t len, int encoding); extern int pg_wcswidth(const unsigned char *pwcs, size_t len, int encoding);
extern void pg_wcsformat(unsigned char *pwcs, size_t len, int encoding, struct lineptr * lines, int count); extern void pg_wcsformat(unsigned char *pwcs, size_t len, int encoding, struct lineptr * lines, int count);

View File

@ -3,7 +3,7 @@
* *
* Copyright (c) 2000-2009, PostgreSQL Global Development Group * Copyright (c) 2000-2009, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.118 2009/11/22 05:20:41 tgl Exp $ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.119 2009/11/25 20:26:31 tgl Exp $
*/ */
#include "postgres_fe.h" #include "postgres_fe.h"
@ -2550,10 +2550,13 @@ setDecimalLocale(void)
const printTextFormat * const printTextFormat *
get_line_style(const printTableOpt *opt) get_line_style(const printTableOpt *opt)
{ {
/*
* Note: this function mainly exists to preserve the convention that
* a printTableOpt struct can be initialized to zeroes to get default
* behavior.
*/
if (opt->line_style != NULL) if (opt->line_style != NULL)
return opt->line_style; return opt->line_style;
else if (opt->encoding == pg_get_utf8_id())
return &pg_utf8format;
else else
return &pg_asciiformat; return &pg_asciiformat;
} }

View File

@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/test/regress/pg_regress_main.c,v 1.7 2009/10/13 21:04:01 tgl Exp $ * $PostgreSQL: pgsql/src/test/regress/pg_regress_main.c,v 1.8 2009/11/25 20:26:31 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -59,7 +59,7 @@ psql_start_test(const char *testname,
add_stringlist_item(expectfiles, expectfile); add_stringlist_item(expectfiles, expectfile);
snprintf(psql_cmd, sizeof(psql_cmd), snprintf(psql_cmd, sizeof(psql_cmd),
SYSTEMQUOTE "\"%s%spsql\" -X -a -q -P linestyle=ascii -d \"%s\" < \"%s\" > \"%s\" 2>&1" SYSTEMQUOTE, SYSTEMQUOTE "\"%s%spsql\" -X -a -q -d \"%s\" < \"%s\" > \"%s\" 2>&1" SYSTEMQUOTE,
psqldir ? psqldir : "", psqldir ? psqldir : "",
psqldir ? "/" : "", psqldir ? "/" : "",
dblist->str, dblist->str,