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
-->
@ -1785,6 +1785,7 @@ lo_import 152801
or <literal>unicode</literal>.
Unique abbreviations are allowed. (That would mean one
letter is enough.)
The default setting is <literal>ascii</>.
This option only affects the <literal>aligned</> and
<literal>wrapped</> output formats.
</para>
@ -1826,12 +1827,6 @@ lo_import 152801
Plain <acronym>ASCII</acronym> characters work everywhere, but
Unicode characters look nicer on displays that recognize them.
</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>
</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">
<title>Release 8.5alpha2</title>
@ -410,8 +410,7 @@
<emphasis>Add &quot;pset linestyle ascii/unicode&quot; option to psql,
allowing our traditional ASCII-art style of table output to
be upgraded to use Unicode box drawing characters if
desired. By default, psql will use the Unicode characters
whenever client_encoding is UTF8.</>
desired.
</para>
</listitem>
<listitem>

View File

@ -3,7 +3,7 @@
*
* 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?
* It also seems that the mbvalidate function is redundant with existing
@ -30,7 +30,7 @@
typedef unsigned int pg_wchar;
int
static int
pg_get_utf8_id(void)
{
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
#define MBPRINT_H
@ -9,7 +9,6 @@ struct lineptr
int width;
};
extern int pg_get_utf8_id(void);
extern unsigned char *mbvalidate(unsigned char *pwcs, 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);

View File

@ -3,7 +3,7 @@
*
* 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"
@ -2550,10 +2550,13 @@ setDecimalLocale(void)
const printTextFormat *
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)
return opt->line_style;
else if (opt->encoding == pg_get_utf8_id())
return &pg_utf8format;
else
return &pg_asciiformat;
}

View File

@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
* 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);
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 ? "/" : "",
dblist->str,